From c503792334226c051f1811147e56093edb39d4d8 Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Thu, 1 Feb 2024 11:32:48 -0800 Subject: [PATCH 01/40] Added "Open in Colab" buttons to tutorials --- notebooks/timing_comparisons.ipynb | 14 ++++++-- notebooks/tutorials/algorithms/fde.ipynb | 10 +++++- .../tutorials/algorithms/gnss_filters.ipynb | 8 +++++ .../tutorials/algorithms/residuals.ipynb | 8 +++++ notebooks/tutorials/algorithms/snapshot.ipynb | 8 +++++ notebooks/tutorials/navdata/navdata.ipynb | 21 +++++++---- notebooks/tutorials/navdata/operations.ipynb | 21 +++++++---- notebooks/tutorials/parsers/android.ipynb | 12 +++++-- notebooks/tutorials/parsers/clk.ipynb | 24 ++++++++----- .../tutorials/parsers/google_decimeter.ipynb | 10 +++++- notebooks/tutorials/parsers/new_parsers.ipynb | 16 ++++++--- notebooks/tutorials/parsers/nmea.ipynb | 24 ++++++++----- notebooks/tutorials/parsers/rinex_nav.ipynb | 24 ++++++++----- notebooks/tutorials/parsers/rinex_obs.ipynb | 24 ++++++++----- notebooks/tutorials/parsers/smartloc.ipynb | 35 +++++++++++++------ notebooks/tutorials/parsers/sp3.ipynb | 24 ++++++++----- notebooks/tutorials/utils/constants.ipynb | 7 ++++ notebooks/tutorials/utils/coordinates.ipynb | 7 ++++ .../utils/ephemeris_downloader.ipynb | 10 +++++- .../tutorials/utils/file_operations.ipynb | 7 ++++ notebooks/tutorials/utils/filters.ipynb | 7 ++++ notebooks/tutorials/utils/gnss_models.ipynb | 7 ++++ notebooks/tutorials/utils/sv_models.ipynb | 23 +++++++----- .../tutorials/utils/time_conversions.ipynb | 8 ++--- .../tutorials/visualizations/plot_map.ipynb | 8 +++++ .../visualizations/plot_metric.ipynb | 10 +++++- .../visualizations/plot_skyplot.ipynb | 8 +++++ .../tutorials/visualizations/style.ipynb | 8 +++++ 28 files changed, 304 insertions(+), 89 deletions(-) diff --git a/notebooks/timing_comparisons.ipynb b/notebooks/timing_comparisons.ipynb index 905fc6d2..564f9a94 100644 --- a/notebooks/timing_comparisons.ipynb +++ b/notebooks/timing_comparisons.ipynb @@ -8,6 +8,14 @@ "# Basic Get/Set Time Comparisons" ] }, + { + "cell_type": "markdown", + "id": "80419852", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/timing_comparisons.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -47,7 +55,7 @@ "# load Android Google Challenge data\n", "navdata = AndroidDerived2021(\"Pixel4XL_derived.csv\", remove_timing_outliers=False)\n", "'''\n", - " \n", + "\n", "TEST_CODE = '''\n", "navdata[\"corr_pr_m\"] = navdata['raw_pr_m'] \\\n", " + navdata['b_sv_m'] \\\n", @@ -80,7 +88,7 @@ "df = pd.read_csv(\"Pixel4XL_derived.csv\")\n", "df.rename(columns=AndroidDerived2021._row_map(), inplace=True)\n", "'''\n", - " \n", + "\n", "TEST_CODE = '''\n", "df[\"corr_pr_m\"] = df['raw_pr_m'] \\\n", " + df['b_sv_m'] \\\n", @@ -120,7 +128,7 @@ "iono_delay_m = df['iono_delay_m'].to_numpy()\n", "\n", "'''\n", - " \n", + "\n", "TEST_CODE = '''\n", "corr_pr_m = raw_pr_m \\\n", " + b_sv_m \\\n", diff --git a/notebooks/tutorials/algorithms/fde.ipynb b/notebooks/tutorials/algorithms/fde.ipynb index e80268ba..84bbe5a9 100644 --- a/notebooks/tutorials/algorithms/fde.ipynb +++ b/notebooks/tutorials/algorithms/fde.ipynb @@ -8,6 +8,14 @@ "# FDE: Fault Detection and Exclusion" ] }, + { + "cell_type": "markdown", + "id": "17e773d0", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/algorithms/fde.ipynb)" + ] + }, { "cell_type": "markdown", "id": "2b7e92ce", @@ -117,7 +125,7 @@ "metadata": {}, "outputs": [], "source": [ - "result = glp.solve_fde(navdata, method=\"edm\", \n", + "result = glp.solve_fde(navdata, method=\"edm\",\n", " threshold=0)\n", "result[\"fault_edm\"]" ] diff --git a/notebooks/tutorials/algorithms/gnss_filters.ipynb b/notebooks/tutorials/algorithms/gnss_filters.ipynb index 518102d0..1e00ef3d 100644 --- a/notebooks/tutorials/algorithms/gnss_filters.ipynb +++ b/notebooks/tutorials/algorithms/gnss_filters.ipynb @@ -8,6 +8,14 @@ "# GNSS Filters" ] }, + { + "cell_type": "markdown", + "id": "8693ca9b", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/algorithms/gnss_filters.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/algorithms/residuals.ipynb b/notebooks/tutorials/algorithms/residuals.ipynb index 25a819e7..ac81fa09 100644 --- a/notebooks/tutorials/algorithms/residuals.ipynb +++ b/notebooks/tutorials/algorithms/residuals.ipynb @@ -8,6 +8,14 @@ "# Residuals" ] }, + { + "cell_type": "markdown", + "id": "026e1e05", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/algorithms/residuals.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/algorithms/snapshot.ipynb b/notebooks/tutorials/algorithms/snapshot.ipynb index a5d9806f..92707e01 100644 --- a/notebooks/tutorials/algorithms/snapshot.ipynb +++ b/notebooks/tutorials/algorithms/snapshot.ipynb @@ -8,6 +8,14 @@ "# Snapshot Localization Algorithms" ] }, + { + "cell_type": "markdown", + "id": "e0764b23", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/algorithms/snapshot.ipynb)" + ] + }, { "cell_type": "markdown", "id": "151c36e4-cad1-4d02-9292-d422d2339883", diff --git a/notebooks/tutorials/navdata/navdata.ipynb b/notebooks/tutorials/navdata/navdata.ipynb index 873f9d8c..6051d555 100644 --- a/notebooks/tutorials/navdata/navdata.ipynb +++ b/notebooks/tutorials/navdata/navdata.ipynb @@ -1,5 +1,19 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# NavData" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/navdata/navdata.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -32,13 +46,6 @@ "data_path = \"../data/myreceiver.csv\"" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# NavData" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/navdata/operations.ipynb b/notebooks/tutorials/navdata/operations.ipynb index e4c7faa3..6caeb3d1 100644 --- a/notebooks/tutorials/navdata/operations.ipynb +++ b/notebooks/tutorials/navdata/operations.ipynb @@ -1,5 +1,19 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# NavData Operations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/navdata/operations.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -29,13 +43,6 @@ "data_path = \"../data/myreceiver.csv\"" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# NavData Operations" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/parsers/android.ipynb b/notebooks/tutorials/parsers/android.ipynb index 376d4d95..58fb70f9 100644 --- a/notebooks/tutorials/parsers/android.ipynb +++ b/notebooks/tutorials/parsers/android.ipynb @@ -8,6 +8,14 @@ "# GnssLogger Android App" ] }, + { + "cell_type": "markdown", + "id": "69d33be8", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/android.ipynb)" + ] + }, { "cell_type": "markdown", "id": "7954f8b9-22f3-44ba-bf04-8dfedb40250b", @@ -191,8 +199,8 @@ "metadata": {}, "outputs": [], "source": [ - "raw_data = glp.AndroidRawGnss(input_path=\"../data/gnss_log.txt\", \n", - " filter_measurements=True, \n", + "raw_data = glp.AndroidRawGnss(input_path=\"../data/gnss_log.txt\",\n", + " filter_measurements=True,\n", " measurement_filters={\"sv_time_uncertainty\" : 500.},\n", " verbose=True)" ] diff --git a/notebooks/tutorials/parsers/clk.ipynb b/notebooks/tutorials/parsers/clk.ipynb index bf1f9ab4..78444942 100644 --- a/notebooks/tutorials/parsers/clk.ipynb +++ b/notebooks/tutorials/parsers/clk.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "c351c2eb", + "metadata": {}, + "source": [ + "# CLK File Parsing" + ] + }, + { + "cell_type": "markdown", + "id": "7e7f2cce", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/clk.ipynb)" + ] + }, { "cell_type": "markdown", "id": "d5632d85", @@ -18,14 +34,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "markdown", - "id": "c351c2eb", - "metadata": {}, - "source": [ - "# CLK File Parsing" - ] - }, { "cell_type": "markdown", "id": "9519121f", diff --git a/notebooks/tutorials/parsers/google_decimeter.ipynb b/notebooks/tutorials/parsers/google_decimeter.ipynb index 875fccef..1b4b1a7d 100644 --- a/notebooks/tutorials/parsers/google_decimeter.ipynb +++ b/notebooks/tutorials/parsers/google_decimeter.ipynb @@ -8,6 +8,14 @@ "# Google Decimeter Challenge Datasets" ] }, + { + "cell_type": "markdown", + "id": "b5ca0ec4", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/google_decimeter.ipynb)" + ] + }, { "cell_type": "markdown", "id": "e8cfabd7", @@ -207,7 +215,7 @@ "metadata": {}, "outputs": [], "source": [ - "# submission = glp.solve_kaggle_dataset(folder_path = \"/path/to/train/or/test/folder/\", \n", + "# submission = glp.solve_kaggle_dataset(folder_path = \"/path/to/train/or/test/folder/\",\n", "# solver = glp.solve_wls)\n", "\n", "# after the submission NavData object is created, save it to a csv with:\n", diff --git a/notebooks/tutorials/parsers/new_parsers.ipynb b/notebooks/tutorials/parsers/new_parsers.ipynb index 07f04858..3e7e2344 100644 --- a/notebooks/tutorials/parsers/new_parsers.ipynb +++ b/notebooks/tutorials/parsers/new_parsers.ipynb @@ -8,6 +8,14 @@ "# How to Create a New NavData Class" ] }, + { + "cell_type": "markdown", + "id": "2e3a2e05", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/new_parsers.ipynb)" + ] + }, { "cell_type": "markdown", "id": "e8cfabd7", @@ -211,10 +219,10 @@ " Path to MyReceiver csv file\n", "\n", " \"\"\"\n", - " \n", + "\n", " # call NavData initialization with csv path\n", " super().__init__(csv_path=input_path)\n", - " \n", + "\n", " def postprocess(self):\n", " \"\"\"MyReceiver specific postprocessing\n", "\n", @@ -222,10 +230,10 @@ "\n", " # correct pseudorange\n", " self['corr_pr_m'] = self['raw_pr_m'] + 100.\n", - " \n", + "\n", " # create common timestamp\n", " self['gps_millis'] = self['myTimestamp'] + 1659075505350\n", - " \n", + "\n", "\n", " @staticmethod\n", " def _row_map():\n", diff --git a/notebooks/tutorials/parsers/nmea.ipynb b/notebooks/tutorials/parsers/nmea.ipynb index 4f78b42f..f313932b 100644 --- a/notebooks/tutorials/parsers/nmea.ipynb +++ b/notebooks/tutorials/parsers/nmea.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "b0a917b6", + "metadata": {}, + "source": [ + "# NMEA File Parsing" + ] + }, + { + "cell_type": "markdown", + "id": "e27fd80e", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/nmea.ipynb)" + ] + }, { "cell_type": "markdown", "id": "d5632d85", @@ -18,14 +34,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "markdown", - "id": "b0a917b6", - "metadata": {}, - "source": [ - "# NMEA File Parsing" - ] - }, { "cell_type": "markdown", "id": "f166df97", diff --git a/notebooks/tutorials/parsers/rinex_nav.ipynb b/notebooks/tutorials/parsers/rinex_nav.ipynb index 62b9adc2..bdbeef18 100644 --- a/notebooks/tutorials/parsers/rinex_nav.ipynb +++ b/notebooks/tutorials/parsers/rinex_nav.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "8f1f2cd2", + "metadata": {}, + "source": [ + "# Rinex Navigation File Parsing" + ] + }, + { + "cell_type": "markdown", + "id": "e07e2118", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/rinex_nav.ipynb)" + ] + }, { "cell_type": "markdown", "id": "d5632d85", @@ -18,14 +34,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "markdown", - "id": "8f1f2cd2", - "metadata": {}, - "source": [ - "# Rinex Navigation File Parsing" - ] - }, { "cell_type": "markdown", "id": "63352eb8", diff --git a/notebooks/tutorials/parsers/rinex_obs.ipynb b/notebooks/tutorials/parsers/rinex_obs.ipynb index 0f7d189f..0757d7cf 100644 --- a/notebooks/tutorials/parsers/rinex_obs.ipynb +++ b/notebooks/tutorials/parsers/rinex_obs.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "fe8e8d6a", + "metadata": {}, + "source": [ + "# Rinex Observation File Parsing" + ] + }, + { + "cell_type": "markdown", + "id": "eba6fd5d", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/rinex_obs.ipynb)" + ] + }, { "cell_type": "markdown", "id": "d5632d85", @@ -18,14 +34,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "markdown", - "id": "fe8e8d6a", - "metadata": {}, - "source": [ - "# Rinex Observation File Parsing" - ] - }, { "cell_type": "markdown", "id": "af135db1", diff --git a/notebooks/tutorials/parsers/smartloc.ipynb b/notebooks/tutorials/parsers/smartloc.ipynb index 0f956963..457b20b8 100644 --- a/notebooks/tutorials/parsers/smartloc.ipynb +++ b/notebooks/tutorials/parsers/smartloc.ipynb @@ -2,31 +2,46 @@ "cells": [ { "cell_type": "markdown", - "id": "d5632d85", + "id": "95e58b71", "metadata": {}, "source": [ - "Load `gnss_lib_py` into the Python workspace" + "# TU Chemnitz SmartLoc\n" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "f7468fd3", + "cell_type": "markdown", + "id": "772a5dbe", "metadata": {}, - "outputs": [], "source": [ - "import gnss_lib_py as glp" + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/smartloc.ipynb)" ] }, { "cell_type": "markdown", - "id": "95e58b71", + "id": "9ad531e3", "metadata": {}, "source": [ - "# TU Chemnitz SmartLoc\n", "This tutorial shows how to load data from TU Chemnitz's [smartLoc GNSS Dataset](https://www.tu-chemnitz.de/projekt/smartLoc/gnss_dataset.html.en#Datasets)." ] }, + { + "cell_type": "markdown", + "id": "d5632d85", + "metadata": {}, + "source": [ + "Load `gnss_lib_py` into the Python workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7468fd3", + "metadata": {}, + "outputs": [], + "source": [ + "import gnss_lib_py as glp" + ] + }, { "cell_type": "code", "execution_count": null, @@ -47,7 +62,7 @@ "# download cropped SmartLoc data file\n", "glp.make_dir(\"../data\")\n", "!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/smartloc/tu_chemnitz_berlin_1_raw.csv --quiet -nc -O \"../data/smartloc.csv\"\n", - " \n", + "\n", "# load smartLoc data into NavData object\n", "smartloc_data = glp.SmartLocRaw(\"../data/smartloc.csv\")" ] diff --git a/notebooks/tutorials/parsers/sp3.ipynb b/notebooks/tutorials/parsers/sp3.ipynb index e150e941..3c789154 100644 --- a/notebooks/tutorials/parsers/sp3.ipynb +++ b/notebooks/tutorials/parsers/sp3.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "e93e4676", + "metadata": {}, + "source": [ + "# SP3 File Parsing" + ] + }, + { + "cell_type": "markdown", + "id": "82fe014d", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/sp3.ipynb)" + ] + }, { "cell_type": "markdown", "id": "d5632d85", @@ -18,14 +34,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "markdown", - "id": "e93e4676", - "metadata": {}, - "source": [ - "# SP3 File Parsing" - ] - }, { "cell_type": "markdown", "id": "d1ce069f", diff --git a/notebooks/tutorials/utils/constants.ipynb b/notebooks/tutorials/utils/constants.ipynb index 4a4db323..e9cc4bdf 100644 --- a/notebooks/tutorials/utils/constants.ipynb +++ b/notebooks/tutorials/utils/constants.ipynb @@ -7,6 +7,13 @@ "# GNSS Constants" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/constants.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/utils/coordinates.ipynb b/notebooks/tutorials/utils/coordinates.ipynb index f2f91ba7..6330ffc6 100644 --- a/notebooks/tutorials/utils/coordinates.ipynb +++ b/notebooks/tutorials/utils/coordinates.ipynb @@ -7,6 +7,13 @@ "# Coordinate Conversions" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/coordinates.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/utils/ephemeris_downloader.ipynb b/notebooks/tutorials/utils/ephemeris_downloader.ipynb index 3446ef80..945c19db 100644 --- a/notebooks/tutorials/utils/ephemeris_downloader.ipynb +++ b/notebooks/tutorials/utils/ephemeris_downloader.ipynb @@ -8,6 +8,14 @@ "# Ephemeris Downloader" ] }, + { + "cell_type": "markdown", + "id": "42d320d8", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/ephemeris_downloader.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -58,7 +66,7 @@ "outputs": [], "source": [ "gps_millis = glp.datetime_to_gps_millis(np.array([timestamp_start,timestamp_end]))\n", - "sp3_path = glp.load_ephemeris(file_type=\"sp3\", \n", + "sp3_path = glp.load_ephemeris(file_type=\"sp3\",\n", " gps_millis=gps_millis,\n", " verbose=True)" ] diff --git a/notebooks/tutorials/utils/file_operations.ipynb b/notebooks/tutorials/utils/file_operations.ipynb index cf6a993d..f3dcb502 100644 --- a/notebooks/tutorials/utils/file_operations.ipynb +++ b/notebooks/tutorials/utils/file_operations.ipynb @@ -7,6 +7,13 @@ "# File Operations" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/file_operations.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/utils/filters.ipynb b/notebooks/tutorials/utils/filters.ipynb index a5ccbfc4..6b94fdd3 100644 --- a/notebooks/tutorials/utils/filters.ipynb +++ b/notebooks/tutorials/utils/filters.ipynb @@ -7,6 +7,13 @@ "# Filters" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/filters.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/utils/gnss_models.ipynb b/notebooks/tutorials/utils/gnss_models.ipynb index 22e94452..fe90e24f 100644 --- a/notebooks/tutorials/utils/gnss_models.ipynb +++ b/notebooks/tutorials/utils/gnss_models.ipynb @@ -7,6 +7,13 @@ "# GNSS Models" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/gnss_models.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/utils/sv_models.ipynb b/notebooks/tutorials/utils/sv_models.ipynb index d33f4f43..cb4fcd31 100644 --- a/notebooks/tutorials/utils/sv_models.ipynb +++ b/notebooks/tutorials/utils/sv_models.ipynb @@ -7,6 +7,13 @@ "# SV (Space Vehicle) Models" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/sv_models.ipynb)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -270,11 +277,11 @@ "rx_ecef_durand = np.reshape(glp.geodetic_to_ecef(rx_LLA_durand), [3, 1])\n", "\n", "# Create sequence of moving receiver (using approximation of long to meters)\n", - "rx_LLA_traj = rx_LLA_durand + np.vstack((np.zeros(10), \n", - " 0.0001*10.*np.arange(10), \n", + "rx_LLA_traj = rx_LLA_durand + np.vstack((np.zeros(10),\n", + " 0.0001*10.*np.arange(10),\n", " np.zeros(10)))\n", "\n", - "# Convert trajectory to ECEF \n", + "# Convert trajectory to ECEF\n", "rx_ecef_traj = glp.geodetic_to_ecef(rx_LLA_traj)\n", "\n", "# Create state estimate with given trajectory\n", @@ -327,13 +334,13 @@ "source": [ "sv_posvel_traj_sv25 = sv_posvel_traj.where(\"sv_id\", 25)\n", "\n", - "print('GPS milliseconds with first time subtracted\\n', \n", + "print('GPS milliseconds with first time subtracted\\n',\n", " sv_posvel_traj_sv25['gps_millis'] - start_gps_millis)\n", "\n", "print('Changing x ECEF SV positions\\n',\n", " sv_posvel_traj_sv25['x_sv_m'] - sv_posvel_traj_sv25['x_sv_m', 0])\n", "\n", - "print('Consecutive change in x ECEF positions\\n', \n", + "print('Consecutive change in x ECEF positions\\n',\n", " sv_posvel_traj_sv25['x_sv_m', 1:] - sv_posvel_traj_sv25['x_sv_m', :-1])\n", "\n", "print('Velocity along x ECEF for reference\\n',\n", @@ -412,7 +419,7 @@ "outputs": [], "source": [ "# Using find_sv_states and a filtered ephem\n", - "# Option 1: Estimate SV states for the given transmission time (does not \n", + "# Option 1: Estimate SV states for the given transmission time (does not\n", "# account for any signal travel time)\n", "sv_states_tx = glp.find_sv_states(start_gps_millis, ephem_viz)\n", "\n", @@ -422,9 +429,9 @@ "# gives difference between positions and the estimated true range\n", "sv_states_rx, del_pos, true_range = glp.find_sv_location(start_gps_millis, rx_ecef_durand, ephem_viz)\n", "\n", - "print('Difference between x positions estimated for Tx and Rx times \\n', \n", + "print('Difference between x positions estimated for Tx and Rx times \\n',\n", " sv_states_tx['x_sv_m'] - sv_states_rx['x_sv_m'])\n", - "print('Difference between x velocities estimated for Tx and Rx times\\n', \n", + "print('Difference between x velocities estimated for Tx and Rx times\\n',\n", " sv_states_tx['vx_sv_mps'] - sv_states_rx['vx_sv_mps'])\n" ] }, diff --git a/notebooks/tutorials/utils/time_conversions.ipynb b/notebooks/tutorials/utils/time_conversions.ipynb index e7dc977e..172379a4 100644 --- a/notebooks/tutorials/utils/time_conversions.ipynb +++ b/notebooks/tutorials/utils/time_conversions.ipynb @@ -2,18 +2,18 @@ "cells": [ { "cell_type": "markdown", - "id": "2b7e92ce", + "id": "28b068e2", "metadata": {}, "source": [ - "This tutorial illustrates a few of the most common utility functions available in the `utils` directory." + "# Time Conversions" ] }, { "cell_type": "markdown", - "id": "28b068e2", + "id": "768262a9", "metadata": {}, "source": [ - "# Time Conversions" + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/time_conversions.ipynb)" ] }, { diff --git a/notebooks/tutorials/visualizations/plot_map.ipynb b/notebooks/tutorials/visualizations/plot_map.ipynb index baa6aad7..c0616a5c 100644 --- a/notebooks/tutorials/visualizations/plot_map.ipynb +++ b/notebooks/tutorials/visualizations/plot_map.ipynb @@ -8,6 +8,14 @@ "# Plot Map" ] }, + { + "cell_type": "markdown", + "id": "3d5ad162", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/visualizations/plot_map.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/visualizations/plot_metric.ipynb b/notebooks/tutorials/visualizations/plot_metric.ipynb index 2552b71a..03a1107f 100644 --- a/notebooks/tutorials/visualizations/plot_metric.ipynb +++ b/notebooks/tutorials/visualizations/plot_metric.ipynb @@ -8,6 +8,14 @@ "# Plot Metric" ] }, + { + "cell_type": "markdown", + "id": "eb8ee7dd", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/visualizations/plot_metric.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -114,7 +122,7 @@ "outputs": [], "source": [ "fig = glp.plot_metric(glonass_data, \"iono_delay_m\", \"tropo_delay_m\", groupby=\"sv_id\",\n", - " linestyle=\"None\", markeredgecolor=\"g\", markersize=12, \n", + " linestyle=\"None\", markeredgecolor=\"g\", markersize=12,\n", " markeredgewidth=1.0)" ] }, diff --git a/notebooks/tutorials/visualizations/plot_skyplot.ipynb b/notebooks/tutorials/visualizations/plot_skyplot.ipynb index 7d0fdeda..b1bf5747 100644 --- a/notebooks/tutorials/visualizations/plot_skyplot.ipynb +++ b/notebooks/tutorials/visualizations/plot_skyplot.ipynb @@ -8,6 +8,14 @@ "# Plot Skyplot" ] }, + { + "cell_type": "markdown", + "id": "479d6c17", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/visualizations/plot_skyplot.ipynb)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/visualizations/style.ipynb b/notebooks/tutorials/visualizations/style.ipynb index 7a4b650c..cc7bac53 100644 --- a/notebooks/tutorials/visualizations/style.ipynb +++ b/notebooks/tutorials/visualizations/style.ipynb @@ -8,6 +8,14 @@ "# Plotting Style" ] }, + { + "cell_type": "markdown", + "id": "2fbebbd3", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/visualizations/style.ipynb)" + ] + }, { "cell_type": "markdown", "id": "952766c1", From 1c81656da5c17a1290dd0618f315ab2b55fe075d Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Thu, 1 Feb 2024 12:47:26 -0800 Subject: [PATCH 02/40] Updated coordinates tutorial --- notebooks/tutorials/utils/coordinates.ipynb | 64 +++++++++++++++++++-- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/notebooks/tutorials/utils/coordinates.ipynb b/notebooks/tutorials/utils/coordinates.ipynb index 6330ffc6..2d28c4a5 100644 --- a/notebooks/tutorials/utils/coordinates.ipynb +++ b/notebooks/tutorials/utils/coordinates.ipynb @@ -28,7 +28,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "ECEF coordintes for N positions can be converted to LLA and back by\n", + "ECEF coordinates for positions can be converted to LLA and back by\n", "using functions defined in `utils/coordinates.py`" ] }, @@ -48,6 +48,42 @@ "print(glp.ecef_to_geodetic(x_ecef))" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When using a `NavData` instance with multiple ECEF coordinates, the ECEF\n", + "coordinates can be accessed from the `NavData` and then passed to the\n", + "coordinate conversion function.\n", + "\n", + "The obtained values can be assigned as rows to the `NavData` instance where\n", + "needed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# load Android Google Challenge data\n", + "glp.make_dir(\"../data\")\n", + "!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2022/device_gnss.csv --quiet -nc -O \"../data/device_gnss.csv\"\n", + "navdata = glp.AndroidDerived2022(\"../data/device_gnss.csv\")\n", + "pos_rx_ecef = navdata[[\"x_rx_m\",\"y_rx_m\",\"z_rx_m\"]]\n", + "pos_rx_lla = glp.ecef_to_geodetic(pos_rx_ecef)\n", + "# can also use pos_rx_lla = glp.ecef_to_geodetic(navdata[[\"x_rx_m\",\"y_rx_m\",\"z_rx_m\"]])\n", + "print(pos_rx_lla[:, :4])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output maintains the shape of the input, so in this case the first row is latitude, second is longitude, and third is altitude above the WGS-84 datum.\n", + "These rows can be assigned to the `NavData` by accessing the array" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -130,6 +166,25 @@ "print(v_ecef)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to use ENU local frame of reference instead, the resultant\n", + "coordinates can be matrix multipled by the corresponding rotation matrix." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ned_to_enu_rot_mat = np.array([[0, 1, 0],\n", + " [1, 0, 0],\n", + " [0, 0, -1]])" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -150,11 +205,8 @@ "metadata": {}, "outputs": [], "source": [ - "# load Android Google Challenge data\n", - "glp.make_dir(\"../data\")\n", - "!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2022/device_gnss.csv --quiet -nc -O \"../data/device_gnss.csv\"\n", - "navdata = glp.AndroidDerived2022(\"../data/device_gnss.csv\")\n", - "navdata_subset = navdata.where(\"gps_millis\",navdata[\"gps_millis\",0]) # only use data from first timestep" + "# For this case, only use data from first timestep\n", + "navdata_subset = navdata.where(\"gps_millis\",navdata[\"gps_millis\",0])" ] }, { From c76ea4b44ab92f68f0a603717632053861e6e2b5 Mon Sep 17 00:00:00 2001 From: betaBison Date: Tue, 6 Feb 2024 16:02:04 -0800 Subject: [PATCH 03/40] update algorithm tutorials --- README.md | 2 +- docs/source/index.rst | 2 +- docs/source/tutorials/tutorials.rst | 11 ++-- gnss_lib_py/algorithms/residuals.py | 3 +- gnss_lib_py/algorithms/snapshot.py | 2 +- notebooks/tutorials/algorithms/fde.ipynb | 6 -- .../tutorials/algorithms/gnss_filters.ipynb | 57 +++++++++++++++++++ .../tutorials/algorithms/residuals.ipynb | 4 +- notebooks/tutorials/algorithms/snapshot.ipynb | 49 ++++++++-------- 9 files changed, 95 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 321a5780..58564d59 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Code Organization ``` In the directory organization above: - * The `algorithms` directory contains localization algorithms that + * The `algorithms` directory contains algorithms that work by passing in a `NavData` class. Currently, the following algorithms are implemented in the `algorithms`: diff --git a/docs/source/index.rst b/docs/source/index.rst index dd2d6ce7..0dd03da0 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -80,7 +80,7 @@ Code Organization In the directory organization above: - * The :code:`algorithms` directory contains localization algorithms that + * The :code:`algorithms` directory contains algorithms that work by passing in a :code:`NavData` class. Currently, the following algorithms are implemented in the :code:`algorithms`: diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index 33401a32..b4e1980c 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -14,7 +14,7 @@ few lines of code. NavData Tutorials ----------------- -Sections of this tutorial show how to interact with our standard :code:`NavData` +These tutorials show how to interact with our standard :code:`NavData` class and its corresponding operations. .. toctree:: @@ -27,7 +27,7 @@ class and its corresponding operations. Parser Tutorials ---------------- -This tutorial explains details about existing parsers and how to create +These tutorials explain details about existing parsers and how to create a new parser if necessary. .. toctree:: @@ -46,8 +46,7 @@ a new parser if necessary. Algorithm Tutorials ------------------- -This tutorial walks through the existing algorithms that you can use -for baseline position solutions. +These tutorials demonstrate existing algorithms implemented in ``gnss_lib_py``. .. toctree:: :maxdepth: 2 @@ -61,7 +60,7 @@ for baseline position solutions. Utility Tutorials ----------------- -This tutorial illustrates a few of the most common utility functions +These tutorials illustrate a few of the most common utility functions available in the :code:`utils` directory. .. toctree:: @@ -79,7 +78,7 @@ available in the :code:`utils` directory. Visualization Tutorials ----------------------- -This tutorial illustrates a few of the most common plotting functions +These tutorials illustrate a few of the most common plotting functions available in the :code:`visualizations` directory. .. toctree:: diff --git a/gnss_lib_py/algorithms/residuals.py b/gnss_lib_py/algorithms/residuals.py index 410822a1..03fab48e 100644 --- a/gnss_lib_py/algorithms/residuals.py +++ b/gnss_lib_py/algorithms/residuals.py @@ -16,7 +16,8 @@ def solve_residuals(measurements, receiver_state, inplace=True): Parameters ---------- measurements : gnss_lib_py.navdata.navdata.NavData - Instance of the NavData class + Instance of the NavData class which must include ``gps_millis`` + and ``corr_pr_m``. receiver_state : gnss_lib_py.navdata.navdata.NavData Either estimated or ground truth receiver position in ECEF frame in meters and the estimated or ground truth receiver clock bias diff --git a/gnss_lib_py/algorithms/snapshot.py b/gnss_lib_py/algorithms/snapshot.py index 2f178ddf..64df67db 100644 --- a/gnss_lib_py/algorithms/snapshot.py +++ b/gnss_lib_py/algorithms/snapshot.py @@ -28,7 +28,7 @@ def solve_wls(measurements, weight_type = None, only_bias = False, The option for only_bias allows the user to only calculate the clock bias if the receiver position is already known. Only the bias term - in rx_est_m will be updated if only_bias is set to True. + in b_rx_wls_m will be updated if only_bias is set to True. If only_bias is set to True, then the receiver position must also be passed in as the receiver_state. diff --git a/notebooks/tutorials/algorithms/fde.ipynb b/notebooks/tutorials/algorithms/fde.ipynb index 84bbe5a9..ca7d8e72 100644 --- a/notebooks/tutorials/algorithms/fde.ipynb +++ b/notebooks/tutorials/algorithms/fde.ipynb @@ -186,12 +186,6 @@ "This FDE method is based on \"Fast multiple fault exclusion with a large number of measurements.\" by Juan Blanch, Todd Walter, and Per Enge from the ION GNSS+ 2015 conference." ] }, - { - "cell_type": "markdown", - "id": "637b591a", - "metadata": {}, - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/algorithms/gnss_filters.ipynb b/notebooks/tutorials/algorithms/gnss_filters.ipynb index 1e00ef3d..b95056d5 100644 --- a/notebooks/tutorials/algorithms/gnss_filters.ipynb +++ b/notebooks/tutorials/algorithms/gnss_filters.ipynb @@ -25,6 +25,63 @@ "source": [ "import gnss_lib_py as glp" ] + }, + { + "cell_type": "markdown", + "id": "d50a7bf9-1eda-4365-9f2c-3185b9ce7ef5", + "metadata": {}, + "source": [ + "## Extended Kalman Filter" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "814228fe-5658-479d-82f8-1e2f872cf76e", + "metadata": {}, + "outputs": [], + "source": [ + "# load Android Google Challenge data\n", + "glp.make_dir(\"../data\")\n", + "!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2021/Pixel4XL_derived.csv --quiet -nc -O \"../data/Pixel4XL_derived.csv\"\n", + "derived_data = glp.AndroidDerived2021(\"../data/Pixel4XL_derived.csv\", remove_timing_outliers=False)" + ] + }, + { + "cell_type": "markdown", + "id": "9089e51c-b9cc-4011-bdf6-056c1404965a", + "metadata": {}, + "source": [ + "Solve for the extended Kalman filter position estimate simply by passing the measurement data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b0e30f0-8eec-41ed-9c7e-663a97ec1af1", + "metadata": {}, + "outputs": [], + "source": [ + "state_ekf = glp.solve_gnss_ekf(derived_data)" + ] + }, + { + "cell_type": "markdown", + "id": "9ea58ba3-c69b-4982-ba89-115b8e6909ad", + "metadata": {}, + "source": [ + "Plot the ECEF x and ECEF y computed position estimate of the receiver" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1a07fd5-8a51-4d3f-971f-a858f4f99f9e", + "metadata": {}, + "outputs": [], + "source": [ + "glp.plot_map(state_ekf)" + ] } ], "metadata": { diff --git a/notebooks/tutorials/algorithms/residuals.ipynb b/notebooks/tutorials/algorithms/residuals.ipynb index ac81fa09..651c6217 100644 --- a/notebooks/tutorials/algorithms/residuals.ipynb +++ b/notebooks/tutorials/algorithms/residuals.ipynb @@ -62,7 +62,7 @@ "id": "a4ff4bdc", "metadata": {}, "source": [ - "Solve for residuals using the estimated state. A new \"residuals_m\" row is added to derived_data" + "Solve for residuals using the estimated state. A new \"residuals_m\" row is added to derived_data. This function requires that the measurements (first input) include a ``gps_millis`` and ``corr_pr_m`` row." ] }, { @@ -81,7 +81,7 @@ "id": "6def9fe1", "metadata": {}, "source": [ - "Plot the residuals using the `plot_residuals()` function. The residuals are broken up constellation and signal type and plotted on separate figures." + "Plot the residuals using the `plot_metric_by_constellation()` function. The residuals are broken up constellation and signal type and plotted on separate figures." ] }, { diff --git a/notebooks/tutorials/algorithms/snapshot.ipynb b/notebooks/tutorials/algorithms/snapshot.ipynb index 92707e01..6940ddf3 100644 --- a/notebooks/tutorials/algorithms/snapshot.ipynb +++ b/notebooks/tutorials/algorithms/snapshot.ipynb @@ -100,69 +100,72 @@ }, { "cell_type": "markdown", - "id": "c68a3316", + "id": "1c4375ca-1fa5-4224-897c-c5194e4c3a16", "metadata": {}, "source": [ - "## Extended Kalman Filter" + "## Custom Weighting Schemes for WLS\n", + "\n", + "You can utilize custom weights for each measurement by passing in a row name into the ``weight_type`` parameter." ] }, { "cell_type": "code", "execution_count": null, - "id": "a7bf5bfc", + "id": "ff2e61ea-2314-4454-aca9-2a51942a9b89", "metadata": {}, "outputs": [], "source": [ - "import gnss_lib_py as glp" + "# Morton, Y. Jade, et al., eds. Position, navigation, and timing technologies in\n", + "# the 21st century: Integrated satellite navigation, sensor systems, and civil\n", + "# applications, volume 1. John Wiley & Sons, 2021. Section 11.3.1.\n", + "derived_data[\"weights\"] = 1./derived_data[\"raw_pr_sigma_m\"]**2\n", + "\n", + "state_wls_sigma = glp.solve_wls(derived_data,weight_type=\"weights\")\n", + "\n", + "state_wls_sigma.rename({\"lat_rx_wls_deg\":\"lat_rx_\" + \"sigma\" + \"_deg\",\n", + " \"lon_rx_wls_deg\":\"lon_rx_\" + \"sigma\" + \"_deg\",\n", + " \"alt_rx_wls_m\":\"alt_rx_\" + \"sigma\" + \"_m\",\n", + " }, inplace=True)" ] }, { "cell_type": "code", "execution_count": null, - "id": "c3b26664", + "id": "73899f19-c6e1-48f0-bae0-0ec2937ae9d9", "metadata": {}, "outputs": [], "source": [ - "# load Android Google Challenge data\n", - "glp.make_dir(\"../data\")\n", - "!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2021/Pixel4XL_derived.csv --quiet -nc -O \"../data/Pixel4XL_derived.csv\"\n", - "derived_data = glp.AndroidDerived2021(\"../data/Pixel4XL_derived.csv\", remove_timing_outliers=False)" + "glp.plot_map(state_wls, state_wls_sigma)" ] }, { "cell_type": "markdown", - "id": "0387e03e", + "id": "93f22095-33e2-4254-8c9e-7e4c7c64fefb", "metadata": {}, "source": [ - "Solve for the extended Kalman filter position estimate simply by passing the measurement data." + "## Estimating Only Receiver Clock Bias with WLS\n", + "\n", + "If you only need to estimate the receiver clock bias, you can set the ``only_bias`` parameter to ``True`` and pass in the receiver position in with the ``receiver_state`` parameter." ] }, { "cell_type": "code", "execution_count": null, - "id": "2615edfb", + "id": "0e9af5d0-f71d-47a4-9876-08c9d9b08da3", "metadata": {}, "outputs": [], "source": [ - "state_ekf = glp.solve_gnss_ekf(derived_data)" - ] - }, - { - "cell_type": "markdown", - "id": "63c71960", - "metadata": {}, - "source": [ - "Plot the ECEF x and ECEF y computed position estimate of the receiver" + "state_with_clock_bias = glp.solve_wls(derived_data, only_bias=True, receiver_state=state_wls)" ] }, { "cell_type": "code", "execution_count": null, - "id": "336e4a0f", + "id": "644f0f01-b73d-4561-ba82-0f18fc5c31fb", "metadata": {}, "outputs": [], "source": [ - "glp.plot_map(state_ekf)" + "fig = glp.plot_metric(state_with_clock_bias,\"gps_millis\",\"b_rx_wls_m\")" ] } ], From 67187e08df046369d94b604691fbfe156db2c859 Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Tue, 13 Feb 2024 18:03:24 -0800 Subject: [PATCH 04/40] Removed import of scipy.interpolate This import was clashing with the interpolate from glp.navdata.operations causing issues when trying to use glp.interpolate, which incorrectly referred to the scipy.interpolate module instead of the glp.interpolate method --- gnss_lib_py/parsers/sp3.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gnss_lib_py/parsers/sp3.py b/gnss_lib_py/parsers/sp3.py index aa15faff..a1614ed9 100644 --- a/gnss_lib_py/parsers/sp3.py +++ b/gnss_lib_py/parsers/sp3.py @@ -9,7 +9,6 @@ from datetime import datetime, timezone import numpy as np -from scipy import interpolate from gnss_lib_py.navdata.navdata import NavData from gnss_lib_py.utils.constants import CONSTELLATION_CHARS From b23ed02cf6f7228b5590928445283a606b1e717b Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Tue, 13 Feb 2024 18:34:48 -0800 Subject: [PATCH 05/40] Updated NavData tutorials --- docs/source/tutorials/tutorials.rst | 41 +- notebooks/tutorials/navdata/navdata.ipynb | 53 ++- notebooks/tutorials/navdata/operations.ipynb | 412 ++++++++++++++++++- 3 files changed, 469 insertions(+), 37 deletions(-) diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index b4e1980c..b4ca6cde 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -4,17 +4,33 @@ Tutorials ========= -This library is meant to be used to easily interact with standard -GNSS datasets and measurement types to run standard baseline algorithms. +The goal of this library is to easily interact with standard GNSS +datasets and file types and run baseline algorithms on measurements +in these datasets/data types. + +The :code:`gnss_lib_py` library is divided into submodles, as +described :ref:`here` and the tutorials are similarly +organized. + +These tutorials are in interactive Jupyter notebooks and have been rendered +as part of the documentation. +You can run the code yourself by running the notebooks in the 'tutorials' +directory :ref:`here`. +The notebooks can also be run in Google Colab without downloading the +repository by selecting the 'Open in Colab' option at the top of each +notebook. + +The tutorials below show you how to load datasets, interact with our +standard :Code:`NavData` class, run baseline algorithms, generate metrics +for the resultant estimates, and visualize results and data. + +All of this can be accomplished with a few lines of code and modularly. -The tutorials below show you how to interact with our standard -:code:`NavData` class and how to run standard baselines all with only a -few lines of code. NavData Tutorials ----------------- -These tutorials show how to interact with our standard :code:`NavData` +These tutorials show how to initialize and use our standard :code:`NavData` class and its corresponding operations. .. toctree:: @@ -27,8 +43,8 @@ class and its corresponding operations. Parser Tutorials ---------------- -These tutorials explain details about existing parsers and how to create -a new parser if necessary. +These tutorials explain existing parsers and how to create a new parser +if necessary. .. toctree:: :maxdepth: 2 @@ -46,7 +62,8 @@ a new parser if necessary. Algorithm Tutorials ------------------- -These tutorials demonstrate existing algorithms implemented in ``gnss_lib_py``. +These tutorials demonstrate existing algorithms for state estimation +and fault detection and estimation. .. toctree:: :maxdepth: 2 @@ -60,8 +77,8 @@ These tutorials demonstrate existing algorithms implemented in ``gnss_lib_py``. Utility Tutorials ----------------- -These tutorials illustrate a few of the most common utility functions -available in the :code:`utils` directory. +These tutorials illustrate some of the utility functions available in +the :code:`utils` directory. .. toctree:: :maxdepth: 2 @@ -78,7 +95,7 @@ available in the :code:`utils` directory. Visualization Tutorials ----------------------- -These tutorials illustrate a few of the most common plotting functions +These tutorials illustrate most commonly used plotting functions available in the :code:`visualizations` directory. .. toctree:: diff --git a/notebooks/tutorials/navdata/navdata.ipynb b/notebooks/tutorials/navdata/navdata.ipynb index 6051d555..9e24b614 100644 --- a/notebooks/tutorials/navdata/navdata.ipynb +++ b/notebooks/tutorials/navdata/navdata.ipynb @@ -57,7 +57,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Create an empty NavData class instantiation" + "Create an empty `NavData` class instance" ] }, { @@ -74,7 +74,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Create a NavData class from a csv file" + "Create a `NavData` class from a csv file" ] }, { @@ -91,7 +91,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Create an empty NavData class from a pandas DataFrame" + "Create an empty `NavData` class from a pandas DataFrame" ] }, { @@ -100,7 +100,9 @@ "metadata": {}, "outputs": [], "source": [ + "# Convert the csv file to a pd.DataFrame for this illustration\n", "pd_df = pd.read_csv(data_path)\n", + "# Load pd.DataFrame into NavData using pd.DataFrame instance\n", "nav_data_pd = glp.NavData(pandas_df=pd_df)\n", "print(nav_data_pd)" ] @@ -109,7 +111,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Create an empty NavData class instantiation" + "Create a `NavData` class instance from a numpy array" ] }, { @@ -134,7 +136,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this example, the csv file that we have loaded has the following contents:\n", + "For this example, we will use the csv file that we previously loaded.\n", + "This file has the following contents:\n", "\n", "| myTimestamp | mySatId | myPseudorange |\n", "| ----------- | ------- | ------------- |\n", @@ -173,7 +176,7 @@ "metadata": {}, "outputs": [], "source": [ - "nav_data_csv['myTimestamp']\n" + "nav_data_csv['myTimestamp']" ] }, { @@ -337,7 +340,8 @@ "metadata": {}, "source": [ "You can see which rows are currently in `NavData` using `NavData.rows`.\n", - "The number of columns can be viewed using `len(NavData)` and the shape of the array can be viewed using `NavData.shape`" + "The number of columns can be viewed using `len(NavData)` or `NavData.num_cols`\n", + "and the shape of the array can be viewed using `NavData.shape`." ] }, { @@ -422,7 +426,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "If you don't specify any rows or columns, the entire `NavData` will be copied" + "For `NavData.copy()`, similar to the remove method, specify the rows and columns you want to copy into a new `NavData` instance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specifying rows, columns or both copies specified rows and columns.\n", + "\n", + "Note that currently, rows and columns must be specified as lists." ] }, { @@ -431,7 +444,7 @@ "metadata": {}, "outputs": [], "source": [ - "nav_data_np_copy = nav_data_np.copy()\n", + "nav_data_np_copy = nav_data_np.copy(rows=[0,1], cols=list(range(4)))\n", "print('Original NavData array')\n", "print(nav_data_np[:, :])\n", "print('Copied NavData array')\n", @@ -442,9 +455,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Specifying rows, columns or both copies specified rows and columns.\n", - "\n", - "Note that currently, rows and columns must be specified as lists." + "If you don't specify any rows or columns, the entire `NavData` will be copied" ] }, { @@ -453,7 +464,7 @@ "metadata": {}, "outputs": [], "source": [ - "nav_data_np_copy = nav_data_np.copy(rows=[0,1], cols=list(range(4)))\n", + "nav_data_np_copy = nav_data_np.copy()\n", "print('Original NavData array')\n", "print(nav_data_np[:, :])\n", "print('Copied NavData array')\n", @@ -483,6 +494,22 @@ "nav_data_pd.pandas_df()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To save, specify the path in `NavData.to_csv()`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# nav_data_pd.to_csv('desired path for csv file')" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/navdata/operations.ipynb b/notebooks/tutorials/navdata/operations.ipynb index 6caeb3d1..4708f744 100644 --- a/notebooks/tutorials/navdata/operations.ipynb +++ b/notebooks/tutorials/navdata/operations.ipynb @@ -18,13 +18,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This tutorial shows how to use the `NavData` class, including how to initialize\n", - "instances and perform basic operations." + "This tutorial shows how to perform funtional operations on instances of \n", + "the `NavData` class, such as looping across a time row in a `NavData` instance,\n", + "concatenating multiple instances together, sorting a `NavData` instance \n", + "based on the values in a particular row, and interpolating any NaN values." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -33,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -52,9 +54,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " myTimestamp mySatId myPseudorange\n", + "0 10 10 270000001\n", + "1 10 14 270000007\n", + "2 10 7 270000004\n", + "3 10 3 270000005\n", + "4 11 10 270000002\n", + "5 11 14 270000008\n", + "6 11 7 270000003\n", + "7 11 3 270000004\n" + ] + } + ], "source": [ "navdata = glp.NavData(csv_path=data_path)\n", "print(navdata)" @@ -76,9 +94,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current timestamp: 10\n", + "Difference between current and future time step 0\n", + "Current group of data\n", + " myTimestamp mySatId myPseudorange\n", + "0 10 10 270000001\n", + "1 10 14 270000007\n", + "2 10 7 270000004\n", + "3 10 3 270000005\n", + "Current timestamp: 11\n", + "Difference between current and future time step 1\n", + "Current group of data\n", + " myTimestamp mySatId myPseudorange\n", + "0 11 10 270000002\n", + "1 11 14 270000008\n", + "2 11 7 270000003\n", + "3 11 3 270000004\n" + ] + } + ], "source": [ "for timestamp, delta_t, navdata_subset in glp.loop_time(navdata,'myTimestamp'):\n", " print('Current timestamp: ', timestamp)\n", @@ -103,9 +144,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + " myTimestamp mySatId myPseudorange myTimestamp_0 mySatId_0 \\\n", + "0 10 10 270000001 10 10 \n", + "1 10 14 270000007 10 14 \n", + "2 10 7 270000004 10 7 \n", + "3 10 3 270000005 10 3 \n", + "4 11 10 270000002 11 10 \n", + "5 11 14 270000008 11 14 \n", + "6 11 7 270000003 11 7 \n", + "7 11 3 270000004 11 3 \n", + "\n", + " myPseudorange_0 \n", + "0 270000001 \n", + "1 270000007 \n", + "2 270000004 \n", + "3 270000005 \n", + "4 270000002 \n", + "5 270000008 \n", + "6 270000003 \n", + "7 270000004 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "double_navdata = glp.concat(navdata, navdata, axis=0)\n", "double_navdata" @@ -120,9 +190,54 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + " myTimestamp mySatId myPseudorange myTimestamp_0 mySatId_0 \\\n", + "0 10 10 270000001 10.0 10.0 \n", + "1 10 14 270000007 10.0 14.0 \n", + "2 10 7 270000004 10.0 7.0 \n", + "3 10 3 270000005 10.0 3.0 \n", + "4 11 10 270000002 11.0 10.0 \n", + "5 11 14 270000008 11.0 14.0 \n", + "6 11 7 270000003 11.0 7.0 \n", + "7 11 3 270000004 11.0 3.0 \n", + "8 10 10 270000001 NaN NaN \n", + "9 10 14 270000007 NaN NaN \n", + "10 10 7 270000004 NaN NaN \n", + "11 10 3 270000005 NaN NaN \n", + "12 11 10 270000002 NaN NaN \n", + "13 11 14 270000008 NaN NaN \n", + "14 11 7 270000003 NaN NaN \n", + "15 11 3 270000004 NaN NaN \n", + "\n", + " myPseudorange_0 \n", + "0 270000001.0 \n", + "1 270000007.0 \n", + "2 270000004.0 \n", + "3 270000005.0 \n", + "4 270000002.0 \n", + "5 270000008.0 \n", + "6 270000003.0 \n", + "7 270000004.0 \n", + "8 NaN \n", + "9 NaN \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "glp.concat(double_navdata, navdata, axis=1)" ] @@ -134,12 +249,285 @@ "## Sorting a NavData Instance based on Row Values" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An entire `NavData` instance can be sorted based on the values in a specified\n", + "row or to match a previously determined order.\n", + "\n", + "This operation can be performed in place using the argument `inplace = True`.\n", + "In this case, the `sort` function returns `None` and modifies the input `NavData`\n", + "in existing memory. If `inplace=False`, a new sorted `NavData` is returned." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "New NavData \n", + " myTimestamp mySatId myPseudorange random_row\n", + "0 10 10 270000001 5\n", + "1 10 14 270000007 7\n", + "2 10 7 270000004 4\n", + "3 10 3 270000005 0\n", + "4 11 10 270000002 2\n", + "5 11 14 270000008 6\n", + "6 11 7 270000003 3\n", + "7 11 3 270000004 1\n" + ] + } + ], + "source": [ + "# Generate a new row with random numbers\n", + "import numpy as np\n", + "new_row = np.arange(len(navdata))\n", + "np.random.shuffle(new_row)\n", + "#Add a new row with random numbers to the existing NavData\n", + "navdata['random_row'] = new_row\n", + "print('New NavData \\n', navdata)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sort in ascending order" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ascending order sorted NavData\n", + " myTimestamp mySatId myPseudorange random_row\n", + "0 10 3 270000005 0\n", + "1 11 3 270000004 1\n", + "2 11 10 270000002 2\n", + "3 11 7 270000003 3\n", + "4 10 7 270000004 4\n", + "5 10 10 270000001 5\n", + "6 11 14 270000008 6\n", + "7 10 14 270000007 7\n" + ] + } + ], + "source": [ + "print('Ascending order sorted NavData')\n", + "print(glp.sort(navdata, order='random_row'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sort in descending order" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Descending order sorted NavData\n", + " myTimestamp mySatId myPseudorange random_row\n", + "0 10 14 270000007 7\n", + "1 11 14 270000008 6\n", + "2 10 10 270000001 5\n", + "3 10 7 270000004 4\n", + "4 11 7 270000003 3\n", + "5 11 10 270000002 2\n", + "6 11 3 270000004 1\n", + "7 10 3 270000005 0\n" + ] + } + ], + "source": [ + "print('Descending order sorted NavData')\n", + "print(glp.sort(navdata, order='random_row', ascending=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sort using indices given by an externally determined order" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sorted using externally determined indices\n", + " myTimestamp mySatId myPseudorange random_row\n", + "0 10 3 270000005 0\n", + "1 11 3 270000004 1\n", + "2 11 10 270000002 2\n", + "3 11 7 270000003 3\n", + "4 10 7 270000004 4\n", + "5 10 10 270000001 5\n", + "6 11 14 270000008 6\n", + "7 10 14 270000007 7\n" + ] + } + ], + "source": [ + "#find indices corresponding to external order of sorting\n", + "sort_order = np.argsort(new_row)\n", + "print('Sorted using externally determined indices')\n", + "print(glp.sort(navdata, ind=sort_order))" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpolate NaN values in a NavData Row" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some algorithms might not return results for some time instances or samples, leading to a situation where the `NaN` values have to be replaced with values interpolated between known topics.\n", + "In this case, we can use the `glp.interpolate` function with corresponding attributes for the x-axis and y-axis values to interpolate and replace the `NaN` values." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NavData with NaN values \n", + " myTimestamp mySatId myPseudorange random_row nan_row_x nan_row_y\n", + "0 10 10 270000001 5 0.0 0.0\n", + "1 10 14 270000007 7 1.0 NaN\n", + "2 10 7 270000004 4 2.0 2.0\n", + "3 10 3 270000005 0 3.0 NaN\n", + "4 11 10 270000002 2 4.0 NaN\n", + "5 11 14 270000008 6 5.0 5.0\n", + "6 11 7 270000003 3 6.0 NaN\n", + "7 11 3 270000004 1 7.0 7.0\n", + "NavData values with interpolated values \n", + " myTimestamp mySatId myPseudorange random_row nan_row_x nan_row_y\n", + "0 10 10 270000001 5 0.0 0.0\n", + "1 10 14 270000007 7 1.0 1.0\n", + "2 10 7 270000004 4 2.0 2.0\n", + "3 10 3 270000005 0 3.0 3.0\n", + "4 11 10 270000002 2 4.0 4.0\n", + "5 11 14 270000008 6 5.0 5.0\n", + "6 11 7 270000003 3 6.0 6.0\n", + "7 11 3 270000004 1 7.0 7.0\n" + ] + } + ], + "source": [ + "#Create a new y-axis row with some NaN values\n", + "nan_row_x = np.arange(len(navdata)).astype(np.float64)\n", + "nan_row_y = np.arange(len(navdata)).astype(np.float64)\n", + "nan_indices = [1, 3, 4, 6]\n", + "nan_row_y[nan_indices] = np.nan\n", + "#Set these rows in the navdata\n", + "navdata['nan_row_x'] = nan_row_x\n", + "navdata['nan_row_y'] = nan_row_y\n", + "print('NavData with NaN values \\n', navdata)\n", + "\n", + "#Interpolate the NaN values\n", + "glp.interpolate(navdata, 'nan_row_x', 'nan_row_y', inplace=True)\n", + "print('NavData values with interpolated values \\n', navdata)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Find row names that correspond to a particular pattern" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In some cases, row names follow a pattern but the exact row name might be unknown.\n", + "These cases might happen when the row name also mentions the algorithm used to obtain the estimate but downstream processing does not care about this distinction.\n", + "In this case, we can use the `find_wildcard_indexes` function to extract the relavant row names.\n", + "\n", + "This method returns a dictionary where the wildcard query is the key and \n", + "the found row names are the columns." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'nan_*_x': ['nan_row_x']}\n", + "{'nan_*_x': ['nan_row_x', 'nan_col_x']}\n" + ] + } + ], + "source": [ + "print(glp.find_wildcard_indexes(navdata, 'nan_*_x', max_allow=1))\n", + "navdata['nan_col_x'] = 0\n", + "print(glp.find_wildcard_indexes(navdata, 'nan_*_x'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function can also be used to exclude certain wildcards or allow only\n", + "one row name using functional attributes. If `max_allow=1` is used when\n", + "there are more than `max_allow` entries, the function will raise a `KeyError`" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error: 'More than 1 possible row indexes for nan_*_x'\n" + ] + } + ], + "source": [ + "try:\n", + " glp.find_wildcard_indexes(navdata, 'nan_*_x', max_allow=1)\n", + "except KeyError as excp:\n", + " print('Error:', excp)" + ] } ], "metadata": { From 5b3485a7b22ace6e83fe6d192b08f31bca997ecd Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Tue, 13 Feb 2024 19:29:46 -0800 Subject: [PATCH 06/40] Added poetry-plugin-export --- docs/source/tutorials/tutorials.rst | 2 +- poetry.lock | 1653 ++++++++++++++++++++------- pyproject.toml | 1 + 3 files changed, 1245 insertions(+), 411 deletions(-) diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index b4ca6cde..cc2f8ab1 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -15,7 +15,7 @@ organized. These tutorials are in interactive Jupyter notebooks and have been rendered as part of the documentation. You can run the code yourself by running the notebooks in the 'tutorials' -directory :ref:`here`. +directory `here `. The notebooks can also be run in Google Colab without downloading the repository by selecting the 'Open in Colab' option at the top of each notebook. diff --git a/poetry.lock b/poetry.lock index feaddf64..acf4bb7b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -35,13 +35,13 @@ trio = ["trio (>=0.23)"] [[package]] name = "appnope" -version = "0.1.3" +version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] @@ -257,15 +257,60 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.3)"] +[[package]] +name = "build" +version = "1.0.3" +description = "A simple, correct Python build frontend" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "build-1.0.3-py3-none-any.whl", hash = "sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f"}, + {file = "build-1.0.3.tar.gz", hash = "sha256:538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "os_name == \"nt\""} +importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} +packaging = ">=19.0" +pyproject_hooks = "*" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["furo (>=2023.08.17)", "sphinx (>=7.0,<8.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)", "sphinx-issues (>=3.0.0)"] +test = ["filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "setuptools (>=56.0.0)", "setuptools (>=67.8.0)", "wheel (>=0.36.0)"] +typing = ["importlib-metadata (>=5.1)", "mypy (>=1.5.0,<1.6.0)", "tomli", "typing-extensions (>=3.7.4.3)"] +virtualenv = ["virtualenv (>=20.0.35)"] + +[[package]] +name = "cachecontrol" +version = "0.13.1" +description = "httplib2 caching for requests" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, + {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, +] + +[package.dependencies] +filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""} +msgpack = ">=0.5.2" +requests = ">=2.16.0" + +[package.extras] +dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "mypy", "pytest", "pytest-cov", "sphinx", "tox", "types-redis", "types-requests"] +filecache = ["filelock (>=3.8.0)"] +redis = ["redis (>=2.10.5)"] + [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -431,6 +476,21 @@ files = [ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] +[[package]] +name = "cleo" +version = "2.1.0" +description = "Cleo allows you to create beautiful and testable command-line interfaces." +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "cleo-2.1.0-py3-none-any.whl", hash = "sha256:4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e"}, + {file = "cleo-2.1.0.tar.gz", hash = "sha256:0b2c880b5d13660a7ea651001fb4acb527696c01f15c9ee650f377aa543fd523"}, +] + +[package.dependencies] +crashtest = ">=0.4.1,<0.5.0" +rapidfuzz = ">=3.0.0,<4.0.0" + [[package]] name = "colorama" version = "0.4.6" @@ -532,63 +592,63 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "coverage" -version = "7.4.0" +version = "7.4.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36b0ea8ab20d6a7564e89cb6135920bc9188fb5f1f7152e94e8300b7b189441a"}, - {file = "coverage-7.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676cd0ba581e514b7f726495ea75aba3eb20899d824636c6f59b0ed2f88c471"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ca5c71a5a1765a0f8f88022c52b6b8be740e512980362f7fdbb03725a0d6b9"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c97726520f784239f6c62506bc70e48d01ae71e9da128259d61ca5e9788516"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:815ac2d0f3398a14286dc2cea223a6f338109f9ecf39a71160cd1628786bc6f5"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:80b5ee39b7f0131ebec7968baa9b2309eddb35b8403d1869e08f024efd883566"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b2ccb7548a0b65974860a78c9ffe1173cfb5877460e5a229238d985565574ae"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:995ea5c48c4ebfd898eacb098164b3cc826ba273b3049e4a889658548e321b43"}, - {file = "coverage-7.4.0-cp310-cp310-win32.whl", hash = "sha256:79287fd95585ed36e83182794a57a46aeae0b64ca53929d1176db56aacc83451"}, - {file = "coverage-7.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5b14b4f8760006bfdb6e08667af7bc2d8d9bfdb648351915315ea17645347137"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04387a4a6ecb330c1878907ce0dc04078ea72a869263e53c72a1ba5bbdf380ca"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea81d8f9691bb53f4fb4db603203029643caffc82bf998ab5b59ca05560f4c06"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74775198b702868ec2d058cb92720a3c5a9177296f75bd97317c787daf711505"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f03940f9973bfaee8cfba70ac991825611b9aac047e5c80d499a44079ec0bc"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485e9f897cf4856a65a57c7f6ea3dc0d4e6c076c87311d4bc003f82cfe199d25"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ae8c9d301207e6856865867d762a4b6fd379c714fcc0607a84b92ee63feff70"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bf477c355274a72435ceb140dc42de0dc1e1e0bf6e97195be30487d8eaaf1a09"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:83c2dda2666fe32332f8e87481eed056c8b4d163fe18ecc690b02802d36a4d26"}, - {file = "coverage-7.4.0-cp311-cp311-win32.whl", hash = "sha256:697d1317e5290a313ef0d369650cfee1a114abb6021fa239ca12b4849ebbd614"}, - {file = "coverage-7.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:26776ff6c711d9d835557ee453082025d871e30b3fd6c27fcef14733f67f0590"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:13eaf476ec3e883fe3e5fe3707caeb88268a06284484a3daf8250259ef1ba143"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846f52f46e212affb5bcf131c952fb4075b55aae6b61adc9856222df89cbe3e2"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26f66da8695719ccf90e794ed567a1549bb2644a706b41e9f6eae6816b398c4a"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:164fdcc3246c69a6526a59b744b62e303039a81e42cfbbdc171c91a8cc2f9446"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:316543f71025a6565677d84bc4df2114e9b6a615aa39fb165d697dba06a54af9"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bb1de682da0b824411e00a0d4da5a784ec6496b6850fdf8c865c1d68c0e318dd"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0e8d06778e8fbffccfe96331a3946237f87b1e1d359d7fbe8b06b96c95a5407a"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a56de34db7b7ff77056a37aedded01b2b98b508227d2d0979d373a9b5d353daa"}, - {file = "coverage-7.4.0-cp312-cp312-win32.whl", hash = "sha256:51456e6fa099a8d9d91497202d9563a320513fcf59f33991b0661a4a6f2ad450"}, - {file = "coverage-7.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd3c1e4cb2ff0083758f09be0f77402e1bdf704adb7f89108007300a6da587d0"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e9d1bf53c4c8de58d22e0e956a79a5b37f754ed1ffdbf1a260d9dcfa2d8a325e"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:109f5985182b6b81fe33323ab4707011875198c41964f014579cf82cebf2bb85"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc9d4bc55de8003663ec94c2f215d12d42ceea128da8f0f4036235a119c88ac"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc6d65b21c219ec2072c1293c505cf36e4e913a3f936d80028993dd73c7906b1"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a10a4920def78bbfff4eff8a05c51be03e42f1c3735be42d851f199144897ba"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b8e99f06160602bc64da35158bb76c73522a4010f0649be44a4e167ff8555952"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7d360587e64d006402b7116623cebf9d48893329ef035278969fa3bbf75b697e"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29f3abe810930311c0b5d1a7140f6395369c3db1be68345638c33eec07535105"}, - {file = "coverage-7.4.0-cp38-cp38-win32.whl", hash = "sha256:5040148f4ec43644702e7b16ca864c5314ccb8ee0751ef617d49aa0e2d6bf4f2"}, - {file = "coverage-7.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:9864463c1c2f9cb3b5db2cf1ff475eed2f0b4285c2aaf4d357b69959941aa555"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:936d38794044b26c99d3dd004d8af0035ac535b92090f7f2bb5aa9c8e2f5cd42"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:799c8f873794a08cdf216aa5d0531c6a3747793b70c53f70e98259720a6fe2d7"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7defbb9737274023e2d7af02cac77043c86ce88a907c58f42b580a97d5bcca9"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1526d265743fb49363974b7aa8d5899ff64ee07df47dd8d3e37dcc0818f09ed"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf635a52fc1ea401baf88843ae8708591aa4adff875e5c23220de43b1ccf575c"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:756ded44f47f330666843b5781be126ab57bb57c22adbb07d83f6b519783b870"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0eb3c2f32dabe3a4aaf6441dde94f35687224dfd7eb2a7f47f3fd9428e421058"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bfd5db349d15c08311702611f3dccbef4b4e2ec148fcc636cf8739519b4a5c0f"}, - {file = "coverage-7.4.0-cp39-cp39-win32.whl", hash = "sha256:53d7d9158ee03956e0eadac38dfa1ec8068431ef8058fe6447043db1fb40d932"}, - {file = "coverage-7.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfd2a8b6b0d8e66e944d47cdec2f47c48fef2ba2f2dff5a9a75757f64172857e"}, - {file = "coverage-7.4.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:c530833afc4707fe48524a44844493f36d8727f04dcce91fb978c414a8556cc6"}, - {file = "coverage-7.4.0.tar.gz", hash = "sha256:707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, + {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, + {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, + {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, + {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, + {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, + {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, + {file = "coverage-7.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8bdb0285a0202888d19ec6b6d23d5990410decb932b709f2b0dfe216d031d218"}, + {file = "coverage-7.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:918440dea04521f499721c039863ef95433314b1db00ff826a02580c1f503e45"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:379d4c7abad5afbe9d88cc31ea8ca262296480a86af945b08214eb1a556a3e4d"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094116f0b6155e36a304ff912f89bbb5067157aff5f94060ff20bbabdc8da06"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2f5968608b1fe2a1d00d01ad1017ee27efd99b3437e08b83ded9b7af3f6f766"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:10e88e7f41e6197ea0429ae18f21ff521d4f4490aa33048f6c6f94c6045a6a75"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a4a3907011d39dbc3e37bdc5df0a8c93853c369039b59efa33a7b6669de04c60"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d224f0c4c9c98290a6990259073f496fcec1b5cc613eecbd22786d398ded3ad"}, + {file = "coverage-7.4.1-cp38-cp38-win32.whl", hash = "sha256:23f5881362dcb0e1a92b84b3c2809bdc90db892332daab81ad8f642d8ed55042"}, + {file = "coverage-7.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:a07f61fc452c43cd5328b392e52555f7d1952400a1ad09086c4a8addccbd138d"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, + {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, + {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, + {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, + {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, ] [package.dependencies] @@ -597,6 +657,71 @@ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.1 [package.extras] toml = ["tomli"] +[[package]] +name = "crashtest" +version = "0.4.1" +description = "Manage Python errors with ease" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"}, + {file = "crashtest-0.4.1.tar.gz", hash = "sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce"}, +] + +[[package]] +name = "cryptography" +version = "42.0.2" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be"}, + {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2"}, + {file = "cryptography-42.0.2-cp37-abi3-win32.whl", hash = "sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee"}, + {file = "cryptography-42.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee"}, + {file = "cryptography-42.0.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33"}, + {file = "cryptography-42.0.2-cp39-abi3-win32.whl", hash = "sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635"}, + {file = "cryptography-42.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65"}, + {file = "cryptography-42.0.2.tar.gz", hash = "sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + [[package]] name = "cycler" version = "0.12.1" @@ -614,29 +739,33 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.8.0" +version = "1.8.1" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, - {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, - {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, - {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, - {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, - {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, - {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, - {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, - {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, - {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, - {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, - {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, - {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, - {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, - {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, - {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, - {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, - {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, ] [[package]] @@ -663,17 +792,29 @@ files = [ [[package]] name = "dill" -version = "0.3.7" +version = "0.3.8" description = "serialize all of Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, - {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] + +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] [[package]] name = "docutils" @@ -686,6 +827,93 @@ files = [ {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] +[[package]] +name = "dulwich" +version = "0.21.7" +description = "Python Git Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d4c0110798099bb7d36a110090f2688050703065448895c4f53ade808d889dd3"}, + {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2bc12697f0918bee324c18836053644035362bb3983dc1b210318f2fed1d7132"}, + {file = "dulwich-0.21.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:471305af74790827fcbafe330fc2e8bdcee4fb56ca1177c8c481b1c8f806c4a4"}, + {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54c9d0e845be26f65f954dff13a1cd3f2b9739820c19064257b8fd7435ab263"}, + {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12d61334a575474e707614f2e93d6ed4cdae9eb47214f9277076d9e5615171d3"}, + {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e274cebaf345f0b1e3b70197f2651de92b652386b68020cfd3bf61bc30f6eaaa"}, + {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:817822f970e196e757ae01281ecbf21369383285b9f4a83496312204cf889b8c"}, + {file = "dulwich-0.21.7-cp310-cp310-win32.whl", hash = "sha256:7836da3f4110ce684dcd53489015fb7fa94ed33c5276e3318b8b1cbcb5b71e08"}, + {file = "dulwich-0.21.7-cp310-cp310-win_amd64.whl", hash = "sha256:4a043b90958cec866b4edc6aef5fe3c2c96a664d0b357e1682a46f6c477273c4"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ce8db196e79c1f381469410d26fb1d8b89c6b87a4e7f00ff418c22a35121405c"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:62bfb26bdce869cd40be443dfd93143caea7089b165d2dcc33de40f6ac9d812a"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c01a735b9a171dcb634a97a3cec1b174cfbfa8e840156870384b633da0460f18"}, + {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa4d14767cf7a49c9231c2e52cb2a3e90d0c83f843eb6a2ca2b5d81d254cf6b9"}, + {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bca4b86e96d6ef18c5bc39828ea349efb5be2f9b1f6ac9863f90589bac1084d"}, + {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a7b5624b02ef808cdc62dabd47eb10cd4ac15e8ac6df9e2e88b6ac6b40133673"}, + {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c3a539b4696a42fbdb7412cb7b66a4d4d332761299d3613d90a642923c7560e1"}, + {file = "dulwich-0.21.7-cp311-cp311-win32.whl", hash = "sha256:675a612ce913081beb0f37b286891e795d905691dfccfb9bf73721dca6757cde"}, + {file = "dulwich-0.21.7-cp311-cp311-win_amd64.whl", hash = "sha256:460ba74bdb19f8d498786ae7776745875059b1178066208c0fd509792d7f7bfc"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4c51058ec4c0b45dc5189225b9e0c671b96ca9713c1daf71d622c13b0ab07681"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4bc4c5366eaf26dda3fdffe160a3b515666ed27c2419f1d483da285ac1411de0"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a0650ec77d89cb947e3e4bbd4841c96f74e52b4650830112c3057a8ca891dc2f"}, + {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f18f0a311fb7734b033a3101292b932158cade54b74d1c44db519e42825e5a2"}, + {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c589468e5c0cd84e97eb7ec209ab005a2cb69399e8c5861c3edfe38989ac3a8"}, + {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d62446797163317a397a10080c6397ffaaca51a7804c0120b334f8165736c56a"}, + {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e84cc606b1f581733df4350ca4070e6a8b30be3662bbb81a590b177d0c996c91"}, + {file = "dulwich-0.21.7-cp312-cp312-win32.whl", hash = "sha256:c3d1685f320907a52c40fd5890627945c51f3a5fa4bcfe10edb24fec79caadec"}, + {file = "dulwich-0.21.7-cp312-cp312-win_amd64.whl", hash = "sha256:6bd69921fdd813b7469a3c77bc75c1783cc1d8d72ab15a406598e5a3ba1a1503"}, + {file = "dulwich-0.21.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d8ab29c660125db52106775caa1f8f7f77a69ed1fe8bc4b42bdf115731a25bf"}, + {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0d2e4485b98695bf95350ce9d38b1bb0aaac2c34ad00a0df789aa33c934469b"}, + {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e138d516baa6b5bafbe8f030eccc544d0d486d6819b82387fc0e285e62ef5261"}, + {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f34bf9b9fa9308376263fd9ac43143c7c09da9bc75037bb75c6c2423a151b92c"}, + {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2e2c66888207b71cd1daa2acb06d3984a6bc13787b837397a64117aa9fc5936a"}, + {file = "dulwich-0.21.7-cp37-cp37m-win32.whl", hash = "sha256:10893105c6566fc95bc2a67b61df7cc1e8f9126d02a1df6a8b2b82eb59db8ab9"}, + {file = "dulwich-0.21.7-cp37-cp37m-win_amd64.whl", hash = "sha256:460b3849d5c3d3818a80743b4f7a0094c893c559f678e56a02fff570b49a644a"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:74700e4c7d532877355743336c36f51b414d01e92ba7d304c4f8d9a5946dbc81"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c92e72c43c9e9e936b01a57167e0ea77d3fd2d82416edf9489faa87278a1cdf7"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d097e963eb6b9fa53266146471531ad9c6765bf390849230311514546ed64db2"}, + {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:808e8b9cc0aa9ac74870b49db4f9f39a52fb61694573f84b9c0613c928d4caf8"}, + {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1957b65f96e36c301e419d7adaadcff47647c30eb072468901bb683b1000bc5"}, + {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4b09bc3a64fb70132ec14326ecbe6e0555381108caff3496898962c4136a48c6"}, + {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5882e70b74ac3c736a42d3fdd4f5f2e6570637f59ad5d3e684760290b58f041"}, + {file = "dulwich-0.21.7-cp38-cp38-win32.whl", hash = "sha256:29bb5c1d70eba155ded41ed8a62be2f72edbb3c77b08f65b89c03976292f6d1b"}, + {file = "dulwich-0.21.7-cp38-cp38-win_amd64.whl", hash = "sha256:25c3ab8fb2e201ad2031ddd32e4c68b7c03cb34b24a5ff477b7a7dcef86372f5"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8929c37986c83deb4eb500c766ee28b6670285b512402647ee02a857320e377c"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cc1e11be527ac06316539b57a7688bcb1b6a3e53933bc2f844397bc50734e9ae"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0fc3078a1ba04c588fabb0969d3530efd5cd1ce2cf248eefb6baf7cbc15fc285"}, + {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dcbd29ba30ba2c5bfbab07a61a5f20095541d5ac66d813056c122244df4ac0"}, + {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8869fc8ec3dda743e03d06d698ad489b3705775fe62825e00fa95aa158097fc0"}, + {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d96ca5e0dde49376fbcb44f10eddb6c30284a87bd03bb577c59bb0a1f63903fa"}, + {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e0064363bd5e814359657ae32517fa8001e8573d9d040bd997908d488ab886ed"}, + {file = "dulwich-0.21.7-cp39-cp39-win32.whl", hash = "sha256:869eb7be48243e695673b07905d18b73d1054a85e1f6e298fe63ba2843bb2ca1"}, + {file = "dulwich-0.21.7-cp39-cp39-win_amd64.whl", hash = "sha256:404b8edeb3c3a86c47c0a498699fc064c93fa1f8bab2ffe919e8ab03eafaaad3"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e598d743c6c0548ebcd2baf94aa9c8bfacb787ea671eeeb5828cfbd7d56b552f"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4a2d76c96426e791556836ef43542b639def81be4f1d6d4322cd886c115eae1"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6c88acb60a1f4d31bd6d13bfba465853b3df940ee4a0f2a3d6c7a0778c705b7"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ecd315847dea406a4decfa39d388a2521e4e31acde3bd9c2609c989e817c6d62"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d05d3c781bc74e2c2a2a8f4e4e2ed693540fbe88e6ac36df81deac574a6dad99"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6de6f8de4a453fdbae8062a6faa652255d22a3d8bce0cd6d2d6701305c75f2b3"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e25953c7acbbe4e19650d0225af1c0c0e6882f8bddd2056f75c1cc2b109b88ad"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4637cbd8ed1012f67e1068aaed19fcc8b649bcf3e9e26649826a303298c89b9d"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:858842b30ad6486aacaa607d60bab9c9a29e7c59dc2d9cb77ae5a94053878c08"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739b191f61e1c4ce18ac7d520e7a7cbda00e182c3489552408237200ce8411ad"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:274c18ec3599a92a9b67abaf110e4f181a4f779ee1aaab9e23a72e89d71b2bd9"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2590e9b431efa94fc356ae33b38f5e64f1834ec3a94a6ac3a64283b206d07aa3"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed60d1f610ef6437586f7768254c2a93820ccbd4cfdac7d182cf2d6e615969bb"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8278835e168dd097089f9e53088c7a69c6ca0841aef580d9603eafe9aea8c358"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffc27fb063f740712e02b4d2f826aee8bbed737ed799962fef625e2ce56e2d29"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61e3451bd3d3844f2dca53f131982553be4d1b1e1ebd9db701843dd76c4dba31"}, + {file = "dulwich-0.21.7.tar.gz", hash = "sha256:a9e9c66833cea580c3ac12927e4b9711985d76afca98da971405d414de60e968"}, +] + +[package.dependencies] +urllib3 = ">=1.25" + +[package.extras] +fastimport = ["fastimport"] +https = ["urllib3 (>=1.24.1)"] +paramiko = ["paramiko"] +pgp = ["gpg"] + [[package]] name = "exceptiongroup" version = "1.2.0" @@ -728,62 +956,78 @@ files = [ [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +[[package]] +name = "filelock" +version = "3.13.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + [[package]] name = "fonttools" -version = "4.47.2" +version = "4.48.1" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3b629108351d25512d4ea1a8393a2dba325b7b7d7308116b605ea3f8e1be88df"}, - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c19044256c44fe299d9a73456aabee4b4d06c6b930287be93b533b4737d70aa1"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8be28c036b9f186e8c7eaf8a11b42373e7e4949f9e9f370202b9da4c4c3f56c"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f83a4daef6d2a202acb9bf572958f91cfde5b10c8ee7fb1d09a4c81e5d851fd8"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a5a5318ba5365d992666ac4fe35365f93004109d18858a3e18ae46f67907670"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8f57ecd742545362a0f7186774b2d1c53423ed9ece67689c93a1055b236f638c"}, - {file = "fonttools-4.47.2-cp310-cp310-win32.whl", hash = "sha256:a1c154bb85dc9a4cf145250c88d112d88eb414bad81d4cb524d06258dea1bdc0"}, - {file = "fonttools-4.47.2-cp310-cp310-win_amd64.whl", hash = "sha256:3e2b95dce2ead58fb12524d0ca7d63a63459dd489e7e5838c3cd53557f8933e1"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29495d6d109cdbabe73cfb6f419ce67080c3ef9ea1e08d5750240fd4b0c4763b"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0a1d313a415eaaba2b35d6cd33536560deeebd2ed758b9bfb89ab5d97dc5deac"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90f898cdd67f52f18049250a6474185ef6544c91f27a7bee70d87d77a8daf89c"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3480eeb52770ff75140fe7d9a2ec33fb67b07efea0ab5129c7e0c6a639c40c70"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0255dbc128fee75fb9be364806b940ed450dd6838672a150d501ee86523ac61e"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f791446ff297fd5f1e2247c188de53c1bfb9dd7f0549eba55b73a3c2087a2703"}, - {file = "fonttools-4.47.2-cp311-cp311-win32.whl", hash = "sha256:740947906590a878a4bde7dd748e85fefa4d470a268b964748403b3ab2aeed6c"}, - {file = "fonttools-4.47.2-cp311-cp311-win_amd64.whl", hash = "sha256:63fbed184979f09a65aa9c88b395ca539c94287ba3a364517698462e13e457c9"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4ec558c543609e71b2275c4894e93493f65d2f41c15fe1d089080c1d0bb4d635"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e040f905d542362e07e72e03612a6270c33d38281fd573160e1003e43718d68d"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dd58cc03016b281bd2c74c84cdaa6bd3ce54c5a7f47478b7657b930ac3ed8eb"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32ab2e9702dff0dd4510c7bb958f265a8d3dd5c0e2547e7b5f7a3df4979abb07"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a808f3c1d1df1f5bf39be869b6e0c263570cdafb5bdb2df66087733f566ea71"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac71e2e201df041a2891067dc36256755b1229ae167edbdc419b16da78732c2f"}, - {file = "fonttools-4.47.2-cp312-cp312-win32.whl", hash = "sha256:69731e8bea0578b3c28fdb43dbf95b9386e2d49a399e9a4ad736b8e479b08085"}, - {file = "fonttools-4.47.2-cp312-cp312-win_amd64.whl", hash = "sha256:b3e1304e5f19ca861d86a72218ecce68f391646d85c851742d265787f55457a4"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:254d9a6f7be00212bf0c3159e0a420eb19c63793b2c05e049eb337f3023c5ecc"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eabae77a07c41ae0b35184894202305c3ad211a93b2eb53837c2a1143c8bc952"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86a5ab2873ed2575d0fcdf1828143cfc6b977ac448e3dc616bb1e3d20efbafa"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13819db8445a0cec8c3ff5f243af6418ab19175072a9a92f6cc8ca7d1452754b"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4e743935139aa485fe3253fc33fe467eab6ea42583fa681223ea3f1a93dd01e6"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d49ce3ea7b7173faebc5664872243b40cf88814ca3eb135c4a3cdff66af71946"}, - {file = "fonttools-4.47.2-cp38-cp38-win32.whl", hash = "sha256:94208ea750e3f96e267f394d5588579bb64cc628e321dbb1d4243ffbc291b18b"}, - {file = "fonttools-4.47.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f750037e02beb8b3569fbff701a572e62a685d2a0e840d75816592280e5feae"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d71606c9321f6701642bd4746f99b6089e53d7e9817fc6b964e90d9c5f0ecc6"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86e0427864c6c91cf77f16d1fb9bf1bbf7453e824589e8fb8461b6ee1144f506"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a00bd0e68e88987dcc047ea31c26d40a3c61185153b03457956a87e39d43c37"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d77479fb885ef38a16a253a2f4096bc3d14e63a56d6246bfdb56365a12b20c"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5465df494f20a7d01712b072ae3ee9ad2887004701b95cb2cc6dcb9c2c97a899"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4c811d3c73b6abac275babb8aa439206288f56fdb2c6f8835e3d7b70de8937a7"}, - {file = "fonttools-4.47.2-cp39-cp39-win32.whl", hash = "sha256:5b60e3afa9635e3dfd3ace2757039593e3bd3cf128be0ddb7a1ff4ac45fa5a50"}, - {file = "fonttools-4.47.2-cp39-cp39-win_amd64.whl", hash = "sha256:7ee48bd9d6b7e8f66866c9090807e3a4a56cf43ffad48962725a190e0dd774c8"}, - {file = "fonttools-4.47.2-py3-none-any.whl", hash = "sha256:7eb7ad665258fba68fd22228a09f347469d95a97fb88198e133595947a20a184"}, - {file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"}, -] - -[package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] + {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:702ae93058c81f46461dc4b2c79f11d3c3d8fd7296eaf8f75b4ba5bbf813cd5f"}, + {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97f0a49fa6aa2d6205c6f72f4f98b74ef4b9bfdcb06fd78e6fe6c7af4989b63e"}, + {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3260db55f1843e57115256e91247ad9f68cb02a434b51262fe0019e95a98738"}, + {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e740a7602c2bb71e1091269b5dbe89549749a8817dc294b34628ffd8b2bf7124"}, + {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4108b1d247953dd7c90ec8f457a2dec5fceb373485973cc852b14200118a51ee"}, + {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56339ec557f0c342bddd7c175f5e41c45fc21282bee58a86bd9aa322bec715f2"}, + {file = "fonttools-4.48.1-cp310-cp310-win32.whl", hash = "sha256:bff5b38d0e76eb18e0b8abbf35d384e60b3371be92f7be36128ee3e67483b3ec"}, + {file = "fonttools-4.48.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7449493886da6a17472004d3818cc050ba3f4a0aa03fb47972e4fa5578e6703"}, + {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61"}, + {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cad5cfd044ea2e306fda44482b3dd32ee47830fa82dfa4679374b41baa294f5f"}, + {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f30e605c7565d0da6f0aec75a30ec372072d016957cd8fc4469721a36ea59b7"}, + {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7"}, + {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5057ade278e67923000041e2b195c9ea53e87f227690d499b6a4edd3702f7f01"}, + {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b10633aafc5932995a391ec07eba5e79f52af0003a1735b2306b3dab8a056d48"}, + {file = "fonttools-4.48.1-cp311-cp311-win32.whl", hash = "sha256:0d533f89819f9b3ee2dbedf0fed3825c425850e32bdda24c558563c71be0064e"}, + {file = "fonttools-4.48.1-cp311-cp311-win_amd64.whl", hash = "sha256:d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a"}, + {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0a2417547462e468edf35b32e3dd06a6215ac26aa6316b41e03b8eeaf9f079ea"}, + {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cf5a0cd974f85a80b74785db2d5c3c1fd6cc09a2ba3c837359b2b5da629ee1b0"}, + {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0452fcbfbce752ba596737a7c5ec5cf76bc5f83847ce1781f4f90eab14ece252"}, + {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578c00f93868f64a4102ecc5aa600a03b49162c654676c3fadc33de2ddb88a81"}, + {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:63dc592a16cd08388d8c4c7502b59ac74190b23e16dfc863c69fe1ea74605b68"}, + {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9b58638d8a85e3a1b32ec0a91d9f8171a877b4b81c408d4cb3257d0dee63e092"}, + {file = "fonttools-4.48.1-cp312-cp312-win32.whl", hash = "sha256:d10979ef14a8beaaa32f613bb698743f7241d92f437a3b5e32356dfb9769c65d"}, + {file = "fonttools-4.48.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdfd7557d1bd294a200bd211aa665ca3b02998dcc18f8211a5532da5b8fad5c5"}, + {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3cdb9a92521b81bf717ebccf592bd0292e853244d84115bfb4db0c426de58348"}, + {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b4ec6d42a7555f5ae35f3b805482f0aad0f1baeeef54859492ea3b782959d4a"}, + {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902e9c4e9928301912f34a6638741b8ae0b64824112b42aaf240e06b735774b1"}, + {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8c8b54bd1420c184a995f980f1a8076f87363e2bb24239ef8c171a369d85a31"}, + {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:12ee86abca46193359ea69216b3a724e90c66ab05ab220d39e3fc068c1eb72ac"}, + {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6978bade7b6c0335095bdd0bd97f8f3d590d2877b370f17e03e0865241694eb5"}, + {file = "fonttools-4.48.1-cp38-cp38-win32.whl", hash = "sha256:bcd77f89fc1a6b18428e7a55dde8ef56dae95640293bfb8f4e929929eba5e2a2"}, + {file = "fonttools-4.48.1-cp38-cp38-win_amd64.whl", hash = "sha256:f40441437b039930428e04fb05ac3a132e77458fb57666c808d74a556779e784"}, + {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d2b01428f7da26f229a5656defc824427b741e454b4e210ad2b25ed6ea2aed4"}, + {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:df48798f9a4fc4c315ab46e17873436c8746f5df6eddd02fad91299b2af7af95"}, + {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2eb4167bde04e172a93cf22c875d8b0cff76a2491f67f5eb069566215302d45d"}, + {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c900508c46274d32d308ae8e82335117f11aaee1f7d369ac16502c9a78930b0a"}, + {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:594206b31c95fcfa65f484385171fabb4ec69f7d2d7f56d27f17db26b7a31814"}, + {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:292922dc356d7f11f5063b4111a8b719efb8faea92a2a88ed296408d449d8c2e"}, + {file = "fonttools-4.48.1-cp39-cp39-win32.whl", hash = "sha256:4709c5bf123ba10eac210d2d5c9027d3f472591d9f1a04262122710fa3d23199"}, + {file = "fonttools-4.48.1-cp39-cp39-win_amd64.whl", hash = "sha256:63c73b9dd56a94a3cbd2f90544b5fca83666948a9e03370888994143b8d7c070"}, + {file = "fonttools-4.48.1-py3-none-any.whl", hash = "sha256:e3e33862fc5261d46d9aae3544acb36203b1a337d00bdb5d3753aae50dac860e"}, + {file = "fonttools-4.48.1.tar.gz", hash = "sha256:8b8a45254218679c7f1127812761e7854ed5c8e34349aebf581e8c9204e7495a"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0,<5)"] +lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] @@ -827,6 +1071,17 @@ lint = ["flake8", "flake8-blind-except", "flake8-bugbear", "flake8-builtins", "m plot = ["cartopy", "matplotlib", "pymap3d", "seaborn"] tests = ["pytest (>=3.9)", "pytest-timeout"] +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + [[package]] name = "hatanaka" version = "2.8.1" @@ -861,6 +1116,51 @@ ncompress = "*" dev = ["pytest"] tests = ["pytest"] +[[package]] +name = "httpcore" +version = "1.0.2" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.2-py3-none-any.whl", hash = "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7"}, + {file = "httpcore-1.0.2.tar.gz", hash = "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.23.0)"] + +[[package]] +name = "httpx" +version = "0.26.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"}, + {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + [[package]] name = "idna" version = "3.6" @@ -931,15 +1231,26 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "installer" +version = "0.7.0" +description = "A library for installing Python wheels." +optional = false +python-versions = ">=3.7" +files = [ + {file = "installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53"}, + {file = "installer-0.7.0.tar.gz", hash = "sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"}, +] + [[package]] name = "ipykernel" -version = "6.29.0" +version = "6.29.2" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.0-py3-none-any.whl", hash = "sha256:076663ca68492576f051e4af7720d33f34383e655f2be0d544c8b1c9de915b2f"}, - {file = "ipykernel-6.29.0.tar.gz", hash = "sha256:b5dd3013cab7b330df712891c96cd1ab868c27a7159e606f762015e9bf8ceb3f"}, + {file = "ipykernel-6.29.2-py3-none-any.whl", hash = "sha256:50384f5c577a260a1d53f1f59a828c7266d321c9b7d00d345693783f66616055"}, + {file = "ipykernel-6.29.2.tar.gz", hash = "sha256:3bade28004e3ff624ed57974948116670604ac5f676d12339693f3142176d3f0"}, ] [package.dependencies] @@ -962,7 +1273,7 @@ cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.2)", "pytest-cov", "pytest-timeout"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.4)", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" @@ -1005,21 +1316,21 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa [[package]] name = "ipywidgets" -version = "8.1.1" +version = "8.1.2" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, - {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, + {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, + {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.9,<3.1.0" +jupyterlab-widgets = ">=3.0.10,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.9,<4.1.0" +widgetsnbextension = ">=4.0.10,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1052,6 +1363,24 @@ files = [ [package.extras] colors = ["colorama (>=0.4.6)"] +[[package]] +name = "jaraco-classes" +version = "3.3.1" +description = "Utility functions for Python class constructs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.classes-3.3.1-py3-none-any.whl", hash = "sha256:86b534de565381f6b3c1c830d13f931d7be1a75f0081c57dff615578676e2206"}, + {file = "jaraco.classes-3.3.1.tar.gz", hash = "sha256:cb28a5ebda8bc47d8c8015307d93163464f9f2b91ab4006e09ff0ce07e8bfb30"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + [[package]] name = "jedi" version = "0.19.1" @@ -1071,6 +1400,21 @@ docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alab qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +[[package]] +name = "jeepney" +version = "0.8.0" +description = "Low-level, pure Python DBus protocol wrapper." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, + {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, +] + +[package.extras] +test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"] +trio = ["async_generator", "trio"] + [[package]] name = "jinja2" version = "3.1.3" @@ -1324,13 +1668,13 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc [[package]] name = "jupyter-server-terminals" -version = "0.5.1" +version = "0.5.2" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server_terminals-0.5.1-py3-none-any.whl", hash = "sha256:5e63e947ddd97bb2832db5ef837a258d9ccd4192cd608c1270850ad947ae5dd7"}, - {file = "jupyter_server_terminals-0.5.1.tar.gz", hash = "sha256:16d3be9cf48be6a1f943f3a6c93c033be259cf4779184c66421709cf63dccfea"}, + {file = "jupyter_server_terminals-0.5.2-py3-none-any.whl", hash = "sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80"}, + {file = "jupyter_server_terminals-0.5.2.tar.gz", hash = "sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8"}, ] [package.dependencies] @@ -1343,17 +1687,18 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.0.11" +version = "4.1.1" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.0.11-py3-none-any.whl", hash = "sha256:536bf0e78723153a5016ca7efb88ed0ecd7070d3f1555d5b0e2770658f900a3c"}, - {file = "jupyterlab-4.0.11.tar.gz", hash = "sha256:d1aec24712566bc25a36229788242778e498ca4088028e2f9aa156b8b7fdc8fc"}, + {file = "jupyterlab-4.1.1-py3-none-any.whl", hash = "sha256:fa3e8c18b804eac04e51ceebd9dd3dd396e08106816f0d09cc426799d7087632"}, + {file = "jupyterlab-4.1.1.tar.gz", hash = "sha256:8acc9f561729d8f32c14c294c397917cddfeeb13a5d46f811979b71b4911a9fd"}, ] [package.dependencies] async-lru = ">=1.0.0" +httpx = ">=0.25.0" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""} ipykernel = "*" @@ -1369,9 +1714,9 @@ tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.1.6)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] [[package]] @@ -1413,13 +1758,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.9" +version = "3.0.10" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, - {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, + {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, + {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, ] [[package]] @@ -1437,6 +1782,30 @@ files = [ {file = "kaleido-0.2.1-py2.py3-none-win_amd64.whl", hash = "sha256:4670985f28913c2d063c5734d125ecc28e40810141bdb0a46f15b76c1d45f23c"}, ] +[[package]] +name = "keyring" +version = "24.3.0" +description = "Store and access your passwords safely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "keyring-24.3.0-py3-none-any.whl", hash = "sha256:4446d35d636e6a10b8bce7caa66913dd9eca5fd222ca03a3d42c38608ac30836"}, + {file = "keyring-24.3.0.tar.gz", hash = "sha256:e730ecffd309658a08ee82535a3b5ec4b4c8669a9be11efb66249d8e0aeb9a25"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} +importlib-resources = {version = "*", markers = "python_version < \"3.9\""} +"jaraco.classes" = "*" +jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} +pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} +SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} + +[package.extras] +completion = ["shtab (>=1.1.0)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + [[package]] name = "kiwisolver" version = "1.4.5" @@ -1598,71 +1967,71 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1769,6 +2138,82 @@ files = [ {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, ] +[[package]] +name = "more-itertools" +version = "10.2.0" +description = "More routines for operating on iterables, beyond itertools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"}, + {file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684"}, +] + +[[package]] +name = "msgpack" +version = "1.0.7" +description = "MessagePack serializer" +optional = false +python-versions = ">=3.8" +files = [ + {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862"}, + {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329"}, + {file = "msgpack-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681"}, + {file = "msgpack-1.0.7-cp310-cp310-win32.whl", hash = "sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9"}, + {file = "msgpack-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e"}, + {file = "msgpack-1.0.7-cp311-cp311-win32.whl", hash = "sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1"}, + {file = "msgpack-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"}, + {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"}, + {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c"}, + {file = "msgpack-1.0.7-cp38-cp38-win32.whl", hash = "sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2"}, + {file = "msgpack-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f"}, + {file = "msgpack-1.0.7-cp39-cp39-win32.whl", hash = "sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad"}, + {file = "msgpack-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3"}, + {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"}, +] + [[package]] name = "nbclient" version = "0.9.0" @@ -1793,13 +2238,13 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.14.2" +version = "7.16.0" description = "Converting Jupyter Notebooks" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.14.2-py3-none-any.whl", hash = "sha256:db28590cef90f7faf2ebbc71acd402cbecf13d29176df728c0a9025a49345ea1"}, - {file = "nbconvert-7.14.2.tar.gz", hash = "sha256:a7f8808fd4e082431673ac538400218dd45efd076fbeb07cc6e5aa5a3a4e949e"}, + {file = "nbconvert-7.16.0-py3-none-any.whl", hash = "sha256:ad3dc865ea6e2768d31b7eb6c7ab3be014927216a5ece3ef276748dd809054c7"}, + {file = "nbconvert-7.16.0.tar.gz", hash = "sha256:813e6553796362489ae572e39ba1bff978536192fb518e10826b0e8cadf03ec8"}, ] [package.dependencies] @@ -1886,63 +2331,91 @@ sphinx = ">=1.8" [[package]] name = "ncompress" -version = "1.0.1" +version = "1.0.2" description = "LZW compression and decompression" optional = false python-versions = ">=3.8" files = [ - {file = "ncompress-1.0.1-cp310-cp310-macosx_10_14_universal2.whl", hash = "sha256:487f680e369ef2f7cdf26f888dd83dc2bdf36c5764d7be204300db2a8e176e50"}, - {file = "ncompress-1.0.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ac44c41811b5c1105974f92858cf607de7cd2a9a57ad2e511c603fc90d4dd034"}, - {file = "ncompress-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e37c183901042dbb29f9d24ce5a1239e9c57afdb9eb1a6a9deb5e036cca7149d"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723308a5782bed3ddcfba9e0c3ce6aecfad01e3d7644b44995e2cecc7317685f"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ae50e6e7f15aad30cd73d9261742e683fb660e9598564b14f05fe87e026e65"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85feb2f4ea85ac8ac9708c9a912e93f75e899d88eab2af6e89aae7a79120e105"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7eb3eb16d26acc64e3175e8aec9dc102fe3355e45a701bf8c273c9d9af55b2d0"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:497be1959fa0c0c4249f546c059ee0a98e4f86d2bafe846a69acdbcd3bab849b"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:cfba2d01010ee437425c0dd029e27429a6595e3e9447750b5821cb1908d347dc"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:062d8fb3ea0534a96de052eb68343da831c88a607685a87b0dc144ad1466e9ff"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:13a719822859605a798cf96e678b31e1dd66541369be48cc3ef544f2c6e14f08"}, - {file = "ncompress-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:7719b8659a9f61b3cfacbbd9c1bb07a3656945aed0bf2c73e34cd1122edc9ff2"}, - {file = "ncompress-1.0.1-cp310-cp310-win_arm64.whl", hash = "sha256:62a95f693d6964d1b25110afa7b2111a6a471c62727b5efa2e3a8e5e3c5922ff"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:a94fc9e3e047199c29ada85fa3104de6a7b486859337a05259b8ae24c1686e29"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:938eee75b6084e5fb3cf4fb6a79ba86fb261cade319639893f369401c53687e4"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:016a3c60f6a25c50323cbcf4faf7c6ccd1992468eb6c6348a9d164cca3b53083"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f49a6aa4e1757a0963bbadea6219c0369afb07265ace6e5c4201c974f5e271a3"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8101d647f5334c4afb2a11e0c18602a9bdddb4260ee0a4f8ec6241930c89124d"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39ced149de176fda05198e4d0ede9d88bb2a4b717f559b4826a169dd61ab41d9"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f7c85fb141308e806fecc47791aaa5d03efd05f2b6d0d9bdf0f7ce021f60799"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c242d28f5679319733cf0f9a5342c3a94161214fb6ab4ef0fb15a31c65d69114"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:149464d41c24fa66e1497b8e2b460f312dbe017624b46af1514bf0276485a99f"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ba638721c66c1946c32bbb86e9413c8a101b0db09c82afe96dfe1a2201783cab"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a9345d3825776440bba31b1998bd11a377e3eb98bb79377ae91739b5e7464c1c"}, - {file = "ncompress-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:0459002f93a2ed501fc76b6cd8806216f242cd86f11dac6df88932214345dd42"}, - {file = "ncompress-1.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:2039fd029b0c7b7bec320ab5450cdc93ef786bad9ba7a87162aa2892dd7156f9"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:cd1d7c3458f4c345dc47ede17e7777b1a7d6a26f18d08962b0a0804b142fdc1e"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:213eedd6cf7bf550cce2ff6e72791c8343396d169a248d1b422b17f68cd387ed"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:068bb0356d74afcf8f38b231e76773116e7346c76a6face3e25ec7cec4d60795"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87ea419d904f44833620a14a9815d3aaa70e4b9739a743953c963a56be64d711"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:df2afc9e5ac6a72bed94fd75967cdacf826d94b7b29fe841210fefb1a7c6a6bb"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bcb8f79fcaba867768178b98e25106c63a79f077f1ea22ec59e7945236a8ab7"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73a1025f501ea3d0b729da59f557ab67f6533a97ebe0082fd762018132cf92a7"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbf462b9cc620b56bf824aa20aa9d75de04444d1e43f1b228037d1ecf01ce6be"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:2df08321ed9c8d0bbba34b2859b8a5a2833a3a315f131b81603eb1dc7423c0ba"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:95a846e1704852c95c7ec347f09fc4bea3dfd3581020e3c694a1081a8fcd3ea1"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3c48aac59135cd521ba7a8ee0f6dd9d03946a3f2d2e02d4534dabe7423fd3420"}, - {file = "ncompress-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:47ade5c18733da749ba7371ac27e68ba806d67d430e5eb37c48bf338bb975382"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:29e7fce7e246de8871dc94349a1abf21da675e249acdaac76d95601a7c3da928"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c34316051bfc1305b3f51bf03cb78e115d23b153a34d8a1a9d04459e42857f84"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7c19380caa250289260576ca5c29558ed00f516ba9844283d6c9a5b7e6a0475f"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8207723ff3ba3f27a4bdb7632d5be05a6de5e0e163c4495dd66856d713f96dec"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8308fb769bb5eb063badd92904f4abe8c0f1c023d71a7cda168a033cbcc60c88"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d26a0b26e958ea7ffbc41fa6fdfa9e8f1c72b45134ca0ad198ea3f61701ba0b4"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ce207383fa1c1fb47320f3fb593a360ad30cc04b5ffcd868c020210eb57b798"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c62cd047119d897b789955b082c9da76efae5b47f84b0ebe68fbe9e37f932f7b"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:64bf39b339350f099811ab8eaf7a8aece5629a4555838c9744c81cdc39a1ad15"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:4a707c302c008498afd23959ba6d64b7e4aa3a292d78e10dbb5c35f80b57ad64"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4abc4469666f6cf7f7e27fc8c1e629088c075ef5dfb22ad55cb80a193d745fdc"}, - {file = "ncompress-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:a1f9b16445da8af82073b5e7a9b33c024bd4299bfecfba1da636d32da5c9c399"}, - {file = "ncompress-1.0.1-cp39-cp39-win_arm64.whl", hash = "sha256:7be5cca28b1a7c8df5d989d90c80d316b486bc8d32c67aec2029b27b9589c5df"}, - {file = "ncompress-1.0.1.tar.gz", hash = "sha256:a27a54b572da8f14ac0c0689660f13cddb02a2822b03048d3c2ce3d28fb11027"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_10_14_universal2.whl", hash = "sha256:e18e2e40563e6fc8e795d7afbe72cdf7cea830c673570c3e2cc07b0c0e35c558"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:aafc0be770c3b6342fd105ccfd1c39921da5936e05c64b8aa7b3d98221ad683e"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a61a6eccf8a0d307b567ca15ffef760ff7454ac272bfc6cce6dd5493cd114aa"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f15fdb076704a21d0242e3670a8bcec391bbdf2d6796f3c46750715cc10a6bc"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b520a5b1eeb9d8934a5f8329364a233aad72fda34b69acf4fbba70b2efda6657"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9360d54280e6a212ad519544aa9b4499e501adedb684ed52b1edc56b3abd4b4"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98990972a18eb29b55ae75a66b8eab600f6a94c110f6976eb978702d815c6faa"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2962d61411636f48abc8953237ccd0af1c4bccfcbe5792c42eb41d2156a9db75"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1cb63471fdc7924b269ea7347818fc581c8a7a7810d384c3c22570478c756590"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1b978bd3bd30da19d067f9986307a344707fe6be27dee210f4f9e6a20680b642"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:862daff392f6bd14322d8d78bc7c55f83458a0b58d33cd36af00e670371387d2"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:3d6c840203dfbe9adfc6126d3c616abd01d99c6428e95724baa572cf9b2b7129"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e9df1e1934364193bb6d4a053da4d78660564ca5a364521cf47f124c12265028"}, + {file = "ncompress-1.0.2-cp310-cp310-win32.whl", hash = "sha256:19053bde96816ee7970f6d2a28c1f56eb710411116f2142be13075c92314dbf8"}, + {file = "ncompress-1.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:d0cded4e915b66455d7f6f978e7e990f0636921916c31f42f733f0717a1dfd5e"}, + {file = "ncompress-1.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:ded21622cf72bb22e99dec778e4852ab2648ad298d1a6fe2f5984d8deca00f99"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:21751456f452f0a1df2326967c8deb77438f5d353f904e240ed1c4f56efc31c9"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:24c9f25e86e3b5a831eaedcc92b17a2f9d9cadeaf80d5f2b60996fd43ab001e6"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:998b0101108ece32a2a902b3ab458f95f83a4af7429caf19b957af31d5f8cc98"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e034d80a05ed10afafdb1503e2b1c73c32ee7239b83acf0ee4de2389fc750ca"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2bbdd9849714b5c137f46b702bd663d05018053eb42a187a55d4e566fd1e628"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3c93ae4759faabea5c8e29aa224a9cc17d5a6d06f83fb2d13a5f7b61c5b272e"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ad572af4c23696564a217a8845064cb63cc5b87db24d03f42b8e54537313a62"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8300f7b238c0b792e6d028a01bae3ebdd1ded26b5fc3b6c04723c05341231743"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:44f0f6f26f734457e2fdfb6aaf3cd95bd98871136b9c53ea9b328d9bf079c4be"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ffd667ad02db9cd088c889a02496c43769b02a9c56d78d6353549eca2c8f9e12"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c775f706953367867786ae0ffbc9f4862e3be7119d392a7414368ba6be0c1ed3"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:894cc4d0096ea8c2e8ecc33ee490f3b623d3c00a3737662d0d85d9167a11f127"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32a04536969a76c665a7dceb5ad586d0ef39e45e6c3b216e474f49231cc498ce"}, + {file = "ncompress-1.0.2-cp311-cp311-win32.whl", hash = "sha256:d5f21f16252e9933e2710c1564b16cd1b65ca30fc2fa5b8fec4a9a15a7465cda"}, + {file = "ncompress-1.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:0a932439964538d9d9e27575873ff2eaed43a142eed1aad1d157e6c0b50f234c"}, + {file = "ncompress-1.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:eb93a9fe061abd090cc5f6a1132c6e97f7403f5c2a60dad63b787d37ad519912"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_10_14_universal2.whl", hash = "sha256:35e4b03a1dbc23193f7ae5276d470b33579f8d80de4dad406de4ee910fe0fc1e"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_10_14_x86_64.whl", hash = "sha256:0edfb1b1e67a13d102a41f1f689d12b0be6f6ef65fdf5b870d21f880bcdfae64"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_11_0_arm64.whl", hash = "sha256:0ca45c08d9118b82d1fd1e872e986bb0a7e9dd35671ff0017910a962d2ec2de4"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4d5a84eacf064df113553f970c8cafda732ef7cc7c67c5059cd52a05310dfe3"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6bf1babd0fff072489b5c0612b5297a5eb9235d93a5421f231f62e885b8df79"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea3c76100c539e5cfa59760f3dd055aef00ea79d904a8b081227301b0128e7e0"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5552078672e82ccfff6817edfa4597db8f6a97dbac421c3640693c5f6a9213c1"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fc5f625eba6ecf9f90383134225562a271db6bc3448b1d70141b13e4d5eafcf"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:801b4c78dcd7f065e29f0fc05e3c3e949971c74031d3bc3df972ea40b3b58238"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_i686.whl", hash = "sha256:011728ef586d91ded2908b8a895cb9eb5157a02f145d23e06b9037a7c742549a"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_ppc64le.whl", hash = "sha256:dbd70466b4529483d2ebc2916d4d72a91741d506c83988aac2479412e8c9d1a2"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_s390x.whl", hash = "sha256:9df921844cf442962f41f133ca245c3a20daabb029dba192086f1bb0aad5a25c"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:4776cc397e06cb332a7bf78f654ef43321c00a551df7e2c679b35a311e9fa8d4"}, + {file = "ncompress-1.0.2-cp312-abi3-win32.whl", hash = "sha256:4b703a75f75ae37b98fdac4a6228ed97e1614bd5745fae49e7e8e0d25f584561"}, + {file = "ncompress-1.0.2-cp312-abi3-win_amd64.whl", hash = "sha256:672f7166abf634df43a592ec2d1053c991057a1f7020d55288fa03ab60ebae98"}, + {file = "ncompress-1.0.2-cp312-abi3-win_arm64.whl", hash = "sha256:01523a89cfae13c58bf23e31a4baf8bf6c3537917781bfc2e42a663eb192dde1"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:2bcc4a05a6aa2b3e7f6cffa315c88902c0a08a32a763d89c26c5b71e60d4cca9"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b20b5cf5cde335146ee552585e1103e9752ff51ed4b1d065a27ab3d67787feb7"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c99d38e3fa3386c2deaa630a06363f2b24f0610d469287245702e8642829f71"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffe6fab5414a07eaeeb8565eea57ebea39eb9fe465659246537dc9fef233481b"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4d3dfc4aecd5e26c04a148a73f4ce0f2e1301ed7ca8aed3644a953e2c00278a"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aae4fe252f24025b49a10537acd9b78d2fe37659f5977473fe833b1686893483"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f24f0792633d491d51d6bea4581645127c354a599327b7408e3633d3081409"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b4cdb81c86e16e7d64a6c170f02fd5c3ebeb569f94913f568b6be4d337fea16"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5e01c106bdd12db0ee4af768de1664f17cad0782a9f3e49fbd53a9b92ebe8c9d"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8de48ec81c877aa97e3579c37bb9b504639c96f86f09c4ffcf660e5859fcc0b2"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4b6618fa2ded61001c28c8c6cb7f6237f8a662db3efd85cd8df7b1297b5c1631"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:daf100d83837ec2732637e29f58c2b1bac7ea5affa8f5f2974646bf67a5d47ef"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ab3fafd6b0c3e1cee1b25c5d9e68eeeb5dfefe683a659ec0b2e06d1f7b121149"}, + {file = "ncompress-1.0.2-cp38-cp38-win32.whl", hash = "sha256:c6c59c91a630b559519e076d8f1efe79a51aef65c57cc2ae830ebbc4b72b0c27"}, + {file = "ncompress-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8343f534742269dd637ead71c29cbf628bbc203fdf533f5d73fd1c96091634b3"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:1aab57376dd029a7d9de43f109e10976544a0baafa47857b77bb0ecd66ef34d9"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c00199a64bbaa521e18281950a3ef4bd3c0913c468a4bbe8fa37625368bca7f4"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:88d6b324982ca32356c292af0a4166e4ffdbf1409a339c9c0919c58e1eda8b4a"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d31c79b04044a2c321f4500dce2f492cd1d7acb14bf028fb62756f9d83d0f870"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a09cbf49640f8f28992218c6c906d4a7400518083727eb5009882b4354e8f7"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aed345bbc277413959eb9708982307d66447d9842a939973d8becad3e8787c38"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d9eaa363d1914d9feff434b4336fbdfc516d5e0d8e1dc05755db4fbb7610e8c2"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29ae7cf915e2edb064d00cf5e8b0bda761905c4563628d3df1dee6176cabbcc9"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5cced527f2c3e8a23b6a12b3d1fe2bd2ca99157e29a3d2f98f5ba6d5c9bddd48"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1832bff2d6a5686778e4a878b6faad2921334605703f390f7d98fff32d702607"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6b089e663632b46c663fed71a12e6884ef24adcbe80affb5eb16578dedb4e152"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:2a190272cc3ccdbbdd7b031d4b82096fc51d4a1e85976e2c4cdb21606224e758"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5696d8380d3db080b97704a6172ce5ebfcfa7b206ce5b0ef8edb8aef640e9816"}, + {file = "ncompress-1.0.2-cp39-cp39-win32.whl", hash = "sha256:ec8832225817d6fd7ffa1fca93f58ab28271af352bf1ccaeddc6503e07c47bea"}, + {file = "ncompress-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a1df222c0f779c7d64a16d91d1b6348d76c01092c883477f0f2b6cbc1cc58ca2"}, + {file = "ncompress-1.0.2-cp39-cp39-win_arm64.whl", hash = "sha256:16a3e4446645e99d1108187b25f9ccc9a7aa674248da39221989576d4680624c"}, + {file = "ncompress-1.0.2.tar.gz", hash = "sha256:ce32a3ea889878680c209d431cbc2c004d7a0c597f127ead22b9e304b37d41ed"}, ] [package.extras] @@ -1950,29 +2423,29 @@ tests = ["pytest"] [[package]] name = "nest-asyncio" -version = "1.5.9" +version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" files = [ - {file = "nest_asyncio-1.5.9-py3-none-any.whl", hash = "sha256:61ec07ef052e72e3de22045b81b2cc7d71fceb04c568ba0b2e4b2f9f5231bec2"}, - {file = "nest_asyncio-1.5.9.tar.gz", hash = "sha256:d1e1144e9c6e3e6392e0fcf5211cb1c8374b5648a98f1ebe48e5336006b41907"}, + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, ] [[package]] name = "notebook" -version = "7.0.7" +version = "7.1.0" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.0.7-py3-none-any.whl", hash = "sha256:289b606d7e173f75a18beb1406ef411b43f97f7a9c55ba03efa3622905a62346"}, - {file = "notebook-7.0.7.tar.gz", hash = "sha256:3bcff00c17b3ac142ef5f436d50637d936b274cfa0b41f6ac0175363de9b4e09"}, + {file = "notebook-7.1.0-py3-none-any.whl", hash = "sha256:a8fa4ccb5e5fe220f29d9900337efd7752bc6f2efe004d6f320db01f7743adc9"}, + {file = "notebook-7.1.0.tar.gz", hash = "sha256:99caf01ff166b1cc86355c9b37c1ba9bf566c1d7fc4ab57bb6f8f24e36c4260e"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.0.2,<5" +jupyterlab = ">=4.1.1,<4.2" jupyterlab-server = ">=2.22.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" @@ -2038,13 +2511,13 @@ files = [ [[package]] name = "overrides" -version = "7.4.0" +version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" files = [ - {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, - {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, ] [[package]] @@ -2261,6 +2734,20 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa typing = ["typing-extensions"] xmp = ["defusedxml"] +[[package]] +name = "pkginfo" +version = "1.9.6" +description = "Query metadata from sdists / bdists / installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "pkginfo-1.9.6-py3-none-any.whl", hash = "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546"}, + {file = "pkginfo-1.9.6.tar.gz", hash = "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046"}, +] + +[package.extras] +testing = ["pytest", "pytest-cov"] + [[package]] name = "pkgutil-resolve-name" version = "1.3.10" @@ -2274,13 +2761,13 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" +version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, ] [package.extras] @@ -2304,13 +2791,13 @@ tenacity = ">=6.2.0" [[package]] name = "pluggy" -version = "1.3.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] [package.extras] @@ -2331,6 +2818,69 @@ files = [ [package.dependencies] six = ">=1.5.2" +[[package]] +name = "poetry" +version = "1.7.1" +description = "Python dependency management and packaging made easy." +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "poetry-1.7.1-py3-none-any.whl", hash = "sha256:03d3807a0fb3bc1028cc3707dfd646aae629d58e476f7e7f062437680741c561"}, + {file = "poetry-1.7.1.tar.gz", hash = "sha256:b348a70e7d67ad9c0bd3d0ea255bc6df84c24cf4b16f8d104adb30b425d6ff32"}, +] + +[package.dependencies] +build = ">=1.0.3,<2.0.0" +cachecontrol = {version = ">=0.13.0,<0.14.0", extras = ["filecache"]} +cleo = ">=2.1.0,<3.0.0" +crashtest = ">=0.4.1,<0.5.0" +dulwich = ">=0.21.2,<0.22.0" +fastjsonschema = ">=2.18.0,<3.0.0" +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} +installer = ">=0.7.0,<0.8.0" +keyring = ">=24.0.0,<25.0.0" +packaging = ">=20.5" +pexpect = ">=4.7.0,<5.0.0" +pkginfo = ">=1.9.4,<2.0.0" +platformdirs = ">=3.0.0,<4.0.0" +poetry-core = "1.8.1" +poetry-plugin-export = ">=1.6.0,<2.0.0" +pyproject-hooks = ">=1.0.0,<2.0.0" +requests = ">=2.26,<3.0" +requests-toolbelt = ">=0.9.1,<2" +shellingham = ">=1.5,<2.0" +tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.11.4,<1.0.0" +trove-classifiers = ">=2022.5.19" +virtualenv = ">=20.23.0,<21.0.0" +xattr = {version = ">=0.10.0,<0.11.0", markers = "sys_platform == \"darwin\""} + +[[package]] +name = "poetry-core" +version = "1.8.1" +description = "Poetry PEP 517 Build Backend" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "poetry_core-1.8.1-py3-none-any.whl", hash = "sha256:194832b24f3283e01c5402eae71a6aae850ecdfe53f50a979c76bf7aa5010ffa"}, + {file = "poetry_core-1.8.1.tar.gz", hash = "sha256:67a76c671da2a70e55047cddda83566035b701f7e463b32a2abfeac6e2a16376"}, +] + +[[package]] +name = "poetry-plugin-export" +version = "1.6.0" +description = "Poetry plugin to export the dependencies to various formats" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "poetry_plugin_export-1.6.0-py3-none-any.whl", hash = "sha256:2dce6204c9318f1f6509a11a03921fb3f461b201840b59f1c237b6ab454dabcf"}, + {file = "poetry_plugin_export-1.6.0.tar.gz", hash = "sha256:091939434984267a91abf2f916a26b00cff4eee8da63ec2a24ba4b17cf969a59"}, +] + +[package.dependencies] +poetry = ">=1.6.0,<2.0.0" +poetry-core = ">=1.7.0,<2.0.0" + [[package]] name = "prometheus-client" version = "0.19.0" @@ -2503,15 +3053,29 @@ files = [ [package.extras] diagrams = ["jinja2", "railroad-diagrams"] +[[package]] +name = "pyproject-hooks" +version = "1.0.0" +description = "Wrappers to call pyproject.toml-based build backend hooks." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyproject_hooks-1.0.0-py3-none-any.whl", hash = "sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8"}, + {file = "pyproject_hooks-1.0.0.tar.gz", hash = "sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"}, +] + +[package.dependencies] +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + [[package]] name = "pytest" -version = "7.4.4" +version = "8.0.0" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"}, + {file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"}, ] [package.dependencies] @@ -2519,7 +3083,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.3.0,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] @@ -2584,13 +3148,13 @@ files = [ [[package]] name = "pytz" -version = "2023.3.post1" +version = "2024.1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] @@ -2616,6 +3180,17 @@ files = [ {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, ] +[[package]] +name = "pywin32-ctypes" +version = "0.2.2" +description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, + {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, +] + [[package]] name = "pywinpty" version = "2.0.12" @@ -2838,15 +3413,117 @@ packaging = "*" [package.extras] test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] +[[package]] +name = "rapidfuzz" +version = "3.6.1" +description = "rapid fuzzy string matching" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ac434fc71edda30d45db4a92ba5e7a42c7405e1a54cb4ec01d03cc668c6dcd40"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a791168e119cfddf4b5a40470620c872812042f0621e6a293983a2d52372db0"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a2f3e9df346145c2be94e4d9eeffb82fab0cbfee85bd4a06810e834fe7c03fa"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23de71e7f05518b0bbeef55d67b5dbce3bcd3e2c81e7e533051a2e9401354eb0"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d056e342989248d2bdd67f1955bb7c3b0ecfa239d8f67a8dfe6477b30872c607"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01835d02acd5d95c1071e1da1bb27fe213c84a013b899aba96380ca9962364bc"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed0f712e0bb5fea327e92aec8a937afd07ba8de4c529735d82e4c4124c10d5a0"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96cd19934f76a1264e8ecfed9d9f5291fde04ecb667faef5f33bdbfd95fe2d1f"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e06c4242a1354cf9d48ee01f6f4e6e19c511d50bb1e8d7d20bcadbb83a2aea90"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d73dcfe789d37c6c8b108bf1e203e027714a239e50ad55572ced3c004424ed3b"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:06e98ff000e2619e7cfe552d086815671ed09b6899408c2c1b5103658261f6f3"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:08b6fb47dd889c69fbc0b915d782aaed43e025df6979b6b7f92084ba55edd526"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a1788ebb5f5b655a15777e654ea433d198f593230277e74d51a2a1e29a986283"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c65f92881753aa1098c77818e2b04a95048f30edbe9c3094dc3707d67df4598b"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:4243a9c35667a349788461aae6471efde8d8800175b7db5148a6ab929628047f"}, + {file = "rapidfuzz-3.6.1-cp310-cp310-win_arm64.whl", hash = "sha256:f59d19078cc332dbdf3b7b210852ba1f5db8c0a2cd8cc4c0ed84cc00c76e6802"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fbc07e2e4ac696497c5f66ec35c21ddab3fc7a406640bffed64c26ab2f7ce6d6"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cced1a8852652813f30fb5d4b8f9b237112a0bbaeebb0f4cc3611502556764"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82300e5f8945d601c2daaaac139d5524d7c1fdf719aa799a9439927739917460"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf97c321fd641fea2793abce0e48fa4f91f3c202092672f8b5b4e781960b891"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7420e801b00dee4a344ae2ee10e837d603461eb180e41d063699fb7efe08faf0"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060bd7277dc794279fa95522af355034a29c90b42adcb7aa1da358fc839cdb11"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7e3375e4f2bfec77f907680328e4cd16cc64e137c84b1886d547ab340ba6928"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a490cd645ef9d8524090551016f05f052e416c8adb2d8b85d35c9baa9d0428ab"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2e03038bfa66d2d7cffa05d81c2f18fd6acbb25e7e3c068d52bb7469e07ff382"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:2b19795b26b979c845dba407fe79d66975d520947b74a8ab6cee1d22686f7967"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:064c1d66c40b3a0f488db1f319a6e75616b2e5fe5430a59f93a9a5e40a656d15"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3c772d04fb0ebeece3109d91f6122b1503023086a9591a0b63d6ee7326bd73d9"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:841eafba6913c4dfd53045835545ba01a41e9644e60920c65b89c8f7e60c00a9"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-win32.whl", hash = "sha256:266dd630f12696ea7119f31d8b8e4959ef45ee2cbedae54417d71ae6f47b9848"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:d79aec8aeee02ab55d0ddb33cea3ecd7b69813a48e423c966a26d7aab025cdfe"}, + {file = "rapidfuzz-3.6.1-cp311-cp311-win_arm64.whl", hash = "sha256:484759b5dbc5559e76fefaa9170147d1254468f555fd9649aea3bad46162a88b"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b2ef4c0fd3256e357b70591ffb9e8ed1d439fb1f481ba03016e751a55261d7c1"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:588c4b20fa2fae79d60a4e438cf7133d6773915df3cc0a7f1351da19eb90f720"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7142ee354e9c06e29a2636b9bbcb592bb00600a88f02aa5e70e4f230347b373e"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1dfc557c0454ad22382373ec1b7df530b4bbd974335efe97a04caec936f2956a"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03f73b381bdeccb331a12c3c60f1e41943931461cdb52987f2ecf46bfc22f50d"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b0ccc2ec1781c7e5370d96aef0573dd1f97335343e4982bdb3a44c133e27786"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da3e8c9f7e64bb17faefda085ff6862ecb3ad8b79b0f618a6cf4452028aa2222"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fde9b14302a31af7bdafbf5cfbb100201ba21519be2b9dedcf4f1048e4fbe65d"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1a23eee225dfb21c07f25c9fcf23eb055d0056b48e740fe241cbb4b22284379"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e49b9575d16c56c696bc7b06a06bf0c3d4ef01e89137b3ddd4e2ce709af9fe06"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:0a9fc714b8c290261669f22808913aad49553b686115ad0ee999d1cb3df0cd66"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:a3ee4f8f076aa92184e80308fc1a079ac356b99c39408fa422bbd00145be9854"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f056ba42fd2f32e06b2c2ba2443594873cfccc0c90c8b6327904fc2ddf6d5799"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-win32.whl", hash = "sha256:5d82b9651e3d34b23e4e8e201ecd3477c2baa17b638979deeabbb585bcb8ba74"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:dad55a514868dae4543ca48c4e1fc0fac704ead038dafedf8f1fc0cc263746c1"}, + {file = "rapidfuzz-3.6.1-cp312-cp312-win_arm64.whl", hash = "sha256:3c84294f4470fcabd7830795d754d808133329e0a81d62fcc2e65886164be83b"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e19d519386e9db4a5335a4b29f25b8183a1c3f78cecb4c9c3112e7f86470e37f"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01eb03cd880a294d1bf1a583fdd00b87169b9cc9c9f52587411506658c864d73"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:be368573255f8fbb0125a78330a1a40c65e9ba3c5ad129a426ff4289099bfb41"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3e5af946f419c30f5cb98b69d40997fe8580efe78fc83c2f0f25b60d0e56efb"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f382f7ffe384ce34345e1c0b2065451267d3453cadde78946fbd99a59f0cc23c"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be156f51f3a4f369e758505ed4ae64ea88900dcb2f89d5aabb5752676d3f3d7e"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1936d134b6c513fbe934aeb668b0fee1ffd4729a3c9d8d373f3e404fbb0ce8a0"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ff8eaf4a9399eb2bebd838f16e2d1ded0955230283b07376d68947bbc2d33d"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae598a172e3a95df3383634589660d6b170cc1336fe7578115c584a99e0ba64d"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cd4ba4c18b149da11e7f1b3584813159f189dc20833709de5f3df8b1342a9759"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:0402f1629e91a4b2e4aee68043a30191e5e1b7cd2aa8dacf50b1a1bcf6b7d3ab"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:1e12319c6b304cd4c32d5db00b7a1e36bdc66179c44c5707f6faa5a889a317c0"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0bbfae35ce4de4c574b386c43c78a0be176eeddfdae148cb2136f4605bebab89"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-win32.whl", hash = "sha256:7fec74c234d3097612ea80f2a80c60720eec34947066d33d34dc07a3092e8105"}, + {file = "rapidfuzz-3.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:a553cc1a80d97459d587529cc43a4c7c5ecf835f572b671107692fe9eddf3e24"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:757dfd7392ec6346bd004f8826afb3bf01d18a723c97cbe9958c733ab1a51791"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2963f4a3f763870a16ee076796be31a4a0958fbae133dbc43fc55c3968564cf5"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d2f0274595cc5b2b929c80d4e71b35041104b577e118cf789b3fe0a77b37a4c5"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f211e366e026de110a4246801d43a907cd1a10948082f47e8a4e6da76fef52"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a59472b43879012b90989603aa5a6937a869a72723b1bf2ff1a0d1edee2cc8e6"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a03863714fa6936f90caa7b4b50ea59ea32bb498cc91f74dc25485b3f8fccfe9"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd95b6b7bfb1584f806db89e1e0c8dbb9d25a30a4683880c195cc7f197eaf0c"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7183157edf0c982c0b8592686535c8b3e107f13904b36d85219c77be5cefd0d8"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ad9d74ef7c619b5b0577e909582a1928d93e07d271af18ba43e428dc3512c2a1"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b53137d81e770c82189e07a8f32722d9e4260f13a0aec9914029206ead38cac3"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:49b9ed2472394d306d5dc967a7de48b0aab599016aa4477127b20c2ed982dbf9"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:dec307b57ec2d5054d77d03ee4f654afcd2c18aee00c48014cb70bfed79597d6"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4381023fa1ff32fd5076f5d8321249a9aa62128eb3f21d7ee6a55373e672b261"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-win32.whl", hash = "sha256:8d7a072f10ee57c8413c8ab9593086d42aaff6ee65df4aa6663eecdb7c398dca"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:ebcfb5bfd0a733514352cfc94224faad8791e576a80ffe2fd40b2177bf0e7198"}, + {file = "rapidfuzz-3.6.1-cp39-cp39-win_arm64.whl", hash = "sha256:1c47d592e447738744905c18dda47ed155620204714e6df20eb1941bb1ba315e"}, + {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:eef8b346ab331bec12bbc83ac75641249e6167fab3d84d8f5ca37fd8e6c7a08c"}, + {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53251e256017e2b87f7000aee0353ba42392c442ae0bafd0f6b948593d3f68c6"}, + {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dede83a6b903e3ebcd7e8137e7ff46907ce9316e9d7e7f917d7e7cdc570ee05"}, + {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e4da90e4c2b444d0a171d7444ea10152e07e95972bb40b834a13bdd6de1110c"}, + {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ca3dfcf74f2b6962f411c33dd95b0adf3901266e770da6281bc96bb5a8b20de9"}, + {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bcc957c0a8bde8007f1a8a413a632a1a409890f31f73fe764ef4eac55f59ca87"}, + {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:692c9a50bea7a8537442834f9bc6b7d29d8729a5b6379df17c31b6ab4df948c2"}, + {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c23ceaea27e790ddd35ef88b84cf9d721806ca366199a76fd47cfc0457a81b"}, + {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b155e67fff215c09f130555002e42f7517d0ea72cbd58050abb83cb7c880cec"}, + {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3028ee8ecc48250607fa8a0adce37b56275ec3b1acaccd84aee1f68487c8557b"}, + {file = "rapidfuzz-3.6.1.tar.gz", hash = "sha256:35660bee3ce1204872574fa041c7ad7ec5175b3053a4cb6e181463fc07013de7"}, +] + +[package.extras] +full = ["numpy"] + [[package]] name = "referencing" -version = "0.32.1" +version = "0.33.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.32.1-py3-none-any.whl", hash = "sha256:7e4dc12271d8e15612bfe35792f5ea1c40970dadf8624602e33db2758f7ee554"}, - {file = "referencing-0.32.1.tar.gz", hash = "sha256:3c57da0513e9563eb7e203ebe9bb3a1b509b042016433bd1e45a2853466c3dd3"}, + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, ] [package.dependencies] @@ -2874,6 +3551,20 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +description = "A utility belt for advanced users of python-requests" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, + {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, +] + +[package.dependencies] +requests = ">=2.0.1,<3.0.0" + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -2901,110 +3592,110 @@ files = [ [[package]] name = "rpds-py" -version = "0.17.1" +version = "0.18.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.17.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d"}, - {file = "rpds_py-0.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59"}, - {file = "rpds_py-0.17.1-cp310-none-win32.whl", hash = "sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d"}, - {file = "rpds_py-0.17.1-cp310-none-win_amd64.whl", hash = "sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea"}, - {file = "rpds_py-0.17.1-cp311-none-win32.whl", hash = "sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518"}, - {file = "rpds_py-0.17.1-cp311-none-win_amd64.whl", hash = "sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf"}, - {file = "rpds_py-0.17.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf"}, - {file = "rpds_py-0.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23"}, - {file = "rpds_py-0.17.1-cp312-none-win32.whl", hash = "sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1"}, - {file = "rpds_py-0.17.1-cp312-none-win_amd64.whl", hash = "sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3"}, - {file = "rpds_py-0.17.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d"}, - {file = "rpds_py-0.17.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6"}, - {file = "rpds_py-0.17.1-cp38-none-win32.whl", hash = "sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a"}, - {file = "rpds_py-0.17.1-cp38-none-win_amd64.whl", hash = "sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb"}, - {file = "rpds_py-0.17.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a"}, - {file = "rpds_py-0.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b"}, - {file = "rpds_py-0.17.1-cp39-none-win32.whl", hash = "sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f"}, - {file = "rpds_py-0.17.1-cp39-none-win_amd64.whl", hash = "sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68"}, - {file = "rpds_py-0.17.1.tar.gz", hash = "sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, + {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, + {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, + {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, + {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, ] [[package]] @@ -3045,6 +3736,21 @@ dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +[[package]] +name = "secretstorage" +version = "3.3.3" +description = "Python bindings to FreeDesktop.org Secret Service API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, + {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, +] + +[package.dependencies] +cryptography = ">=2.0" +jeepney = ">=0.6" + [[package]] name = "send2trash" version = "1.8.2" @@ -3061,6 +3767,17 @@ nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + [[package]] name = "six" version = "1.16.0" @@ -3411,13 +4128,13 @@ files = [ [[package]] name = "tqdm" -version = "4.66.1" +version = "4.66.2" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, + {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, + {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, ] [package.dependencies] @@ -3444,6 +4161,17 @@ files = [ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] +[[package]] +name = "trove-classifiers" +version = "2024.1.31" +description = "Canonical source for classifiers on PyPI (pypi.org)." +optional = false +python-versions = "*" +files = [ + {file = "trove-classifiers-2024.1.31.tar.gz", hash = "sha256:bfdfe60bbf64985c524416afb637ecc79c558e0beb4b7f52b0039e01044b0229"}, + {file = "trove_classifiers-2024.1.31-py3-none-any.whl", hash = "sha256:854aba3358f3cf10e5c0916aa533f5a39e27aadd8ade26a54cdc2a93257e39c4"}, +] + [[package]] name = "types-python-dateutil" version = "2.8.19.20240106" @@ -3468,13 +4196,13 @@ files = [ [[package]] name = "tzdata" -version = "2023.4" +version = "2024.1" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2023.4-py2.py3-none-any.whl", hash = "sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3"}, - {file = "tzdata-2023.4.tar.gz", hash = "sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] @@ -3508,20 +4236,41 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.1.0" +version = "2.2.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, - {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, + {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, + {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "virtualenv" +version = "20.25.0" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.25.0-py3-none-any.whl", hash = "sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3"}, + {file = "virtualenv-20.25.0.tar.gz", hash = "sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + [[package]] name = "wcwidth" version = "0.2.13" @@ -3577,13 +4326,13 @@ test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.9" +version = "4.0.10" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, - {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, + {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, + {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, ] [[package]] @@ -3689,6 +4438,90 @@ io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "ra parallel = ["dask[complete]"] viz = ["matplotlib", "nc-time-axis", "seaborn"] +[[package]] +name = "xattr" +version = "0.10.1" +description = "Python wrapper for extended filesystem attributes" +optional = false +python-versions = "*" +files = [ + {file = "xattr-0.10.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:16a660a883e703b311d1bbbcafc74fa877585ec081cd96e8dd9302c028408ab1"}, + {file = "xattr-0.10.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1e2973e72faa87ca29d61c23b58c3c89fe102d1b68e091848b0e21a104123503"}, + {file = "xattr-0.10.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:13279fe8f7982e3cdb0e088d5cb340ce9cbe5ef92504b1fd80a0d3591d662f68"}, + {file = "xattr-0.10.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1dc9b9f580ef4b8ac5e2c04c16b4d5086a611889ac14ecb2e7e87170623a0b75"}, + {file = "xattr-0.10.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:485539262c2b1f5acd6b6ea56e0da2bc281a51f74335c351ea609c23d82c9a79"}, + {file = "xattr-0.10.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:295b3ab335fcd06ca0a9114439b34120968732e3f5e9d16f456d5ec4fa47a0a2"}, + {file = "xattr-0.10.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:a126eb38e14a2f273d584a692fe36cff760395bf7fc061ef059224efdb4eb62c"}, + {file = "xattr-0.10.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:b0e919c24f5b74428afa91507b15e7d2ef63aba98e704ad13d33bed1288dca81"}, + {file = "xattr-0.10.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:e31d062cfe1aaeab6ba3db6bd255f012d105271018e647645941d6609376af18"}, + {file = "xattr-0.10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:209fb84c09b41c2e4cf16dd2f481bb4a6e2e81f659a47a60091b9bcb2e388840"}, + {file = "xattr-0.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c4120090dac33eddffc27e487f9c8f16b29ff3f3f8bcb2251b2c6c3f974ca1e1"}, + {file = "xattr-0.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3e739d624491267ec5bb740f4eada93491de429d38d2fcdfb97b25efe1288eca"}, + {file = "xattr-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2677d40b95636f3482bdaf64ed9138fb4d8376fb7933f434614744780e46e42d"}, + {file = "xattr-0.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40039f1532c4456fd0f4c54e9d4e01eb8201248c321c6c6856262d87e9a99593"}, + {file = "xattr-0.10.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:148466e5bb168aba98f80850cf976e931469a3c6eb11e9880d9f6f8b1e66bd06"}, + {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0aedf55b116beb6427e6f7958ccd80a8cbc80e82f87a4cd975ccb61a8d27b2ee"}, + {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c3024a9ff157247c8190dd0eb54db4a64277f21361b2f756319d9d3cf20e475f"}, + {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f1be6e733e9698f645dbb98565bb8df9b75e80e15a21eb52787d7d96800e823b"}, + {file = "xattr-0.10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7880c8a54c18bc091a4ce0adc5c6d81da1c748aec2fe7ac586d204d6ec7eca5b"}, + {file = "xattr-0.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:89c93b42c3ba8aedbc29da759f152731196c2492a2154371c0aae3ef8ba8301b"}, + {file = "xattr-0.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6b905e808df61b677eb972f915f8a751960284358b520d0601c8cbc476ba2df6"}, + {file = "xattr-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ef954d0655f93a34d07d0cc7e02765ec779ff0b59dc898ee08c6326ad614d5"}, + {file = "xattr-0.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:199b20301b6acc9022661412346714ce764d322068ef387c4de38062474db76c"}, + {file = "xattr-0.10.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec0956a8ab0f0d3f9011ba480f1e1271b703d11542375ef73eb8695a6bd4b78b"}, + {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffcb57ca1be338d69edad93cf59aac7c6bb4dbb92fd7bf8d456c69ea42f7e6d2"}, + {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f0563196ee54756fe2047627d316977dc77d11acd7a07970336e1a711e934db"}, + {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc354f086f926a1c7f04886f97880fed1a26d20e3bc338d0d965fd161dbdb8ab"}, + {file = "xattr-0.10.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c0cd2d02ef2fb45ecf2b0da066a58472d54682c6d4f0452dfe7ae2f3a76a42ea"}, + {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49626096ddd72dcc1654aadd84b103577d8424f26524a48d199847b5d55612d0"}, + {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceaa26bef8fcb17eb59d92a7481c2d15d20211e217772fb43c08c859b01afc6a"}, + {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c014c371391f28f8cd27d73ea59f42b30772cd640b5a2538ad4f440fd9190b"}, + {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:46c32cd605673606b9388a313b0050ee7877a0640d7561eea243ace4fa2cc5a6"}, + {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:772b22c4ff791fe5816a7c2a1c9fcba83f9ab9bea138eb44d4d70f34676232b4"}, + {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:183ad611a2d70b5a3f5f7aadef0fcef604ea33dcf508228765fd4ddac2c7321d"}, + {file = "xattr-0.10.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8068df3ebdfa9411e58d5ae4a05d807ec5994645bb01af66ec9f6da718b65c5b"}, + {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bc40570155beb85e963ae45300a530223d9822edfdf09991b880e69625ba38a"}, + {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:436e1aaf23c07e15bed63115f1712d2097e207214fc6bcde147c1efede37e2c5"}, + {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7298455ccf3a922d403339781b10299b858bb5ec76435445f2da46fb768e31a5"}, + {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:986c2305c6c1a08f78611eb38ef9f1f47682774ce954efb5a4f3715e8da00d5f"}, + {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5dc6099e76e33fa3082a905fe59df766b196534c705cf7a2e3ad9bed2b8a180e"}, + {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:042ad818cda6013162c0bfd3816f6b74b7700e73c908cde6768da824686885f8"}, + {file = "xattr-0.10.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9d4c306828a45b41b76ca17adc26ac3dc00a80e01a5ba85d71df2a3e948828f2"}, + {file = "xattr-0.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a606280b0c9071ef52572434ecd3648407b20df3d27af02c6592e84486b05894"}, + {file = "xattr-0.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5b49d591cf34cda2079fd7a5cb2a7a1519f54dc2e62abe3e0720036f6ed41a85"}, + {file = "xattr-0.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8705ac6791426559c1a5c2b88bb2f0e83dc5616a09b4500899bfff6a929302"}, + {file = "xattr-0.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5ea974930e876bc5c146f54ac0f85bb39b7b5de2b6fc63f90364712ae368ebe"}, + {file = "xattr-0.10.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f55a2dd73a12a1ae5113c5d9cd4b4ab6bf7950f4d76d0a1a0c0c4264d50da61d"}, + {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:475c38da0d3614cc5564467c4efece1e38bd0705a4dbecf8deeb0564a86fb010"}, + {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:925284a4a28e369459b2b7481ea22840eed3e0573a4a4c06b6b0614ecd27d0a7"}, + {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa32f1b45fed9122bed911de0fcc654da349e1f04fa4a9c8ef9b53e1cc98b91e"}, + {file = "xattr-0.10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c5d3d0e728bace64b74c475eb4da6148cd172b2d23021a1dcd055d92f17619ac"}, + {file = "xattr-0.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8faaacf311e2b5cc67c030c999167a78a9906073e6abf08eaa8cf05b0416515c"}, + {file = "xattr-0.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cc6b8d5ca452674e1a96e246a3d2db5f477aecbc7c945c73f890f56323e75203"}, + {file = "xattr-0.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3725746a6502f40f72ef27e0c7bfc31052a239503ff3eefa807d6b02a249be22"}, + {file = "xattr-0.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:789bd406d1aad6735e97b20c6d6a1701e1c0661136be9be862e6a04564da771f"}, + {file = "xattr-0.10.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9a7a807ab538210ff8532220d8fc5e2d51c212681f63dbd4e7ede32543b070f"}, + {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3e5825b5fc99ecdd493b0cc09ec35391e7a451394fdf623a88b24726011c950d"}, + {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:80638d1ce7189dc52f26c234cee3522f060fadab6a8bc3562fe0ddcbe11ba5a4"}, + {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3ff0dbe4a6ce2ce065c6de08f415bcb270ecfd7bf1655a633ddeac695ce8b250"}, + {file = "xattr-0.10.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5267e5f9435c840d2674194150b511bef929fa7d3bc942a4a75b9eddef18d8d8"}, + {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b27dfc13b193cb290d5d9e62f806bb9a99b00cd73bb6370d556116ad7bb5dc12"}, + {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:636ebdde0277bce4d12d2ef2550885804834418fee0eb456b69be928e604ecc4"}, + {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d60c27922ec80310b45574351f71e0dd3a139c5295e8f8b19d19c0010196544f"}, + {file = "xattr-0.10.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b34df5aad035d0343bd740a95ca30db99b776e2630dca9cc1ba8e682c9cc25ea"}, + {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24a7c04ff666d0fe905dfee0a84bc899d624aeb6dccd1ea86b5c347f15c20c1"}, + {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3878e1aff8eca64badad8f6d896cb98c52984b1e9cd9668a3ab70294d1ef92d"}, + {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4abef557028c551d59cf2fb3bf63f2a0c89f00d77e54c1c15282ecdd56943496"}, + {file = "xattr-0.10.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0e14bd5965d3db173d6983abdc1241c22219385c22df8b0eb8f1846c15ce1fee"}, + {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f9be588a4b6043b03777d50654c6079af3da60cc37527dbb80d36ec98842b1e"}, + {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bc4ae264aa679aacf964abf3ea88e147eb4a22aea6af8c6d03ebdebd64cfd6"}, + {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:827b5a97673b9997067fde383a7f7dc67342403093b94ea3c24ae0f4f1fec649"}, + {file = "xattr-0.10.1.tar.gz", hash = "sha256:c12e7d81ffaa0605b3ac8c22c2994a8e18a9cf1c59287a1b7722a2289c952ec5"}, +] + +[package.dependencies] +cffi = ">=1.0" + [[package]] name = "zipp" version = "3.17.0" @@ -3707,4 +4540,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.8, < 3.12" -content-hash = "5c9a10c802ff9186eb2b51c9d2b2b53fc88c71980344931d65cb78b9739934f6" +content-hash = "1d550d3ccb40e9c1bb1c744bb46df1dc875b3f921666f20a2975004c63bd2049" diff --git a/pyproject.toml b/pyproject.toml index 2f5241e5..28b14f2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ matplotlib = "^3.5.1" plotly = "^5.8.0" kaleido = "0.2.1" requests = "^2.29.0" +poetry-plugin-export = "^1.6.0" [tool.poetry.group.dev.dependencies] Sphinx = "^7.0.0" From 8ea22724c05854871c61b9e9b8b2774d984517c6 Mon Sep 17 00:00:00 2001 From: Daniel Neamati Date: Wed, 14 Feb 2024 09:42:30 -0800 Subject: [PATCH 07/40] Python 3.12 GitHub Actions workflow Try to add Python 3.12 support as a new action. --- .github/workflows/build_new_version.yml | 98 +++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/build_new_version.yml diff --git a/.github/workflows/build_new_version.yml b/.github/workflows/build_new_version.yml new file mode 100644 index 00000000..874db113 --- /dev/null +++ b/.github/workflows/build_new_version.yml @@ -0,0 +1,98 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: build + +on: + push: + branches: + - daniel/git_actions_py_version + pull_request: + branches: + - daniel/git_actions_py_version + workflow_dispatch: + +jobs: + build: + name: Python ${{ matrix.python-version }}, OS ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + python-version: ["3.8", "3.11", "3.12"] + os: [ubuntu-latest, macos-latest, windows-latest] + fail-fast : false + defaults: + run: + shell: bash + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true # default option selected currently + # Load cached environment, if it exists + - name: Load cached poetry environment + id: cached-poetry-dependencies + uses: actions/cache@v3 + with: + path: .venv + key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + - name: Install dependencies and root package + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: | + poetry install --no-interaction --no-root + poetry install --no-interaction + # Install pandoc for building docs + - name: Install pandoc for Ubuntu + if: matrix.os == 'ubuntu-latest' + run: sudo apt install pandoc + - name: Install pandoc for Windows + if: matrix.os == 'windows-latest' + run: choco install pandoc --no-progress + - name: Install pandoc for MacOS + if: matrix.os == 'macos-latest' + run: brew install pandoc + + - name: Test with pytest + run: | + source $VENV + poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml + - name: Upload coverage report to code-cov + uses: codecov/codecov-action@v3 + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos + - name: Test if docs are building + run: | + ./build_docs.sh + readme: + runs-on: ubuntu-latest + name: Check if index.rst and README.md weren't changed together + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Get changed files since last remote commit + id: changed-files + uses: tj-actions/changed-files@v34 + + - name: Check if index.rst changed when README.md file changes + if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') + run: | + echo "README.md has changed but index.rst has not!" + exit 1 + + - name: Check if README.md changed when index.rst file changes + if: contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') && !contains(steps.changed-files.outputs.modified_files, 'README.md') + run: | + echo "index.rst has changed but README.md has not!" + exit 1 From fecd5236fc96970b20299be4e39a39437b8178cc Mon Sep 17 00:00:00 2001 From: Daniel Neamati Date: Wed, 14 Feb 2024 09:45:10 -0800 Subject: [PATCH 08/40] Allow python 3.12 in pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c8a49919..bdee5e37 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">=3.8, < 3.12" +python = ">=3.8, < 3.13" numpy = "^1.21.0" pandas = "^2.0.0" georinex = "<=1.16.1" From b683b4ceed04d348b3325f8cfb06725ca84cdd50 Mon Sep 17 00:00:00 2001 From: betaBison Date: Wed, 14 Feb 2024 10:26:08 -0800 Subject: [PATCH 09/40] update packages for 3.12 --- docs/source/requirements.txt | 315 +++++------ poetry.lock | 1028 +++++++++++++++++++--------------- pyproject.toml | 2 +- requirements.txt | 255 ++++----- 4 files changed, 879 insertions(+), 721 deletions(-) diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 6b6dee9e..03ff065d 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -1,162 +1,165 @@ -alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.12" -anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" -appnope==0.1.3 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") -argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" -argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" -arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -astroid==2.15.8 ; python_version >= "3.8" and python_version < "3.12" -asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.12" -attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.12" -babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" -backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" -beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" -bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -certifi==2023.11.17 ; python_version >= "3.8" and python_version < "3.12" -cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or platform_system == "Windows") -comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" -coverage[toml]==7.4.0 ; python_version >= "3.8" and python_version < "3.12" -cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" -debugpy==1.8.0 ; python_version >= "3.8" and python_version < "3.12" -decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" -dill==0.3.7 ; python_version >= "3.8" and python_version < "3.12" -docutils==0.18.1 ; python_version >= "3.8" and python_version < "3.12" +alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.13" +anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.13" +appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.13" and (platform_system == "Darwin" or sys_platform == "darwin") +argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.13" +argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.13" +arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +astroid==2.15.8 ; python_version >= "3.8" and python_version < "3.13" +asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.13" +async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.13" +attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.13" +babel==2.14.0 ; python_version >= "3.8" and python_version < "3.13" +backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.13" +beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.13" +bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.13" +certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.13" +cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") +comm==0.2.1 ; python_version >= "3.8" and python_version < "3.13" +contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.13" +coverage[toml]==7.4.1 ; python_version >= "3.8" and python_version < "3.13" +cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.13" +debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.13" +decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.13" +defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" +dill==0.3.8 ; python_version >= "3.8" and python_version < "3.13" +docutils==0.18.1 ; python_version >= "3.8" and python_version < "3.13" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" -executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" -fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.47.2 ; python_version >= "3.8" and python_version < "3.12" -fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" -georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" -hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" -idna==3.6 ; python_version >= "3.8" and python_version < "3.12" -imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.12" +executing==2.0.1 ; python_version >= "3.8" and python_version < "3.13" +fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.13" +fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.13" +fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.13" +georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.13" +h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" +hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.13" +httpcore==1.0.3 ; python_version >= "3.8" and python_version < "3.13" +httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.13" +idna==3.6 ; python_version >= "3.8" and python_version < "3.13" +imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.13" importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.10" -importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" -iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.0 ; python_version >= "3.8" and python_version < "3.12" -ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" -ipywidgets==8.1.1 ; python_version >= "3.8" and python_version < "3.12" -isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" -isort==5.13.2 ; python_version >= "3.8" and python_version < "3.12" -jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" -jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" -json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" -jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" -jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.12" -jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" -jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" -jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-widgets==3.0.9 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.0.11 ; python_version >= "3.8" and python_version < "3.12" -kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" -lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "3.12" -markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "3.12" -matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" -matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" -mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.12" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" -nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.14.2 ; python_version >= "3.8" and python_version < "3.12" -nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" -nbsphinx-link==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -nbsphinx==0.8.12 ; python_version >= "3.8" and python_version < "3.12" -ncompress==1.0.1 ; python_version >= "3.8" and python_version < "3.12" -nest-asyncio==1.5.9 ; python_version >= "3.8" and python_version < "3.12" -notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.0.7 ; python_version >= "3.8" and python_version < "3.12" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" -overrides==7.4.0 ; python_version >= "3.8" and python_version < "3.12" -packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" -pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" -pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" -parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" -pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" -pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.13" +iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.13" +ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.13" +ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.13" +ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.13" +isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.13" +isort==5.13.2 ; python_version >= "3.8" and python_version < "3.13" +jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.13" +jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.13" +json5==0.9.14 ; python_version >= "3.8" and python_version < "3.13" +jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.13" +jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.13" +jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.13" +jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.13" +jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.13" +jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.13" +jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.13" +jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.13" +jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.13" +jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.13" +jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.13" +jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.13" +kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.13" +kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.13" +lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "3.13" +markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" +matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.13" +matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.13" +mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.13" +mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" +nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.13" +nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.13" +nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.13" +nbsphinx-link==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +nbsphinx==0.8.12 ; python_version >= "3.8" and python_version < "3.13" +ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.13" +nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.13" +notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.13" +notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.13" +numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.13" +overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.13" +packaging==23.2 ; python_version >= "3.8" and python_version < "3.13" +pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.13" +pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.13" +parso==0.8.3 ; python_version >= "3.8" and python_version < "3.13" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" +pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.13" +pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.13" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.1.0 ; python_version >= "3.8" and python_version < "3.12" -plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" -pluggy==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -pockets==0.9.1 ; python_version >= "3.8" and python_version < "3.12" -prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" -prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" -psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") -pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" -pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" -pylint-exit==1.2.0 ; python_version >= "3.8" and python_version < "3.12" -pylint==2.17.7 ; python_version >= "3.8" and python_version < "3.12" -pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" -pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" -pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "3.12" -pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.12" -python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" -python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" -pytz==2023.3.post1 ; python_version >= "3.8" and python_version < "3.12" -pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" -pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" -pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" -qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" -qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.32.1 ; python_version >= "3.8" and python_version < "3.12" -requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" -rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" -rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" -rpds-py==0.17.1 ; python_version >= "3.8" and python_version < "3.12" -scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" -send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.12" -soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.12" -sphinx-copybutton==0.5.2 ; python_version >= "3.8" and python_version < "3.12" -sphinx-rtd-theme==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -sphinx==7.1.2 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-napoleon==0.7 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "3.12" -sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "3.12" -stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.12" -terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.12" -tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.13" +plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.13" +pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.13" +pockets==0.9.1 ; python_version >= "3.8" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.13" +prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.13" +psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.13" +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") +pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.13" +pycparser==2.21 ; python_version >= "3.8" and python_version < "3.13" +pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.13" +pylint-exit==1.2.0 ; python_version >= "3.8" and python_version < "3.13" +pylint==2.17.7 ; python_version >= "3.8" and python_version < "3.13" +pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.13" +pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.13" +pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "3.13" +pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.13" +pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.13" +python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.13" +python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.13" +pytz==2024.1 ; python_version >= "3.8" and python_version < "3.13" +pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.13" +pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.13" and os_name == "nt" +pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.13" +pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.13" +qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.13" +qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.13" +referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.13" +requests==2.31.0 ; python_version >= "3.8" and python_version < "3.13" +rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.13" +rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.13" +rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.13" +scipy==1.9.3 ; python_version >= "3.8" and python_version < "3.13" +send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.13" +six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.13" +soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.13" +sphinx-copybutton==0.5.2 ; python_version >= "3.8" and python_version < "3.13" +sphinx-rtd-theme==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +sphinx==7.1.2 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-napoleon==0.7 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "3.13" +sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "3.13" +stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.13" +tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.13" +terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.13" +tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.13" tomli==2.0.1 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" -tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.12" -tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" -tqdm==4.66.1 ; python_version >= "3.8" and python_version < "3.12" -traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" -types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" +tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.13" +tornado==6.4 ; python_version >= "3.8" and python_version < "3.13" +tqdm==4.66.2 ; python_version >= "3.8" and python_version < "3.13" +traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.13" +types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.13" typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2023.4 ; python_version >= "3.8" and python_version < "3.12" -unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.1.0 ; python_version >= "3.8" and python_version < "3.12" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" -webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" -webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" -websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" -widgetsnbextension==4.0.9 ; python_version >= "3.8" and python_version < "3.12" -wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" +tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.13" +unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.13" +uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.13" +wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" +webcolors==1.13 ; python_version >= "3.8" and python_version < "3.13" +webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.13" +websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.13" +widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.13" +wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.13" zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.10" diff --git a/poetry.lock b/poetry.lock index feaddf64..c856f802 100644 --- a/poetry.lock +++ b/poetry.lock @@ -35,13 +35,13 @@ trio = ["trio (>=0.23)"] [[package]] name = "appnope" -version = "0.1.3" +version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] @@ -259,13 +259,13 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -459,6 +459,68 @@ traitlets = ">=4" [package.extras] test = ["pytest"] +[[package]] +name = "contourpy" +version = "1.1.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:89f06eff3ce2f4b3eb24c1055a26981bffe4e7264acd86f15b97e40530b794bc"}, + {file = "contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dffcc2ddec1782dd2f2ce1ef16f070861af4fb78c69862ce0aab801495dda6a3"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25ae46595e22f93592d39a7eac3d638cda552c3e1160255258b695f7b58e5655"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17cfaf5ec9862bc93af1ec1f302457371c34e688fbd381f4035a06cd47324f48"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, + {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, + {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, + {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052cc634bf903c604ef1a00a5aa093c54f81a2612faedaa43295809ffdde885e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9382a1c0bc46230fb881c36229bfa23d8c303b889b788b939365578d762b5c18"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, + {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, + {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, + {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62013a2cf68abc80dadfd2307299bfa8f5aa0dcaec5b2954caeb5fa094171103"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b6616375d7de55797d7a66ee7d087efe27f03d336c27cf1f32c02b8c1a5ac70"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, + {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, + {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, + {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f2931ed4741f98f74b410b16e5213f71dcccee67518970c42f64153ea9313b9"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30f511c05fab7f12e0b1b7730ebdc2ec8deedcfb505bc27eb570ff47c51a8f15"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, + {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, + {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, + {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a67259c2b493b00e5a4d0f7bfae51fb4b3371395e47d079a4446e9b0f4d70e76"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2b836d22bd2c7bb2700348e4521b25e077255ebb6ab68e351ab5aa91ca27e027"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084eaa568400cfaf7179b847ac871582199b1b44d5699198e9602ecbbb5f6104"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:911ff4fd53e26b019f898f32db0d4956c9d227d51338fb3b03ec72ff0084ee5f"}, + {file = "contourpy-1.1.0.tar.gz", hash = "sha256:e53046c3863828d21d531cc3b53786e6580eb1ba02477e8681009b6aa0870b21"}, +] + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] + [[package]] name = "contourpy" version = "1.1.1" @@ -532,63 +594,63 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "coverage" -version = "7.4.0" +version = "7.4.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36b0ea8ab20d6a7564e89cb6135920bc9188fb5f1f7152e94e8300b7b189441a"}, - {file = "coverage-7.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676cd0ba581e514b7f726495ea75aba3eb20899d824636c6f59b0ed2f88c471"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ca5c71a5a1765a0f8f88022c52b6b8be740e512980362f7fdbb03725a0d6b9"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c97726520f784239f6c62506bc70e48d01ae71e9da128259d61ca5e9788516"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:815ac2d0f3398a14286dc2cea223a6f338109f9ecf39a71160cd1628786bc6f5"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:80b5ee39b7f0131ebec7968baa9b2309eddb35b8403d1869e08f024efd883566"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b2ccb7548a0b65974860a78c9ffe1173cfb5877460e5a229238d985565574ae"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:995ea5c48c4ebfd898eacb098164b3cc826ba273b3049e4a889658548e321b43"}, - {file = "coverage-7.4.0-cp310-cp310-win32.whl", hash = "sha256:79287fd95585ed36e83182794a57a46aeae0b64ca53929d1176db56aacc83451"}, - {file = "coverage-7.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5b14b4f8760006bfdb6e08667af7bc2d8d9bfdb648351915315ea17645347137"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04387a4a6ecb330c1878907ce0dc04078ea72a869263e53c72a1ba5bbdf380ca"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea81d8f9691bb53f4fb4db603203029643caffc82bf998ab5b59ca05560f4c06"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74775198b702868ec2d058cb92720a3c5a9177296f75bd97317c787daf711505"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f03940f9973bfaee8cfba70ac991825611b9aac047e5c80d499a44079ec0bc"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485e9f897cf4856a65a57c7f6ea3dc0d4e6c076c87311d4bc003f82cfe199d25"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ae8c9d301207e6856865867d762a4b6fd379c714fcc0607a84b92ee63feff70"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bf477c355274a72435ceb140dc42de0dc1e1e0bf6e97195be30487d8eaaf1a09"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:83c2dda2666fe32332f8e87481eed056c8b4d163fe18ecc690b02802d36a4d26"}, - {file = "coverage-7.4.0-cp311-cp311-win32.whl", hash = "sha256:697d1317e5290a313ef0d369650cfee1a114abb6021fa239ca12b4849ebbd614"}, - {file = "coverage-7.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:26776ff6c711d9d835557ee453082025d871e30b3fd6c27fcef14733f67f0590"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:13eaf476ec3e883fe3e5fe3707caeb88268a06284484a3daf8250259ef1ba143"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846f52f46e212affb5bcf131c952fb4075b55aae6b61adc9856222df89cbe3e2"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26f66da8695719ccf90e794ed567a1549bb2644a706b41e9f6eae6816b398c4a"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:164fdcc3246c69a6526a59b744b62e303039a81e42cfbbdc171c91a8cc2f9446"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:316543f71025a6565677d84bc4df2114e9b6a615aa39fb165d697dba06a54af9"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bb1de682da0b824411e00a0d4da5a784ec6496b6850fdf8c865c1d68c0e318dd"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0e8d06778e8fbffccfe96331a3946237f87b1e1d359d7fbe8b06b96c95a5407a"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a56de34db7b7ff77056a37aedded01b2b98b508227d2d0979d373a9b5d353daa"}, - {file = "coverage-7.4.0-cp312-cp312-win32.whl", hash = "sha256:51456e6fa099a8d9d91497202d9563a320513fcf59f33991b0661a4a6f2ad450"}, - {file = "coverage-7.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd3c1e4cb2ff0083758f09be0f77402e1bdf704adb7f89108007300a6da587d0"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e9d1bf53c4c8de58d22e0e956a79a5b37f754ed1ffdbf1a260d9dcfa2d8a325e"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:109f5985182b6b81fe33323ab4707011875198c41964f014579cf82cebf2bb85"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc9d4bc55de8003663ec94c2f215d12d42ceea128da8f0f4036235a119c88ac"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc6d65b21c219ec2072c1293c505cf36e4e913a3f936d80028993dd73c7906b1"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a10a4920def78bbfff4eff8a05c51be03e42f1c3735be42d851f199144897ba"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b8e99f06160602bc64da35158bb76c73522a4010f0649be44a4e167ff8555952"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7d360587e64d006402b7116623cebf9d48893329ef035278969fa3bbf75b697e"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29f3abe810930311c0b5d1a7140f6395369c3db1be68345638c33eec07535105"}, - {file = "coverage-7.4.0-cp38-cp38-win32.whl", hash = "sha256:5040148f4ec43644702e7b16ca864c5314ccb8ee0751ef617d49aa0e2d6bf4f2"}, - {file = "coverage-7.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:9864463c1c2f9cb3b5db2cf1ff475eed2f0b4285c2aaf4d357b69959941aa555"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:936d38794044b26c99d3dd004d8af0035ac535b92090f7f2bb5aa9c8e2f5cd42"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:799c8f873794a08cdf216aa5d0531c6a3747793b70c53f70e98259720a6fe2d7"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7defbb9737274023e2d7af02cac77043c86ce88a907c58f42b580a97d5bcca9"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1526d265743fb49363974b7aa8d5899ff64ee07df47dd8d3e37dcc0818f09ed"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf635a52fc1ea401baf88843ae8708591aa4adff875e5c23220de43b1ccf575c"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:756ded44f47f330666843b5781be126ab57bb57c22adbb07d83f6b519783b870"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0eb3c2f32dabe3a4aaf6441dde94f35687224dfd7eb2a7f47f3fd9428e421058"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bfd5db349d15c08311702611f3dccbef4b4e2ec148fcc636cf8739519b4a5c0f"}, - {file = "coverage-7.4.0-cp39-cp39-win32.whl", hash = "sha256:53d7d9158ee03956e0eadac38dfa1ec8068431ef8058fe6447043db1fb40d932"}, - {file = "coverage-7.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfd2a8b6b0d8e66e944d47cdec2f47c48fef2ba2f2dff5a9a75757f64172857e"}, - {file = "coverage-7.4.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:c530833afc4707fe48524a44844493f36d8727f04dcce91fb978c414a8556cc6"}, - {file = "coverage-7.4.0.tar.gz", hash = "sha256:707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, + {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, + {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, + {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, + {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, + {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, + {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, + {file = "coverage-7.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8bdb0285a0202888d19ec6b6d23d5990410decb932b709f2b0dfe216d031d218"}, + {file = "coverage-7.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:918440dea04521f499721c039863ef95433314b1db00ff826a02580c1f503e45"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:379d4c7abad5afbe9d88cc31ea8ca262296480a86af945b08214eb1a556a3e4d"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094116f0b6155e36a304ff912f89bbb5067157aff5f94060ff20bbabdc8da06"}, + {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2f5968608b1fe2a1d00d01ad1017ee27efd99b3437e08b83ded9b7af3f6f766"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:10e88e7f41e6197ea0429ae18f21ff521d4f4490aa33048f6c6f94c6045a6a75"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a4a3907011d39dbc3e37bdc5df0a8c93853c369039b59efa33a7b6669de04c60"}, + {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d224f0c4c9c98290a6990259073f496fcec1b5cc613eecbd22786d398ded3ad"}, + {file = "coverage-7.4.1-cp38-cp38-win32.whl", hash = "sha256:23f5881362dcb0e1a92b84b3c2809bdc90db892332daab81ad8f642d8ed55042"}, + {file = "coverage-7.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:a07f61fc452c43cd5328b392e52555f7d1952400a1ad09086c4a8addccbd138d"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, + {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, + {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, + {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, + {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, ] [package.dependencies] @@ -614,29 +676,33 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.8.0" +version = "1.8.1" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, - {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, - {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, - {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, - {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, - {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, - {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, - {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, - {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, - {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, - {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, - {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, - {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, - {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, - {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, - {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, - {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, - {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, ] [[package]] @@ -663,17 +729,18 @@ files = [ [[package]] name = "dill" -version = "0.3.7" +version = "0.3.8" description = "serialize all of Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, - {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "docutils" @@ -730,60 +797,60 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "fonttools" -version = "4.47.2" +version = "4.48.1" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3b629108351d25512d4ea1a8393a2dba325b7b7d7308116b605ea3f8e1be88df"}, - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c19044256c44fe299d9a73456aabee4b4d06c6b930287be93b533b4737d70aa1"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8be28c036b9f186e8c7eaf8a11b42373e7e4949f9e9f370202b9da4c4c3f56c"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f83a4daef6d2a202acb9bf572958f91cfde5b10c8ee7fb1d09a4c81e5d851fd8"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a5a5318ba5365d992666ac4fe35365f93004109d18858a3e18ae46f67907670"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8f57ecd742545362a0f7186774b2d1c53423ed9ece67689c93a1055b236f638c"}, - {file = "fonttools-4.47.2-cp310-cp310-win32.whl", hash = "sha256:a1c154bb85dc9a4cf145250c88d112d88eb414bad81d4cb524d06258dea1bdc0"}, - {file = "fonttools-4.47.2-cp310-cp310-win_amd64.whl", hash = "sha256:3e2b95dce2ead58fb12524d0ca7d63a63459dd489e7e5838c3cd53557f8933e1"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29495d6d109cdbabe73cfb6f419ce67080c3ef9ea1e08d5750240fd4b0c4763b"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0a1d313a415eaaba2b35d6cd33536560deeebd2ed758b9bfb89ab5d97dc5deac"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90f898cdd67f52f18049250a6474185ef6544c91f27a7bee70d87d77a8daf89c"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3480eeb52770ff75140fe7d9a2ec33fb67b07efea0ab5129c7e0c6a639c40c70"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0255dbc128fee75fb9be364806b940ed450dd6838672a150d501ee86523ac61e"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f791446ff297fd5f1e2247c188de53c1bfb9dd7f0549eba55b73a3c2087a2703"}, - {file = "fonttools-4.47.2-cp311-cp311-win32.whl", hash = "sha256:740947906590a878a4bde7dd748e85fefa4d470a268b964748403b3ab2aeed6c"}, - {file = "fonttools-4.47.2-cp311-cp311-win_amd64.whl", hash = "sha256:63fbed184979f09a65aa9c88b395ca539c94287ba3a364517698462e13e457c9"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4ec558c543609e71b2275c4894e93493f65d2f41c15fe1d089080c1d0bb4d635"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e040f905d542362e07e72e03612a6270c33d38281fd573160e1003e43718d68d"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dd58cc03016b281bd2c74c84cdaa6bd3ce54c5a7f47478b7657b930ac3ed8eb"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32ab2e9702dff0dd4510c7bb958f265a8d3dd5c0e2547e7b5f7a3df4979abb07"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a808f3c1d1df1f5bf39be869b6e0c263570cdafb5bdb2df66087733f566ea71"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac71e2e201df041a2891067dc36256755b1229ae167edbdc419b16da78732c2f"}, - {file = "fonttools-4.47.2-cp312-cp312-win32.whl", hash = "sha256:69731e8bea0578b3c28fdb43dbf95b9386e2d49a399e9a4ad736b8e479b08085"}, - {file = "fonttools-4.47.2-cp312-cp312-win_amd64.whl", hash = "sha256:b3e1304e5f19ca861d86a72218ecce68f391646d85c851742d265787f55457a4"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:254d9a6f7be00212bf0c3159e0a420eb19c63793b2c05e049eb337f3023c5ecc"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eabae77a07c41ae0b35184894202305c3ad211a93b2eb53837c2a1143c8bc952"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86a5ab2873ed2575d0fcdf1828143cfc6b977ac448e3dc616bb1e3d20efbafa"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13819db8445a0cec8c3ff5f243af6418ab19175072a9a92f6cc8ca7d1452754b"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4e743935139aa485fe3253fc33fe467eab6ea42583fa681223ea3f1a93dd01e6"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d49ce3ea7b7173faebc5664872243b40cf88814ca3eb135c4a3cdff66af71946"}, - {file = "fonttools-4.47.2-cp38-cp38-win32.whl", hash = "sha256:94208ea750e3f96e267f394d5588579bb64cc628e321dbb1d4243ffbc291b18b"}, - {file = "fonttools-4.47.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f750037e02beb8b3569fbff701a572e62a685d2a0e840d75816592280e5feae"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d71606c9321f6701642bd4746f99b6089e53d7e9817fc6b964e90d9c5f0ecc6"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86e0427864c6c91cf77f16d1fb9bf1bbf7453e824589e8fb8461b6ee1144f506"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a00bd0e68e88987dcc047ea31c26d40a3c61185153b03457956a87e39d43c37"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d77479fb885ef38a16a253a2f4096bc3d14e63a56d6246bfdb56365a12b20c"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5465df494f20a7d01712b072ae3ee9ad2887004701b95cb2cc6dcb9c2c97a899"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4c811d3c73b6abac275babb8aa439206288f56fdb2c6f8835e3d7b70de8937a7"}, - {file = "fonttools-4.47.2-cp39-cp39-win32.whl", hash = "sha256:5b60e3afa9635e3dfd3ace2757039593e3bd3cf128be0ddb7a1ff4ac45fa5a50"}, - {file = "fonttools-4.47.2-cp39-cp39-win_amd64.whl", hash = "sha256:7ee48bd9d6b7e8f66866c9090807e3a4a56cf43ffad48962725a190e0dd774c8"}, - {file = "fonttools-4.47.2-py3-none-any.whl", hash = "sha256:7eb7ad665258fba68fd22228a09f347469d95a97fb88198e133595947a20a184"}, - {file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"}, -] - -[package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] + {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:702ae93058c81f46461dc4b2c79f11d3c3d8fd7296eaf8f75b4ba5bbf813cd5f"}, + {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97f0a49fa6aa2d6205c6f72f4f98b74ef4b9bfdcb06fd78e6fe6c7af4989b63e"}, + {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3260db55f1843e57115256e91247ad9f68cb02a434b51262fe0019e95a98738"}, + {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e740a7602c2bb71e1091269b5dbe89549749a8817dc294b34628ffd8b2bf7124"}, + {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4108b1d247953dd7c90ec8f457a2dec5fceb373485973cc852b14200118a51ee"}, + {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56339ec557f0c342bddd7c175f5e41c45fc21282bee58a86bd9aa322bec715f2"}, + {file = "fonttools-4.48.1-cp310-cp310-win32.whl", hash = "sha256:bff5b38d0e76eb18e0b8abbf35d384e60b3371be92f7be36128ee3e67483b3ec"}, + {file = "fonttools-4.48.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7449493886da6a17472004d3818cc050ba3f4a0aa03fb47972e4fa5578e6703"}, + {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61"}, + {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cad5cfd044ea2e306fda44482b3dd32ee47830fa82dfa4679374b41baa294f5f"}, + {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f30e605c7565d0da6f0aec75a30ec372072d016957cd8fc4469721a36ea59b7"}, + {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7"}, + {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5057ade278e67923000041e2b195c9ea53e87f227690d499b6a4edd3702f7f01"}, + {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b10633aafc5932995a391ec07eba5e79f52af0003a1735b2306b3dab8a056d48"}, + {file = "fonttools-4.48.1-cp311-cp311-win32.whl", hash = "sha256:0d533f89819f9b3ee2dbedf0fed3825c425850e32bdda24c558563c71be0064e"}, + {file = "fonttools-4.48.1-cp311-cp311-win_amd64.whl", hash = "sha256:d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a"}, + {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0a2417547462e468edf35b32e3dd06a6215ac26aa6316b41e03b8eeaf9f079ea"}, + {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cf5a0cd974f85a80b74785db2d5c3c1fd6cc09a2ba3c837359b2b5da629ee1b0"}, + {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0452fcbfbce752ba596737a7c5ec5cf76bc5f83847ce1781f4f90eab14ece252"}, + {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578c00f93868f64a4102ecc5aa600a03b49162c654676c3fadc33de2ddb88a81"}, + {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:63dc592a16cd08388d8c4c7502b59ac74190b23e16dfc863c69fe1ea74605b68"}, + {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9b58638d8a85e3a1b32ec0a91d9f8171a877b4b81c408d4cb3257d0dee63e092"}, + {file = "fonttools-4.48.1-cp312-cp312-win32.whl", hash = "sha256:d10979ef14a8beaaa32f613bb698743f7241d92f437a3b5e32356dfb9769c65d"}, + {file = "fonttools-4.48.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdfd7557d1bd294a200bd211aa665ca3b02998dcc18f8211a5532da5b8fad5c5"}, + {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3cdb9a92521b81bf717ebccf592bd0292e853244d84115bfb4db0c426de58348"}, + {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b4ec6d42a7555f5ae35f3b805482f0aad0f1baeeef54859492ea3b782959d4a"}, + {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902e9c4e9928301912f34a6638741b8ae0b64824112b42aaf240e06b735774b1"}, + {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8c8b54bd1420c184a995f980f1a8076f87363e2bb24239ef8c171a369d85a31"}, + {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:12ee86abca46193359ea69216b3a724e90c66ab05ab220d39e3fc068c1eb72ac"}, + {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6978bade7b6c0335095bdd0bd97f8f3d590d2877b370f17e03e0865241694eb5"}, + {file = "fonttools-4.48.1-cp38-cp38-win32.whl", hash = "sha256:bcd77f89fc1a6b18428e7a55dde8ef56dae95640293bfb8f4e929929eba5e2a2"}, + {file = "fonttools-4.48.1-cp38-cp38-win_amd64.whl", hash = "sha256:f40441437b039930428e04fb05ac3a132e77458fb57666c808d74a556779e784"}, + {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d2b01428f7da26f229a5656defc824427b741e454b4e210ad2b25ed6ea2aed4"}, + {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:df48798f9a4fc4c315ab46e17873436c8746f5df6eddd02fad91299b2af7af95"}, + {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2eb4167bde04e172a93cf22c875d8b0cff76a2491f67f5eb069566215302d45d"}, + {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c900508c46274d32d308ae8e82335117f11aaee1f7d369ac16502c9a78930b0a"}, + {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:594206b31c95fcfa65f484385171fabb4ec69f7d2d7f56d27f17db26b7a31814"}, + {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:292922dc356d7f11f5063b4111a8b719efb8faea92a2a88ed296408d449d8c2e"}, + {file = "fonttools-4.48.1-cp39-cp39-win32.whl", hash = "sha256:4709c5bf123ba10eac210d2d5c9027d3f472591d9f1a04262122710fa3d23199"}, + {file = "fonttools-4.48.1-cp39-cp39-win_amd64.whl", hash = "sha256:63c73b9dd56a94a3cbd2f90544b5fca83666948a9e03370888994143b8d7c070"}, + {file = "fonttools-4.48.1-py3-none-any.whl", hash = "sha256:e3e33862fc5261d46d9aae3544acb36203b1a337d00bdb5d3753aae50dac860e"}, + {file = "fonttools-4.48.1.tar.gz", hash = "sha256:8b8a45254218679c7f1127812761e7854ed5c8e34349aebf581e8c9204e7495a"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0,<5)"] +lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] @@ -827,6 +894,17 @@ lint = ["flake8", "flake8-blind-except", "flake8-bugbear", "flake8-builtins", "m plot = ["cartopy", "matplotlib", "pymap3d", "seaborn"] tests = ["pytest (>=3.9)", "pytest-timeout"] +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + [[package]] name = "hatanaka" version = "2.8.1" @@ -861,6 +939,51 @@ ncompress = "*" dev = ["pytest"] tests = ["pytest"] +[[package]] +name = "httpcore" +version = "1.0.3" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.3-py3-none-any.whl", hash = "sha256:9a6a501c3099307d9fd76ac244e08503427679b1e81ceb1d922485e2f2462ad2"}, + {file = "httpcore-1.0.3.tar.gz", hash = "sha256:5c0f9546ad17dac4d0772b0808856eb616eb8b48ce94f49ed819fd6982a8a544"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.24.0)"] + +[[package]] +name = "httpx" +version = "0.26.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"}, + {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + [[package]] name = "idna" version = "3.6" @@ -933,13 +1056,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.0" +version = "6.29.2" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.0-py3-none-any.whl", hash = "sha256:076663ca68492576f051e4af7720d33f34383e655f2be0d544c8b1c9de915b2f"}, - {file = "ipykernel-6.29.0.tar.gz", hash = "sha256:b5dd3013cab7b330df712891c96cd1ab868c27a7159e606f762015e9bf8ceb3f"}, + {file = "ipykernel-6.29.2-py3-none-any.whl", hash = "sha256:50384f5c577a260a1d53f1f59a828c7266d321c9b7d00d345693783f66616055"}, + {file = "ipykernel-6.29.2.tar.gz", hash = "sha256:3bade28004e3ff624ed57974948116670604ac5f676d12339693f3142176d3f0"}, ] [package.dependencies] @@ -962,7 +1085,7 @@ cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.2)", "pytest-cov", "pytest-timeout"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.4)", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" @@ -1005,21 +1128,21 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa [[package]] name = "ipywidgets" -version = "8.1.1" +version = "8.1.2" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, - {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, + {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, + {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.9,<3.1.0" +jupyterlab-widgets = ">=3.0.10,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.9,<4.1.0" +widgetsnbextension = ">=4.0.10,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1324,13 +1447,13 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc [[package]] name = "jupyter-server-terminals" -version = "0.5.1" +version = "0.5.2" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server_terminals-0.5.1-py3-none-any.whl", hash = "sha256:5e63e947ddd97bb2832db5ef837a258d9ccd4192cd608c1270850ad947ae5dd7"}, - {file = "jupyter_server_terminals-0.5.1.tar.gz", hash = "sha256:16d3be9cf48be6a1f943f3a6c93c033be259cf4779184c66421709cf63dccfea"}, + {file = "jupyter_server_terminals-0.5.2-py3-none-any.whl", hash = "sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80"}, + {file = "jupyter_server_terminals-0.5.2.tar.gz", hash = "sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8"}, ] [package.dependencies] @@ -1343,17 +1466,18 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.0.11" +version = "4.1.1" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.0.11-py3-none-any.whl", hash = "sha256:536bf0e78723153a5016ca7efb88ed0ecd7070d3f1555d5b0e2770658f900a3c"}, - {file = "jupyterlab-4.0.11.tar.gz", hash = "sha256:d1aec24712566bc25a36229788242778e498ca4088028e2f9aa156b8b7fdc8fc"}, + {file = "jupyterlab-4.1.1-py3-none-any.whl", hash = "sha256:fa3e8c18b804eac04e51ceebd9dd3dd396e08106816f0d09cc426799d7087632"}, + {file = "jupyterlab-4.1.1.tar.gz", hash = "sha256:8acc9f561729d8f32c14c294c397917cddfeeb13a5d46f811979b71b4911a9fd"}, ] [package.dependencies] async-lru = ">=1.0.0" +httpx = ">=0.25.0" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""} ipykernel = "*" @@ -1369,9 +1493,9 @@ tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.1.6)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] [[package]] @@ -1413,13 +1537,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.9" +version = "3.0.10" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, - {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, + {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, + {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, ] [[package]] @@ -1598,71 +1722,71 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1793,13 +1917,13 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.14.2" +version = "7.16.0" description = "Converting Jupyter Notebooks" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.14.2-py3-none-any.whl", hash = "sha256:db28590cef90f7faf2ebbc71acd402cbecf13d29176df728c0a9025a49345ea1"}, - {file = "nbconvert-7.14.2.tar.gz", hash = "sha256:a7f8808fd4e082431673ac538400218dd45efd076fbeb07cc6e5aa5a3a4e949e"}, + {file = "nbconvert-7.16.0-py3-none-any.whl", hash = "sha256:ad3dc865ea6e2768d31b7eb6c7ab3be014927216a5ece3ef276748dd809054c7"}, + {file = "nbconvert-7.16.0.tar.gz", hash = "sha256:813e6553796362489ae572e39ba1bff978536192fb518e10826b0e8cadf03ec8"}, ] [package.dependencies] @@ -1886,63 +2010,91 @@ sphinx = ">=1.8" [[package]] name = "ncompress" -version = "1.0.1" +version = "1.0.2" description = "LZW compression and decompression" optional = false python-versions = ">=3.8" files = [ - {file = "ncompress-1.0.1-cp310-cp310-macosx_10_14_universal2.whl", hash = "sha256:487f680e369ef2f7cdf26f888dd83dc2bdf36c5764d7be204300db2a8e176e50"}, - {file = "ncompress-1.0.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ac44c41811b5c1105974f92858cf607de7cd2a9a57ad2e511c603fc90d4dd034"}, - {file = "ncompress-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e37c183901042dbb29f9d24ce5a1239e9c57afdb9eb1a6a9deb5e036cca7149d"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723308a5782bed3ddcfba9e0c3ce6aecfad01e3d7644b44995e2cecc7317685f"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ae50e6e7f15aad30cd73d9261742e683fb660e9598564b14f05fe87e026e65"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85feb2f4ea85ac8ac9708c9a912e93f75e899d88eab2af6e89aae7a79120e105"}, - {file = "ncompress-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7eb3eb16d26acc64e3175e8aec9dc102fe3355e45a701bf8c273c9d9af55b2d0"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:497be1959fa0c0c4249f546c059ee0a98e4f86d2bafe846a69acdbcd3bab849b"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:cfba2d01010ee437425c0dd029e27429a6595e3e9447750b5821cb1908d347dc"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:062d8fb3ea0534a96de052eb68343da831c88a607685a87b0dc144ad1466e9ff"}, - {file = "ncompress-1.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:13a719822859605a798cf96e678b31e1dd66541369be48cc3ef544f2c6e14f08"}, - {file = "ncompress-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:7719b8659a9f61b3cfacbbd9c1bb07a3656945aed0bf2c73e34cd1122edc9ff2"}, - {file = "ncompress-1.0.1-cp310-cp310-win_arm64.whl", hash = "sha256:62a95f693d6964d1b25110afa7b2111a6a471c62727b5efa2e3a8e5e3c5922ff"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:a94fc9e3e047199c29ada85fa3104de6a7b486859337a05259b8ae24c1686e29"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:938eee75b6084e5fb3cf4fb6a79ba86fb261cade319639893f369401c53687e4"}, - {file = "ncompress-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:016a3c60f6a25c50323cbcf4faf7c6ccd1992468eb6c6348a9d164cca3b53083"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f49a6aa4e1757a0963bbadea6219c0369afb07265ace6e5c4201c974f5e271a3"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8101d647f5334c4afb2a11e0c18602a9bdddb4260ee0a4f8ec6241930c89124d"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39ced149de176fda05198e4d0ede9d88bb2a4b717f559b4826a169dd61ab41d9"}, - {file = "ncompress-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f7c85fb141308e806fecc47791aaa5d03efd05f2b6d0d9bdf0f7ce021f60799"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c242d28f5679319733cf0f9a5342c3a94161214fb6ab4ef0fb15a31c65d69114"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:149464d41c24fa66e1497b8e2b460f312dbe017624b46af1514bf0276485a99f"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ba638721c66c1946c32bbb86e9413c8a101b0db09c82afe96dfe1a2201783cab"}, - {file = "ncompress-1.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a9345d3825776440bba31b1998bd11a377e3eb98bb79377ae91739b5e7464c1c"}, - {file = "ncompress-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:0459002f93a2ed501fc76b6cd8806216f242cd86f11dac6df88932214345dd42"}, - {file = "ncompress-1.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:2039fd029b0c7b7bec320ab5450cdc93ef786bad9ba7a87162aa2892dd7156f9"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:cd1d7c3458f4c345dc47ede17e7777b1a7d6a26f18d08962b0a0804b142fdc1e"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:213eedd6cf7bf550cce2ff6e72791c8343396d169a248d1b422b17f68cd387ed"}, - {file = "ncompress-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:068bb0356d74afcf8f38b231e76773116e7346c76a6face3e25ec7cec4d60795"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87ea419d904f44833620a14a9815d3aaa70e4b9739a743953c963a56be64d711"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:df2afc9e5ac6a72bed94fd75967cdacf826d94b7b29fe841210fefb1a7c6a6bb"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bcb8f79fcaba867768178b98e25106c63a79f077f1ea22ec59e7945236a8ab7"}, - {file = "ncompress-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73a1025f501ea3d0b729da59f557ab67f6533a97ebe0082fd762018132cf92a7"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbf462b9cc620b56bf824aa20aa9d75de04444d1e43f1b228037d1ecf01ce6be"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:2df08321ed9c8d0bbba34b2859b8a5a2833a3a315f131b81603eb1dc7423c0ba"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:95a846e1704852c95c7ec347f09fc4bea3dfd3581020e3c694a1081a8fcd3ea1"}, - {file = "ncompress-1.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3c48aac59135cd521ba7a8ee0f6dd9d03946a3f2d2e02d4534dabe7423fd3420"}, - {file = "ncompress-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:47ade5c18733da749ba7371ac27e68ba806d67d430e5eb37c48bf338bb975382"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:29e7fce7e246de8871dc94349a1abf21da675e249acdaac76d95601a7c3da928"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c34316051bfc1305b3f51bf03cb78e115d23b153a34d8a1a9d04459e42857f84"}, - {file = "ncompress-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7c19380caa250289260576ca5c29558ed00f516ba9844283d6c9a5b7e6a0475f"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8207723ff3ba3f27a4bdb7632d5be05a6de5e0e163c4495dd66856d713f96dec"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8308fb769bb5eb063badd92904f4abe8c0f1c023d71a7cda168a033cbcc60c88"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d26a0b26e958ea7ffbc41fa6fdfa9e8f1c72b45134ca0ad198ea3f61701ba0b4"}, - {file = "ncompress-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ce207383fa1c1fb47320f3fb593a360ad30cc04b5ffcd868c020210eb57b798"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c62cd047119d897b789955b082c9da76efae5b47f84b0ebe68fbe9e37f932f7b"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:64bf39b339350f099811ab8eaf7a8aece5629a4555838c9744c81cdc39a1ad15"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:4a707c302c008498afd23959ba6d64b7e4aa3a292d78e10dbb5c35f80b57ad64"}, - {file = "ncompress-1.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4abc4469666f6cf7f7e27fc8c1e629088c075ef5dfb22ad55cb80a193d745fdc"}, - {file = "ncompress-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:a1f9b16445da8af82073b5e7a9b33c024bd4299bfecfba1da636d32da5c9c399"}, - {file = "ncompress-1.0.1-cp39-cp39-win_arm64.whl", hash = "sha256:7be5cca28b1a7c8df5d989d90c80d316b486bc8d32c67aec2029b27b9589c5df"}, - {file = "ncompress-1.0.1.tar.gz", hash = "sha256:a27a54b572da8f14ac0c0689660f13cddb02a2822b03048d3c2ce3d28fb11027"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_10_14_universal2.whl", hash = "sha256:e18e2e40563e6fc8e795d7afbe72cdf7cea830c673570c3e2cc07b0c0e35c558"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:aafc0be770c3b6342fd105ccfd1c39921da5936e05c64b8aa7b3d98221ad683e"}, + {file = "ncompress-1.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a61a6eccf8a0d307b567ca15ffef760ff7454ac272bfc6cce6dd5493cd114aa"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f15fdb076704a21d0242e3670a8bcec391bbdf2d6796f3c46750715cc10a6bc"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b520a5b1eeb9d8934a5f8329364a233aad72fda34b69acf4fbba70b2efda6657"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9360d54280e6a212ad519544aa9b4499e501adedb684ed52b1edc56b3abd4b4"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98990972a18eb29b55ae75a66b8eab600f6a94c110f6976eb978702d815c6faa"}, + {file = "ncompress-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2962d61411636f48abc8953237ccd0af1c4bccfcbe5792c42eb41d2156a9db75"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1cb63471fdc7924b269ea7347818fc581c8a7a7810d384c3c22570478c756590"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1b978bd3bd30da19d067f9986307a344707fe6be27dee210f4f9e6a20680b642"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:862daff392f6bd14322d8d78bc7c55f83458a0b58d33cd36af00e670371387d2"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:3d6c840203dfbe9adfc6126d3c616abd01d99c6428e95724baa572cf9b2b7129"}, + {file = "ncompress-1.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e9df1e1934364193bb6d4a053da4d78660564ca5a364521cf47f124c12265028"}, + {file = "ncompress-1.0.2-cp310-cp310-win32.whl", hash = "sha256:19053bde96816ee7970f6d2a28c1f56eb710411116f2142be13075c92314dbf8"}, + {file = "ncompress-1.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:d0cded4e915b66455d7f6f978e7e990f0636921916c31f42f733f0717a1dfd5e"}, + {file = "ncompress-1.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:ded21622cf72bb22e99dec778e4852ab2648ad298d1a6fe2f5984d8deca00f99"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:21751456f452f0a1df2326967c8deb77438f5d353f904e240ed1c4f56efc31c9"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:24c9f25e86e3b5a831eaedcc92b17a2f9d9cadeaf80d5f2b60996fd43ab001e6"}, + {file = "ncompress-1.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:998b0101108ece32a2a902b3ab458f95f83a4af7429caf19b957af31d5f8cc98"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e034d80a05ed10afafdb1503e2b1c73c32ee7239b83acf0ee4de2389fc750ca"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2bbdd9849714b5c137f46b702bd663d05018053eb42a187a55d4e566fd1e628"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3c93ae4759faabea5c8e29aa224a9cc17d5a6d06f83fb2d13a5f7b61c5b272e"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ad572af4c23696564a217a8845064cb63cc5b87db24d03f42b8e54537313a62"}, + {file = "ncompress-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8300f7b238c0b792e6d028a01bae3ebdd1ded26b5fc3b6c04723c05341231743"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:44f0f6f26f734457e2fdfb6aaf3cd95bd98871136b9c53ea9b328d9bf079c4be"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ffd667ad02db9cd088c889a02496c43769b02a9c56d78d6353549eca2c8f9e12"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c775f706953367867786ae0ffbc9f4862e3be7119d392a7414368ba6be0c1ed3"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:894cc4d0096ea8c2e8ecc33ee490f3b623d3c00a3737662d0d85d9167a11f127"}, + {file = "ncompress-1.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32a04536969a76c665a7dceb5ad586d0ef39e45e6c3b216e474f49231cc498ce"}, + {file = "ncompress-1.0.2-cp311-cp311-win32.whl", hash = "sha256:d5f21f16252e9933e2710c1564b16cd1b65ca30fc2fa5b8fec4a9a15a7465cda"}, + {file = "ncompress-1.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:0a932439964538d9d9e27575873ff2eaed43a142eed1aad1d157e6c0b50f234c"}, + {file = "ncompress-1.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:eb93a9fe061abd090cc5f6a1132c6e97f7403f5c2a60dad63b787d37ad519912"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_10_14_universal2.whl", hash = "sha256:35e4b03a1dbc23193f7ae5276d470b33579f8d80de4dad406de4ee910fe0fc1e"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_10_14_x86_64.whl", hash = "sha256:0edfb1b1e67a13d102a41f1f689d12b0be6f6ef65fdf5b870d21f880bcdfae64"}, + {file = "ncompress-1.0.2-cp312-abi3-macosx_11_0_arm64.whl", hash = "sha256:0ca45c08d9118b82d1fd1e872e986bb0a7e9dd35671ff0017910a962d2ec2de4"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4d5a84eacf064df113553f970c8cafda732ef7cc7c67c5059cd52a05310dfe3"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6bf1babd0fff072489b5c0612b5297a5eb9235d93a5421f231f62e885b8df79"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea3c76100c539e5cfa59760f3dd055aef00ea79d904a8b081227301b0128e7e0"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5552078672e82ccfff6817edfa4597db8f6a97dbac421c3640693c5f6a9213c1"}, + {file = "ncompress-1.0.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fc5f625eba6ecf9f90383134225562a271db6bc3448b1d70141b13e4d5eafcf"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:801b4c78dcd7f065e29f0fc05e3c3e949971c74031d3bc3df972ea40b3b58238"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_i686.whl", hash = "sha256:011728ef586d91ded2908b8a895cb9eb5157a02f145d23e06b9037a7c742549a"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_ppc64le.whl", hash = "sha256:dbd70466b4529483d2ebc2916d4d72a91741d506c83988aac2479412e8c9d1a2"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_s390x.whl", hash = "sha256:9df921844cf442962f41f133ca245c3a20daabb029dba192086f1bb0aad5a25c"}, + {file = "ncompress-1.0.2-cp312-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:4776cc397e06cb332a7bf78f654ef43321c00a551df7e2c679b35a311e9fa8d4"}, + {file = "ncompress-1.0.2-cp312-abi3-win32.whl", hash = "sha256:4b703a75f75ae37b98fdac4a6228ed97e1614bd5745fae49e7e8e0d25f584561"}, + {file = "ncompress-1.0.2-cp312-abi3-win_amd64.whl", hash = "sha256:672f7166abf634df43a592ec2d1053c991057a1f7020d55288fa03ab60ebae98"}, + {file = "ncompress-1.0.2-cp312-abi3-win_arm64.whl", hash = "sha256:01523a89cfae13c58bf23e31a4baf8bf6c3537917781bfc2e42a663eb192dde1"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:2bcc4a05a6aa2b3e7f6cffa315c88902c0a08a32a763d89c26c5b71e60d4cca9"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b20b5cf5cde335146ee552585e1103e9752ff51ed4b1d065a27ab3d67787feb7"}, + {file = "ncompress-1.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c99d38e3fa3386c2deaa630a06363f2b24f0610d469287245702e8642829f71"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffe6fab5414a07eaeeb8565eea57ebea39eb9fe465659246537dc9fef233481b"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4d3dfc4aecd5e26c04a148a73f4ce0f2e1301ed7ca8aed3644a953e2c00278a"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aae4fe252f24025b49a10537acd9b78d2fe37659f5977473fe833b1686893483"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f24f0792633d491d51d6bea4581645127c354a599327b7408e3633d3081409"}, + {file = "ncompress-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b4cdb81c86e16e7d64a6c170f02fd5c3ebeb569f94913f568b6be4d337fea16"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5e01c106bdd12db0ee4af768de1664f17cad0782a9f3e49fbd53a9b92ebe8c9d"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8de48ec81c877aa97e3579c37bb9b504639c96f86f09c4ffcf660e5859fcc0b2"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4b6618fa2ded61001c28c8c6cb7f6237f8a662db3efd85cd8df7b1297b5c1631"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:daf100d83837ec2732637e29f58c2b1bac7ea5affa8f5f2974646bf67a5d47ef"}, + {file = "ncompress-1.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ab3fafd6b0c3e1cee1b25c5d9e68eeeb5dfefe683a659ec0b2e06d1f7b121149"}, + {file = "ncompress-1.0.2-cp38-cp38-win32.whl", hash = "sha256:c6c59c91a630b559519e076d8f1efe79a51aef65c57cc2ae830ebbc4b72b0c27"}, + {file = "ncompress-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8343f534742269dd637ead71c29cbf628bbc203fdf533f5d73fd1c96091634b3"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:1aab57376dd029a7d9de43f109e10976544a0baafa47857b77bb0ecd66ef34d9"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c00199a64bbaa521e18281950a3ef4bd3c0913c468a4bbe8fa37625368bca7f4"}, + {file = "ncompress-1.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:88d6b324982ca32356c292af0a4166e4ffdbf1409a339c9c0919c58e1eda8b4a"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d31c79b04044a2c321f4500dce2f492cd1d7acb14bf028fb62756f9d83d0f870"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a09cbf49640f8f28992218c6c906d4a7400518083727eb5009882b4354e8f7"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aed345bbc277413959eb9708982307d66447d9842a939973d8becad3e8787c38"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d9eaa363d1914d9feff434b4336fbdfc516d5e0d8e1dc05755db4fbb7610e8c2"}, + {file = "ncompress-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29ae7cf915e2edb064d00cf5e8b0bda761905c4563628d3df1dee6176cabbcc9"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5cced527f2c3e8a23b6a12b3d1fe2bd2ca99157e29a3d2f98f5ba6d5c9bddd48"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1832bff2d6a5686778e4a878b6faad2921334605703f390f7d98fff32d702607"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6b089e663632b46c663fed71a12e6884ef24adcbe80affb5eb16578dedb4e152"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:2a190272cc3ccdbbdd7b031d4b82096fc51d4a1e85976e2c4cdb21606224e758"}, + {file = "ncompress-1.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5696d8380d3db080b97704a6172ce5ebfcfa7b206ce5b0ef8edb8aef640e9816"}, + {file = "ncompress-1.0.2-cp39-cp39-win32.whl", hash = "sha256:ec8832225817d6fd7ffa1fca93f58ab28271af352bf1ccaeddc6503e07c47bea"}, + {file = "ncompress-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a1df222c0f779c7d64a16d91d1b6348d76c01092c883477f0f2b6cbc1cc58ca2"}, + {file = "ncompress-1.0.2-cp39-cp39-win_arm64.whl", hash = "sha256:16a3e4446645e99d1108187b25f9ccc9a7aa674248da39221989576d4680624c"}, + {file = "ncompress-1.0.2.tar.gz", hash = "sha256:ce32a3ea889878680c209d431cbc2c004d7a0c597f127ead22b9e304b37d41ed"}, ] [package.extras] @@ -1950,29 +2102,29 @@ tests = ["pytest"] [[package]] name = "nest-asyncio" -version = "1.5.9" +version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" files = [ - {file = "nest_asyncio-1.5.9-py3-none-any.whl", hash = "sha256:61ec07ef052e72e3de22045b81b2cc7d71fceb04c568ba0b2e4b2f9f5231bec2"}, - {file = "nest_asyncio-1.5.9.tar.gz", hash = "sha256:d1e1144e9c6e3e6392e0fcf5211cb1c8374b5648a98f1ebe48e5336006b41907"}, + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, ] [[package]] name = "notebook" -version = "7.0.7" +version = "7.1.0" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.0.7-py3-none-any.whl", hash = "sha256:289b606d7e173f75a18beb1406ef411b43f97f7a9c55ba03efa3622905a62346"}, - {file = "notebook-7.0.7.tar.gz", hash = "sha256:3bcff00c17b3ac142ef5f436d50637d936b274cfa0b41f6ac0175363de9b4e09"}, + {file = "notebook-7.1.0-py3-none-any.whl", hash = "sha256:a8fa4ccb5e5fe220f29d9900337efd7752bc6f2efe004d6f320db01f7743adc9"}, + {file = "notebook-7.1.0.tar.gz", hash = "sha256:99caf01ff166b1cc86355c9b37c1ba9bf566c1d7fc4ab57bb6f8f24e36c4260e"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.0.2,<5" +jupyterlab = ">=4.1.1,<4.2" jupyterlab-server = ">=2.22.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" @@ -2038,13 +2190,13 @@ files = [ [[package]] name = "overrides" -version = "7.4.0" +version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" files = [ - {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, - {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, ] [[package]] @@ -2274,18 +2426,18 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "plotly" @@ -2304,13 +2456,13 @@ tenacity = ">=6.2.0" [[package]] name = "pluggy" -version = "1.3.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] [package.extras] @@ -2333,13 +2485,13 @@ six = ">=1.5.2" [[package]] name = "prometheus-client" -version = "0.19.0" +version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.19.0-py3-none-any.whl", hash = "sha256:c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92"}, - {file = "prometheus_client-0.19.0.tar.gz", hash = "sha256:4585b0d1223148c27a225b10dbec5ae9bc4c81a99a3fa80774fa6209935324e1"}, + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -2584,13 +2736,13 @@ files = [ [[package]] name = "pytz" -version = "2023.3.post1" +version = "2024.1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] @@ -2656,7 +2808,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2840,13 +2991,13 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "referencing" -version = "0.32.1" +version = "0.33.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.32.1-py3-none-any.whl", hash = "sha256:7e4dc12271d8e15612bfe35792f5ea1c40970dadf8624602e33db2758f7ee554"}, - {file = "referencing-0.32.1.tar.gz", hash = "sha256:3c57da0513e9563eb7e203ebe9bb3a1b509b042016433bd1e45a2853466c3dd3"}, + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, ] [package.dependencies] @@ -2901,149 +3052,149 @@ files = [ [[package]] name = "rpds-py" -version = "0.17.1" +version = "0.18.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.17.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d"}, - {file = "rpds_py-0.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59"}, - {file = "rpds_py-0.17.1-cp310-none-win32.whl", hash = "sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d"}, - {file = "rpds_py-0.17.1-cp310-none-win_amd64.whl", hash = "sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea"}, - {file = "rpds_py-0.17.1-cp311-none-win32.whl", hash = "sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518"}, - {file = "rpds_py-0.17.1-cp311-none-win_amd64.whl", hash = "sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf"}, - {file = "rpds_py-0.17.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf"}, - {file = "rpds_py-0.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9"}, - {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253"}, - {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23"}, - {file = "rpds_py-0.17.1-cp312-none-win32.whl", hash = "sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1"}, - {file = "rpds_py-0.17.1-cp312-none-win_amd64.whl", hash = "sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3"}, - {file = "rpds_py-0.17.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d"}, - {file = "rpds_py-0.17.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae"}, - {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde"}, - {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6"}, - {file = "rpds_py-0.17.1-cp38-none-win32.whl", hash = "sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a"}, - {file = "rpds_py-0.17.1-cp38-none-win_amd64.whl", hash = "sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb"}, - {file = "rpds_py-0.17.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a"}, - {file = "rpds_py-0.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256"}, - {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772"}, - {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b"}, - {file = "rpds_py-0.17.1-cp39-none-win32.whl", hash = "sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f"}, - {file = "rpds_py-0.17.1-cp39-none-win_amd64.whl", hash = "sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68"}, - {file = "rpds_py-0.17.1.tar.gz", hash = "sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, + {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, + {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, + {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, + {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, ] [[package]] name = "scipy" -version = "1.10.1" +version = "1.9.3" description = "Fundamental algorithms for scientific computing in Python" optional = false -python-versions = "<3.12,>=3.8" +python-versions = ">=3.8" files = [ - {file = "scipy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019"}, - {file = "scipy-1.10.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2"}, - {file = "scipy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d"}, - {file = "scipy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f"}, - {file = "scipy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601"}, - {file = "scipy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea"}, - {file = "scipy-1.10.1.tar.gz", hash = "sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5"}, + {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, + {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, + {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, + {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, + {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, + {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, + {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, ] [package.dependencies] -numpy = ">=1.19.5,<1.27.0" +numpy = ">=1.18.5,<1.26.0" [package.extras] -dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", "rich-click", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] +doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] +test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "send2trash" @@ -3411,13 +3562,13 @@ files = [ [[package]] name = "tqdm" -version = "4.66.1" +version = "4.66.2" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, + {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, + {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, ] [package.dependencies] @@ -3468,13 +3619,13 @@ files = [ [[package]] name = "tzdata" -version = "2023.4" +version = "2024.1" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2023.4-py2.py3-none-any.whl", hash = "sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3"}, - {file = "tzdata-2023.4.tar.gz", hash = "sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] @@ -3508,17 +3659,18 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.1.0" +version = "2.2.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, - {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, + {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, + {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -3577,13 +3729,13 @@ test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.9" +version = "4.0.10" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, - {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, + {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, + {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, ] [[package]] @@ -3706,5 +3858,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = ">=3.8, < 3.12" -content-hash = "5c9a10c802ff9186eb2b51c9d2b2b53fc88c71980344931d65cb78b9739934f6" +python-versions = ">=3.8, < 3.13" +content-hash = "7f32ca09e74c63c0941c4594366ac30cc5c4c831a7d782e3bfc0ab568cb7d2bf" diff --git a/pyproject.toml b/pyproject.toml index bdee5e37..6c5150ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ pandas = "^2.0.0" georinex = "<=1.16.1" unlzw3 = "^0.2.1" pynmea2 = "^1.18.0" -pytest = ">=7.2" +pytest = ">=7.2, < 8.0" scipy = "^1.7.3" jupyter = "^1.0.0" notebook = "^7.0.0" diff --git a/requirements.txt b/requirements.txt index 255d7c89..a852be42 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,132 +1,135 @@ -anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" -appnope==0.1.3 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") -argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" -argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" -arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.12" -attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.12" -babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" -backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" -beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" -bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -certifi==2023.11.17 ; python_version >= "3.8" and python_version < "3.12" -cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" -comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" -cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" -debugpy==1.8.0 ; python_version >= "3.8" and python_version < "3.12" -decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" +anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.13" +appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.13" and (platform_system == "Darwin" or sys_platform == "darwin") +argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.13" +argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.13" +arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.13" +async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.13" +attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.13" +babel==2.14.0 ; python_version >= "3.8" and python_version < "3.13" +backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.13" +beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.13" +bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.13" +certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.13" +cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "win32" +comm==0.2.1 ; python_version >= "3.8" and python_version < "3.13" +contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.13" +cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.13" +debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.13" +decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.13" +defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" -executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" -fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.47.2 ; python_version >= "3.8" and python_version < "3.12" -fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" -georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" -hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" -idna==3.6 ; python_version >= "3.8" and python_version < "3.12" +executing==2.0.1 ; python_version >= "3.8" and python_version < "3.13" +fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.13" +fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.13" +fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.13" +georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.13" +h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" +hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.13" +httpcore==1.0.3 ; python_version >= "3.8" and python_version < "3.13" +httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.13" +idna==3.6 ; python_version >= "3.8" and python_version < "3.13" importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.10" -importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" -iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.0 ; python_version >= "3.8" and python_version < "3.12" -ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" -ipywidgets==8.1.1 ; python_version >= "3.8" and python_version < "3.12" -isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" -jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" -jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" -json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" -jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" -jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.12" -jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" -jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" -jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-widgets==3.0.9 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.0.11 ; python_version >= "3.8" and python_version < "3.12" -kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" -markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "3.12" -matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" -matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" -nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.14.2 ; python_version >= "3.8" and python_version < "3.12" -nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" -ncompress==1.0.1 ; python_version >= "3.8" and python_version < "3.12" -nest-asyncio==1.5.9 ; python_version >= "3.8" and python_version < "3.12" -notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.0.7 ; python_version >= "3.8" and python_version < "3.12" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" -overrides==7.4.0 ; python_version >= "3.8" and python_version < "3.12" -packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" -pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" -pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" -parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" -pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" -pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.13" +iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.13" +ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.13" +ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.13" +ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.13" +isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.13" +jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.13" +jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.13" +json5==0.9.14 ; python_version >= "3.8" and python_version < "3.13" +jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.13" +jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.13" +jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.13" +jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.13" +jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.13" +jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.13" +jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.13" +jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.13" +jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.13" +jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.13" +jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.13" +jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.13" +jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.13" +kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.13" +kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.13" +markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" +matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.13" +matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.13" +mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" +nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.13" +nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.13" +nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.13" +ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.13" +nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.13" +notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.13" +notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.13" +numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.13" +overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.13" +packaging==23.2 ; python_version >= "3.8" and python_version < "3.13" +pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.13" +pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.13" +parso==0.8.3 ; python_version >= "3.8" and python_version < "3.13" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" +pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.13" +pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.13" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.1.0 ; python_version >= "3.8" and python_version < "3.12" -plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" -pluggy==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" -prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" -psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") -pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" -pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" -pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" -pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" -pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.12" -python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" -python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" -pytz==2023.3.post1 ; python_version >= "3.8" and python_version < "3.12" -pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" -pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" -pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" -qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" -qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.32.1 ; python_version >= "3.8" and python_version < "3.12" -requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" -rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" -rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" -rpds-py==0.17.1 ; python_version >= "3.8" and python_version < "3.12" -scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" -send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.12" -stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.12" -terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.12" -tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.13" +plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.13" +pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.13" +prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.13" +psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.13" +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") +pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.13" +pycparser==2.21 ; python_version >= "3.8" and python_version < "3.13" +pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.13" +pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.13" +pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.13" +pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.13" +pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.13" +python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.13" +python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.13" +pytz==2024.1 ; python_version >= "3.8" and python_version < "3.13" +pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.13" +pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.13" and os_name == "nt" +pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.13" +pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.13" +qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.13" +qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.13" +referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.13" +requests==2.31.0 ; python_version >= "3.8" and python_version < "3.13" +rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.13" +rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.13" +rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.13" +scipy==1.9.3 ; python_version >= "3.8" and python_version < "3.13" +send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.13" +six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.13" +stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.13" +tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.13" +terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.13" +tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.13" tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11" -tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" -traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" -types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" +tornado==6.4 ; python_version >= "3.8" and python_version < "3.13" +traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.13" +types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.13" typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2023.4 ; python_version >= "3.8" and python_version < "3.12" -unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.1.0 ; python_version >= "3.8" and python_version < "3.12" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" -webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" -webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" -websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" -widgetsnbextension==4.0.9 ; python_version >= "3.8" and python_version < "3.12" -xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" +tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.13" +unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.13" +uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.13" +urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.13" +wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" +webcolors==1.13 ; python_version >= "3.8" and python_version < "3.13" +webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.13" +websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.13" +widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.13" +xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.13" zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.10" From 2023df11470b9c639892041533035f379e4d9c4e Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 13:26:34 -0800 Subject: [PATCH 10/40] Updated index and readme.md --- README.md | 37 +++++++++++++++++++++--------- docs/source/index.rst | 40 +++++++++++++++++++++++---------- docs/source/troubleshooting.rst | 9 ++++++++ 3 files changed, 63 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 58564d59..94e4c34e 100644 --- a/README.md +++ b/README.md @@ -9,25 +9,31 @@ gnss_lib_py `gnss_lib_py` is a modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates. -It also provides an intuitive and modular framework allowing users to +It also provides an intuitive and modular framework which allows users to quickly prototype, implement, and visualize GNSS algorithms. `gnss_lib_py` is modular in the sense that multiple types of -algorithms can be easily exchanged for each other and extendable in -facilitating user-specific extensions of existing implementations. +algorithms or datasets can be easily exchanged for each other. +It is extendable in facilitating user-specific extensions of existing +implementations. -satellite skyplot +Skyplot of GNSS satellite movement over time `gnss_lib_py` contains parsers for common file types used for storing GNSS measurements, benchmark algorithms for processing measurements into state estimates and visualization tools for measurements and state estimates. The modularity of `gnss_lib_py` is made possibly by the unifying -`NavData` class, which contains methods to add, remove and modify -numeric and string data consistently. -We provide standard row names for `NavData` elements on the +`NavData` class, with accompanying standard nomenclature, which can be +found in the [reference page](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html). -These names ensure cross compatibility between different datasets and -algorithms. +The standard nomenclature ensures cross compatibility between different +datasets and algorithms. + +`NavData` combines the readability of `pandas.DataFrame` with `numpy.ndarray` +allowing for easy and fast access of numbers or strings. +We also provide functionality to add, remove and modify numeric and +string data consistently along with commonly needed supporting +functionality. Documentation ------------- @@ -51,7 +57,7 @@ Code Organization ├── parsers/ # Data parsers ├── utils/ # GNSS and common utilities ├── visualizations/ # plotting functions - └── __init__.py + └── __init__.py # Initialize gnss_lib_py ├── notebooks/ # Interactive Jupyter notebooks ├── tutorials/ # Notebooks with tutorial code ├── results/ # Location for result images/files @@ -61,7 +67,7 @@ Code Organization ├── parsers/ # Tests for files in parsers ├── utils/ # Tests for files in utils ├── visualizations/ # Tests for files in visualizations - └── test_gnss_lib_py.py # High level checks for repository + └── conftest.py # Common methods for tests ├── CONTRIBUTORS.md # List of contributors ├── build_docs.sh # Bash script to build docs ├── poetry.lock # Poetry specific Lock file @@ -78,6 +84,11 @@ In the directory organization above: * Extended Kalman Filter * Calculating pseudorange residuals * Fault detection and exclusion + + * The `navdata` directory defines the `NavData` class, its methods, and + functions that operate on `NavData` instances, like `sort`, `concat`, + and others. + * The data parsers in the `parsers` directory allow for either loading GNSS data into `gnss_lib_py`'s unifying `NavData` class or parsing precise ephemerides data. @@ -96,6 +107,10 @@ In the directory organization above: visualizations, calculating multi-GNSS satellite PVT information, satellite simulation, file operations, etc. + * The `visualizations` directory contains methods for plotting quantities + in `NavData`. It includes methods to plot metrics, positions on maps, + and skyplots of satellites visible from the receiver position. + Installation ------------ diff --git a/docs/source/index.rst b/docs/source/index.rst index 0dd03da0..66b05899 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,27 +13,34 @@ gnss_lib_py :code:`gnss_lib_py` is a modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates. -It also provides an intuitive and modular framework allowing users to +It also provides an intuitive and modular framework which allows users to quickly prototype, implement, and visualize GNSS algorithms. :code:`gnss_lib_py` is modular in the sense that multiple types of -algorithms can be easily exchanged for each other and extendable in -facilitating user-specific extensions of existing implementations. +algorithms or datasets can be easily exchanged for each other. +It is extendable in facilitating user-specific extensions of existing +implementations. .. image:: img/skyplot.png :width: 400 - :alt: skyplot of GNSS movement over time + :alt: Skyplot of GNSS satellite movement over time :code:`gnss_lib_py` contains parsers for common file types used for storing GNSS measurements, benchmark algorithms for processing measurements into state estimates and visualization tools for measurements and state estimates. The modularity of :code:`gnss_lib_py` is made possibly by the unifying -:code:`NavData` class, which contains methods to add, remove and modify -numeric and string data consistently. -We provide standard row names for :code:`NavData` elements on the -:ref:`reference page`. -These names ensure cross compatibility between different datasets and -algorithms. +:code:`NavData` class, with accompanying standard nomenclature, which can be +found in the :ref:`reference page`. +The standard nomenclature ensures cross compatibility between different +datasets and algorithms. + +:code:`NavData` combines the readability of :code:`pandas.DataFrame` +with :code:`numpy.ndarray` allowing for easy and fast access of numbers +or strings. +We also provide functionality to add, remove and modify numeric and +string data consistently along with commonly needed supporting +functionality. + Source Code ----------- @@ -61,7 +68,7 @@ Code Organization ├── parsers/ # Data parsers ├── utils/ # GNSS and common utilities ├── visualizations/ # plotting functions - └── __init__.py + └── __init__.py # Initialize gnss_lib_py ├── notebooks/ # Interactive Jupyter notebooks ├── tutorials/ # Notebooks with tutorial code ├── results/ # Location for result images/files @@ -71,7 +78,7 @@ Code Organization ├── parsers/ # Tests for files in parsers ├── utils/ # Tests for files in utils ├── visualizations/ # Tests for files in visualizations - └── test_gnss_lib_py.py # High level checks for repository + └── conftest.py # Common methods for tests ├── CONTRIBUTORS.md # List of contributors ├── build_docs.sh # Bash script to build docs ├── poetry.lock # Poetry specific Lock file @@ -88,6 +95,11 @@ In the directory organization above: * Extended Kalman Filter * Calculating pseudorange residuals * Fault detection and exclusion + + * The `navdata` directory defines the `NavData` class, its methods, and + functions that operate on `NavData` instances, like `sort`, `concat`, + and others. + * The data parsers in the :code:`parsers` directory allow for loading GNSS data into :code:`gnss_lib_py`'s unifying :code:`NavData` class or parsing precise ephemerides data. @@ -106,6 +118,10 @@ In the directory organization above: visualizations, calculating multi-GNSS satellite PVT information, satellite simulation, file operations, etc. + * The `visualizations` directory contains methods for plotting quantities + in `NavData`. It includes methods to plot metrics, positions on maps, + and skyplots of satellites visible from the receiver position. + Installation ------------ diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst index 7d19cb2c..ebb9cfa9 100644 --- a/docs/source/troubleshooting.rst +++ b/docs/source/troubleshooting.rst @@ -15,6 +15,15 @@ on Windows). Then you should be able to run the notebooks in VS Code. Note: may need to run :code:`poetry add jupyter notebook` in order for poetry env to be visible in list of VS Code kernels. +`NavData` method returns `None` +------------------------------- + +If you run functions like `sort` or `interpolate` on NavData and the +function returns `None`, check the value of the `inplace` attribute. +If `inplace=True`, the input `NavData` instance has been modified and the +function will return `None`. Change to `inplace=False` to return a new +`NavData` instance with the modified data. + No module named * ----------------- From 319e3253940af0a501d3e30497c734154b4514aa Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 15:40:01 -0800 Subject: [PATCH 11/40] Minor updates to documentation --- docs/source/conf.py | 2 +- docs/source/contributing/contributing.rst | 12 ++- docs/source/contributing/development.rst | 49 +++++++---- docs/source/contributing/documentation.rst | 54 +++++++++++-- docs/source/contributing/testing.rst | 58 ++++++++----- docs/source/index.rst | 4 +- docs/source/install.rst | 37 +++++++++ docs/source/requirements.txt | 94 ++++++++++++++-------- requirements.txt | 89 +++++++++++++------- 9 files changed, 288 insertions(+), 111 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index a5f7b429..670d0004 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -37,7 +37,7 @@ # -- Project information ----------------------------------------------------- project = 'gnss_lib_py' -copyright = '2022, Stanford NAV Lab' +copyright = '2024, Stanford NAV Lab' author = 'Ashwin Kanhere, Derek Knowles' diff --git a/docs/source/contributing/contributing.rst b/docs/source/contributing/contributing.rst index 8626bc25..bbbca8dd 100644 --- a/docs/source/contributing/contributing.rst +++ b/docs/source/contributing/contributing.rst @@ -16,12 +16,15 @@ In your issue, please include: * Your operating system name and version. * Any details about your local setup that might be helpful in troubleshooting. - * A minimal working example to reproduce the bug. + * A minimal working example (MWE) to reproduce the bug. An MWE + helps us reproduce the bug and troubleshoot the problem. + For more details on how to create an MWE, see + `this Stack Overflow guide `. Feature requests and feedback ----------------------------- -The best way to send feedback is to file an issue on +The best way to any send feedback is to file an issue on `GitHub `__. If you are proposing a feature: @@ -31,8 +34,9 @@ If you are proposing a feature: * Keep the scope as narrow as possible, which will make it easier to implement. * This is a volunteer driven project and most contributions are a - result of other research projects. If you implement your requested - feature and submit a pull request, we will incorporate it. + result of other research projects. We welcome outside implementations + of additional features. If you implement your requested feature + and submit a pull request, we will incorporate it. Additional Contributing Pages ----------------------------- diff --git a/docs/source/contributing/development.rst b/docs/source/contributing/development.rst index a8156e9b..f7f0ea99 100644 --- a/docs/source/contributing/development.rst +++ b/docs/source/contributing/development.rst @@ -22,8 +22,12 @@ Standard GitHub Workflow 2. If using poetry, follow the :ref:`developer install instructions` to install pyenv, poetry, and the python dependencies. If using - :code:`pip` or :code:`conda` for package management instead, use - :code:`pip install -r requirements.txt` to install dependencies. + :code:`pip` or :code:`conda` for package management instead, install + dependencies using + + .. code-block:: bash + + pip install -r requirements.txt 3. Create a local branch: @@ -36,16 +40,21 @@ Standard GitHub Workflow If the feature branch includes new functionality, you must also: - * update the "Code Organization" section of the :code:`README.md` - * update the "Code Organization" section of - :code:`docs/source/index.rst` to match the :code:`README.md` * add a section in the appropriate tutorial notebook located in :code:`notebooks/tutorials/*` * if the feature is in a new file, import the file in the `module's import block `__. + If directory level changes were made, you must also: + + * update the "Code Organization" section of the :code:`README.md` + * update the "Code Organization" section of + :code:`docs/source/index.rst` to match the :code:`README.md` + + 5. Add tests for the newly added code and ensure the new code is covered. - See the :ref:`Testing` section for more details. + See the :ref:`Testing` and :ref:`Coverage` pages + for more details. 6. When you're done making changes run all the tests with: @@ -93,9 +102,10 @@ Standard GitHub Workflow in the pull request, select the latest version release branch :code:`vX.Y.Z` (with the highest number of all such branches). *Do not target the* :code:`main` *branch in your pull request.* In the pull request, - add a code review request for a current maintainer of the repository. - The reviewers might add comments to ensure compliance with the rest - of the code. + add a code review request for a current maintainer of the repository + and provide a brief description of the implemented features. + The reviewers might add comments or suggest changes to ensure + compliance with the rest of the code. .. _navlab_dev: @@ -119,14 +129,18 @@ NAVLab GitHub Workflow If the feature branch includes new functionality, you must also: - * update the "Code Organization" section of the :code:`README.md` - * update the "Code Organization" section of - :code:`docs/source/index.rst` to match the :code:`README.md` * add a section in the appropriate tutorial notebook located in :code:`notebooks/tutorials/*` * if the feature is in a new file, import the file in the `module's import block `__. + If directory level changes were made, you must also: + + * update the "Code Organization" section of the :code:`README.md` + * update the "Code Organization" section of + :code:`docs/source/index.rst` to match the :code:`README.md` + + 5. Add tests for the newly added code and ensure the new code is covered. See the :ref:`Testing` section for more details. @@ -214,19 +228,22 @@ Pull Request Review Workflow 3. Verify that documentation is complete and updated if necessary. See the :ref:`Documentation` section for more details on what is expected. - If the feature branch included new functionality, the following should have also been updated: - * the "Code Organization" section of the :code:`README.md` - * the "Code Organization" section of - :code:`docs/source/index.rst` to match the :code:`README.md` * the appropriate tutorial notebook located in :code:`notebooks/tutorials/*` with a simple example of the new functionality * if a new file was created, it should likely be imported in the `module's import block `__. + If the directory structure was modified, the following should also have + been updated: + + * the "Code Organization" section of the :code:`README.md` + * the "Code Organization" section of + :code:`docs/source/index.rst` to match the :code:`README.md` + 4. Verify that all tests run on your system: .. code-block:: bash diff --git a/docs/source/contributing/documentation.rst b/docs/source/contributing/documentation.rst index 3cdbd262..a41012fa 100644 --- a/docs/source/contributing/documentation.rst +++ b/docs/source/contributing/documentation.rst @@ -16,9 +16,9 @@ We use `numpy docstrings `__ for all documentation within this package. You can see some example numpy docstrings `here `__. -In addition to class and function docstrings, any code -whose behaviour or purpose is not obvious, should be independently -commented. +In addition to class and function docstrings, any line of code +whose behaviour or purpose is not obvious, should be have a brief explanation +near the code using comments. Additional documentation guidelines ----------------------------------- @@ -31,6 +31,11 @@ titled References and include the reference as shown below in the docstring. (Remove the block comment flag when inserting in already written docstrings) +The same reference number cannot be used across multiple methods or classes +in the same file. If you want to use the same reference in multiple methods, +you will have to update the reference number each time that the reference +is added. + .. code-block:: python """ @@ -53,14 +58,22 @@ following: * :code:`bool` * :code:`int` * :code:`float` - * :code:`list` (include shape in the description) + * :code:`list` (include type of each list element in the description) * :code:`dict` (include key type and value type in description) * :code:`np.ndarray` (include shape in the description). Where possible, - single axis arrays should be rows and time should be across - the columns + single axis arrays should be rows and time/different measurements + should be across the columns * :code:`pd.DataFrame` * :code:`gnss_lib_py.navdata.navdata.NavData` +If methods can accept/return multiple types of values, combine them in the +parameter/return type :code:`parameter_name : list/np.ndarray` and provide +additional details in the description. + +Similarly, if a method accepts/returns a particular combination of types, +mention them in the type like :code:`parameter_name : tuple of np.ndarray` +and provide details in the description. + PEP 8 Style Guide ----------------- We also follow the `PEP 8 Python Style Guide @@ -120,14 +133,25 @@ Citations should be added on a function by function basis. If a function is built on the implementation from another repository, include the license and attribution as required by the original author. +Use the :code:`Notes` and :code:`References` sections in the docstring +to ensure proper citations, links, and explanations are provided. + Miscellaneous Style Notes ------------------------- - * Vectors (lists, np.ndarrays, etc.) for a single time instance + * Vectors (lists, np.ndarrays, etc.) for a single time/measurement instance should be column vectors. * Collections of vectors should be 2D structures with each column representing the value of the vector for a particular time. In this convention, time varies across columns while physical quantities vary across rows. + * When there are multiple measurements per time instance, there should + be a row specifying the time of each measurement. Each measurement + instance should be a column vector. Different types of information + should be rows. Eg., for 10 measurements across 4 time instances, + containing 6 types of information, the shape of the data should be + :code:`(6, 40)`. Ideally, the first 10 columns should correspond to + the same time instance, the next 10 for the next time instance, and + so on. * Assert errors and tell the user what caused that particular error. For example, if a column vector is passed instead of a row vector, the assertion error message should say that a row vector was @@ -135,7 +159,7 @@ Miscellaneous Style Notes useful for performing such checks. Please check if an existing function performs the desired task before adding new functions. * Write units in brackets in comments and docstrings. For example, - [m]. + [m] for values of distance/position and [m/s] for velocities. Adding to Documentation Pages @@ -151,6 +175,9 @@ documentation for any syntax queries. Building Documentation ---------------------- +Updating Documentation Configuration +++++++++++++++++++++++++++++++++++++ + If you changed any directory names in the repository: * update :code:`docs/conf.py` to reflect correct directory names @@ -166,6 +193,9 @@ If you wish to add python dependencies: If you wish to remove python dependencies, use :code:`poetry remove package`. +Building Documentation Locally +++++++++++++++++++++++++++++++ + If you're using :code:`poetry`, after the above, you can run the helper tool from the main directory that will automatically rebuild references and build a local HTML copy of the documentation: @@ -180,3 +210,11 @@ a browser to view your local copy. If you encounter errors while using the :code:`build_docs.sh` tool, refer to previously documented solutions in the :ref:`troubleshooting page `. + +Building Documentation on ReadTheDocs ++++++++++++++++++++++++++++++++++++++ + +Documentation on readthedocs.com is automatically built when a new pull +request is submitted through our GitHub Actions. Check the corresponding +branch of the documentation after you have submitted a pull request +`here `. diff --git a/docs/source/contributing/testing.rst b/docs/source/contributing/testing.rst index 533fd8ad..c62a4dc3 100644 --- a/docs/source/contributing/testing.rst +++ b/docs/source/contributing/testing.rst @@ -24,16 +24,6 @@ A brief description of the naming convention and commonly used features is also included below. For more details, refer to the `pytest documentation `__. -Naming convention and location of tests -+++++++++++++++++++++++++++++++++++++++ - - * Tests are placed outside the source code, in the :code:`tests/` - diretory - * The structure of the tests directory is expected to mirror the source - directory. Eg. tests for functions in :code:`gnss_lib_py/utils/file_name.py` - must be placed in :code:`tests/utils/test_file_name.py` - * Following the :code:`pytest` naming convention, test functions are - named :code:`test_function` Running tests +++++++++++++ @@ -54,10 +44,26 @@ Running tests .. code-block:: bash - poetry run tests/folder_name/test_file_name.py::test_function + poetry run pytest tests/folder_name/test_file_name.py::test_function -Convention for writing tests -++++++++++++++++++++++++++++ + +Naming convention and location of tests ++++++++++++++++++++++++++++++++++++++++ + + * Tests are placed outside the source code, in the :code:`tests/` + diretory + * The structure of the tests directory is expected to mirror the source + directory. Eg. tests for functions in :code:`gnss_lib_py/utils/file_name.py` + must be placed in :code:`tests/utils/test_file_name.py` + * Following the :code:`pytest` naming convention, test functions are + named :code:`test_function` + * Fixtures should be named as :code:`fixture_name` where :code:`name` is + the name of the fixture, defined using the :code:`@pytest.fixture(name="name")` + decorator before the fixture definition. More details on expected + uses of fixtures can be found in the `fixtures`_ section. + +Conventions for writing tests ++++++++++++++++++++++++++++++ * Most tests in :code:`gnss_lib_py` are unit tests. Unit tests use a known input-output pair to verify that the function @@ -69,16 +75,30 @@ Convention for writing tests recommend using the in-built :code:`assert` statement, numpy's testing functions, that are of the form :code:`np.testing.assert*` and any additional module level testing functions, like - :code:`pd.testing.*assert*` for pandas + :code:`pd.testing.*assert*` for pandas. - * While writing your tests, you might need to use certain fixed - objects (tuples, strings etc.). - Use :code:`@pytest.fixture` to define such objects. + * Use _`fixtures` :code:`@pytest.fixture` to define certain fixed + objects (tuples, strings etc.) that might be required by test functions. Fixtures can be named and these names can be used to access fixture outputs like regular variables * Fixtures can also be composed to create a fixture of a fixture. + * :code:`gnss_lib_py` already uses numerous fixtures for testing. Fixtures + that are relevant only to tests in a single file are defined in that file. + Fixtures that are used across multiple files are defined in + :code:`conftest.py` in the testing directory :code:`gnss_lib_py/tests/`. + + * Before defining a new fixture, check to see if the fixture exists in + :code:`conftest.py`. If it does, you can refer to the fixture by name + in your test function and use without having to define any additional + methods. + + * Existing fixtures from :code:`conftest.py` also define locations of + test files or common test data that can be used for your own fixtures. + Please check these existing fixtures to enable quick development of + your own. + * If you want to test the same function beheaviour for multiple input-output pairs, you can use the :code:`pytest.mark.parameterize` function decorator before the test @@ -97,8 +117,8 @@ Coverage Reports ---------------- In general, you should not submit new functionality without also providing corresponding tests for the code. -Visual testing coverage -reports can be found at the top of the GitHub repository. +Visual testing coverage reports can be found at the top of the GitHub +repository. Similar reports can be generated locally, in terminal, with the following commands: diff --git a/docs/source/index.rst b/docs/source/index.rst index 66b05899..2c8cde7d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -30,7 +30,7 @@ measurements into state estimates and visualization tools for measurements and state estimates. The modularity of :code:`gnss_lib_py` is made possibly by the unifying :code:`NavData` class, with accompanying standard nomenclature, which can be -found in the :ref:`reference page`. +found in the :ref:`reference page`. The standard nomenclature ensures cross compatibility between different datasets and algorithms. @@ -96,7 +96,7 @@ In the directory organization above: * Calculating pseudorange residuals * Fault detection and exclusion - * The `navdata` directory defines the `NavData` class, its methods, and + * The `navdata` directory defines the `NavData` class, its methods, and functions that operate on `NavData` instances, like `sort`, `concat`, and others. diff --git a/docs/source/install.rst b/docs/source/install.rst index f4e3b059..07624128 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -14,6 +14,43 @@ and 3.11 in the latest Ubuntu, MacOS and Windows versions. :code:`gnss_lib_py` was originally developed in Python 3.8.9 in Ubuntu 20/22 and Ubuntu 20 for WSL2. +Use on Google Colab +------------------- + +|colab| + +.. |colab| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/drive/1DYfuiM5ipz0B-lgjKYcL1Si-V4jNBEac?usp=sharing + +We provide support to run :code:`gnss_lib_py` on Google Colab. To run on +Google Colab, use the following command to install :code:`gnss_lib_py`: + +.. code-block:: bash + + %pip install gnss-lib-py --quiet --progress-bar off + +To include :code:`gnss_lib_py` in the Google Colab environment, use the following +command + +.. code-block:: python + + import gnss_lib_py as glp + +To use :code:`gnss_lib_py` from a specific branch, use the following code block +to clone :code:`gnss_lib_py`, checkout the desired branch, and install: + +.. code-block:: bash + + import os + os.makedirs("/content/lib", exist_ok=True) + %cd /content/lib + !pip install --upgrade pip --quiet --progress-bar off + !git clone https://github.com/Stanford-NavLab/gnss_lib_py.git --quiet + %cd gnss_lib_py + !git checkout desired-branch-name-here CHANGE TO DESIRED BRANCH + !git pull + !pip install -e . --quiet --progress-bar off + Standard Installation --------------------- diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 6b6dee9e..6ccfd8f5 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -1,6 +1,6 @@ alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.12" anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" -appnope==0.1.3 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") +appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.12" @@ -12,37 +12,51 @@ babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -certifi==2023.11.17 ; python_version >= "3.8" and python_version < "3.12" +build==1.0.3 ; python_version >= "3.8" and python_version < "3.12" +cachecontrol[filecache]==0.13.1 ; python_version >= "3.8" and python_version < "3.12" +certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.12" cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or platform_system == "Windows") +cleo==2.1.0 ; python_version >= "3.8" and python_version < "3.12" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or platform_system == "Windows" or os_name == "nt") comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" -coverage[toml]==7.4.0 ; python_version >= "3.8" and python_version < "3.12" +coverage[toml]==7.4.1 ; python_version >= "3.8" and python_version < "3.12" +crashtest==0.4.1 ; python_version >= "3.8" and python_version < "3.12" +cryptography==42.0.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" -debugpy==1.8.0 ; python_version >= "3.8" and python_version < "3.12" +debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.12" decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" -dill==0.3.7 ; python_version >= "3.8" and python_version < "3.12" +dill==0.3.8 ; python_version >= "3.8" and python_version < "3.12" +distlib==0.3.8 ; python_version >= "3.8" and python_version < "3.12" docutils==0.18.1 ; python_version >= "3.8" and python_version < "3.12" +dulwich==0.21.7 ; python_version >= "3.8" and python_version < "3.12" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.47.2 ; python_version >= "3.8" and python_version < "3.12" +filelock==3.13.1 ; python_version >= "3.8" and python_version < "3.12" +fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.12" fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" +h11==0.14.0 ; python_version >= "3.8" and python_version < "3.12" hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" +httpcore==1.0.2 ; python_version >= "3.8" and python_version < "3.12" +httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.12" idna==3.6 ; python_version >= "3.8" and python_version < "3.12" imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.12" -importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.10" +importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.12" importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.0 ; python_version >= "3.8" and python_version < "3.12" +installer==0.7.0 ; python_version >= "3.8" and python_version < "3.12" +ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.12" ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" -ipywidgets==8.1.1 ; python_version >= "3.8" and python_version < "3.12" +ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.12" isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" isort==5.13.2 ; python_version >= "3.8" and python_version < "3.12" +jaraco-classes==3.3.1 ; python_version >= "3.8" and python_version < "3.12" jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" +jeepney==0.8.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" @@ -54,48 +68,55 @@ jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.1 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.12" jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-widgets==3.0.9 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.0.11 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.12" kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" +keyring==24.3.0 ; python_version >= "3.8" and python_version < "3.12" kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "3.12" -markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "3.12" +markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.12" matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.12" mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" +more-itertools==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +msgpack==1.0.7 ; python_version >= "3.8" and python_version < "3.12" nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.14.2 ; python_version >= "3.8" and python_version < "3.12" +nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.12" nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" nbsphinx-link==1.3.0 ; python_version >= "3.8" and python_version < "3.12" nbsphinx==0.8.12 ; python_version >= "3.8" and python_version < "3.12" -ncompress==1.0.1 ; python_version >= "3.8" and python_version < "3.12" -nest-asyncio==1.5.9 ; python_version >= "3.8" and python_version < "3.12" +ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.12" +nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.12" notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.0.7 ; python_version >= "3.8" and python_version < "3.12" +notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.12" numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" -overrides==7.4.0 ; python_version >= "3.8" and python_version < "3.12" +overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.12" packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "3.12" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.1.0 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==3.11.0 ; python_version >= "3.8" and python_version < "3.12" plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" -pluggy==1.3.0 ; python_version >= "3.8" and python_version < "3.12" +pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.12" pockets==0.9.1 ; python_version >= "3.8" and python_version < "3.12" +poetry-core==1.8.1 ; python_version >= "3.8" and python_version < "3.12" +poetry-plugin-export==1.6.0 ; python_version >= "3.8" and python_version < "3.12" +poetry==1.7.1 ; python_version >= "3.8" and python_version < "3.12" prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" @@ -103,25 +124,31 @@ pylint-exit==1.2.0 ; python_version >= "3.8" and python_version < "3.12" pylint==2.17.7 ; python_version >= "3.8" and python_version < "3.12" pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" +pyproject-hooks==1.0.0 ; python_version >= "3.8" and python_version < "3.12" pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "3.12" pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.12" +pytest==8.0.0 ; python_version >= "3.8" and python_version < "3.12" python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" -pytz==2023.3.post1 ; python_version >= "3.8" and python_version < "3.12" +pytz==2024.1 ; python_version >= "3.8" and python_version < "3.12" +pywin32-ctypes==0.2.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.32.1 ; python_version >= "3.8" and python_version < "3.12" +rapidfuzz==3.6.1 ; python_version >= "3.8" and python_version < "3.12" +referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.12" +requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.12" requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" -rpds-py==0.17.1 ; python_version >= "3.8" and python_version < "3.12" +rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.12" scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" +secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" +shellingham==1.5.4 ; python_version >= "3.8" and python_version < "3.12" six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.12" @@ -144,19 +171,22 @@ tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" tomli==2.0.1 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.12" tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" -tqdm==4.66.1 ; python_version >= "3.8" and python_version < "3.12" +tqdm==4.66.2 ; python_version >= "3.8" and python_version < "3.12" traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" +trove-classifiers==2024.1.31 ; python_version >= "3.8" and python_version < "3.12" types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2023.4 ; python_version >= "3.8" and python_version < "3.12" +tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.12" unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.1.0 ; python_version >= "3.8" and python_version < "3.12" +urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.12" +virtualenv==20.25.0 ; python_version >= "3.8" and python_version < "3.12" wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" -widgetsnbextension==4.0.9 ; python_version >= "3.8" and python_version < "3.12" +widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.12" wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.12" xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" -zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.10" +xattr==0.10.1 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "darwin" +zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.12" diff --git a/requirements.txt b/requirements.txt index 255d7c89..9b2d0572 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" -appnope==0.1.3 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") +appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.12" @@ -10,32 +10,46 @@ babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -certifi==2023.11.17 ; python_version >= "3.8" and python_version < "3.12" +build==1.0.3 ; python_version >= "3.8" and python_version < "3.12" +cachecontrol[filecache]==0.13.1 ; python_version >= "3.8" and python_version < "3.12" +certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.12" cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" +cleo==2.1.0 ; python_version >= "3.8" and python_version < "3.12" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or os_name == "nt") comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" +crashtest==0.4.1 ; python_version >= "3.8" and python_version < "3.12" +cryptography==42.0.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" -debugpy==1.8.0 ; python_version >= "3.8" and python_version < "3.12" +debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.12" decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" +distlib==0.3.8 ; python_version >= "3.8" and python_version < "3.12" +dulwich==0.21.7 ; python_version >= "3.8" and python_version < "3.12" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.47.2 ; python_version >= "3.8" and python_version < "3.12" +filelock==3.13.1 ; python_version >= "3.8" and python_version < "3.12" +fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.12" fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" +h11==0.14.0 ; python_version >= "3.8" and python_version < "3.12" hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" +httpcore==1.0.2 ; python_version >= "3.8" and python_version < "3.12" +httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.12" idna==3.6 ; python_version >= "3.8" and python_version < "3.12" -importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.10" +importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.12" importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.0 ; python_version >= "3.8" and python_version < "3.12" +installer==0.7.0 ; python_version >= "3.8" and python_version < "3.12" +ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.12" ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" -ipywidgets==8.1.1 ; python_version >= "3.8" and python_version < "3.12" +ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.12" isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" +jaraco-classes==3.3.1 ; python_version >= "3.8" and python_version < "3.12" jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" +jeepney==0.8.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" @@ -47,66 +61,79 @@ jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.1 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.12" jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-widgets==3.0.9 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.0.11 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.12" kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" +keyring==24.3.0 ; python_version >= "3.8" and python_version < "3.12" kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" -markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "3.12" +markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.12" matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" +more-itertools==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +msgpack==1.0.7 ; python_version >= "3.8" and python_version < "3.12" nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.14.2 ; python_version >= "3.8" and python_version < "3.12" +nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.12" nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" -ncompress==1.0.1 ; python_version >= "3.8" and python_version < "3.12" -nest-asyncio==1.5.9 ; python_version >= "3.8" and python_version < "3.12" +ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.12" +nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.12" notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.0.7 ; python_version >= "3.8" and python_version < "3.12" +notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.12" numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" -overrides==7.4.0 ; python_version >= "3.8" and python_version < "3.12" +overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.12" packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" +pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "3.12" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.1.0 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==3.11.0 ; python_version >= "3.8" and python_version < "3.12" plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" -pluggy==1.3.0 ; python_version >= "3.8" and python_version < "3.12" +pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.12" +poetry-core==1.8.1 ; python_version >= "3.8" and python_version < "3.12" +poetry-plugin-export==1.6.0 ; python_version >= "3.8" and python_version < "3.12" +poetry==1.7.1 ; python_version >= "3.8" and python_version < "3.12" prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" +pyproject-hooks==1.0.0 ; python_version >= "3.8" and python_version < "3.12" pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==7.4.4 ; python_version >= "3.8" and python_version < "3.12" +pytest==8.0.0 ; python_version >= "3.8" and python_version < "3.12" python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" -pytz==2023.3.post1 ; python_version >= "3.8" and python_version < "3.12" +pytz==2024.1 ; python_version >= "3.8" and python_version < "3.12" +pywin32-ctypes==0.2.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.32.1 ; python_version >= "3.8" and python_version < "3.12" +rapidfuzz==3.6.1 ; python_version >= "3.8" and python_version < "3.12" +referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.12" +requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.12" requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" -rpds-py==0.17.1 ; python_version >= "3.8" and python_version < "3.12" +rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.12" scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" +secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" +shellingham==1.5.4 ; python_version >= "3.8" and python_version < "3.12" six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.12" @@ -115,18 +142,22 @@ tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.12" terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.12" tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11" +tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.12" tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" +trove-classifiers==2024.1.31 ; python_version >= "3.8" and python_version < "3.12" types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2023.4 ; python_version >= "3.8" and python_version < "3.12" +tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.12" unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.1.0 ; python_version >= "3.8" and python_version < "3.12" +urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.12" +virtualenv==20.25.0 ; python_version >= "3.8" and python_version < "3.12" wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" -widgetsnbextension==4.0.9 ; python_version >= "3.8" and python_version < "3.12" +widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.12" xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" -zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.10" +xattr==0.10.1 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "darwin" +zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.12" From 56549e62083209b69729c0e2c57058d8ca7eb37f Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 21:15:47 -0800 Subject: [PATCH 12/40] Added constants tutorial --- notebooks/tutorials/utils/constants.ipynb | 41 +++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/notebooks/tutorials/utils/constants.ipynb b/notebooks/tutorials/utils/constants.ipynb index e9cc4bdf..d95976d2 100644 --- a/notebooks/tutorials/utils/constants.ipynb +++ b/notebooks/tutorials/utils/constants.ipynb @@ -14,11 +14,30 @@ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/utils/constants.ipynb)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gnss_lib_py as glp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Standard values for constants required to process GNSS measurements are available in `utils/constants.py`.\n", + "These constant values are as recommended by Interface Control Documents for constellations\n", + "or by dataset specific documentation." + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Load `gnss_lib_py` into the Python workspace" + "To use any of these constants, you can refer to them as `glp.CONSTANT`.\n", + "For example, to use the speed of light use:" ] }, { @@ -27,7 +46,25 @@ "metadata": {}, "outputs": [], "source": [ - "import gnss_lib_py as glp" + "print(f'The speed of light is {glp.C} m/s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A list of all available constants has been rendered below for easy reference" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Code\n", + "\n", + "Code(filename='../../../gnss_lib_py/utils/constants.py', language='python')" ] } ], From b5167fc357240232a57dd0a2c7c1f937eb06d718 Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 21:48:08 -0800 Subject: [PATCH 13/40] Added tutorial for using local time zones --- .../tutorials/utils/time_conversions.ipynb | 60 ++++++++++++++++++- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/notebooks/tutorials/utils/time_conversions.ipynb b/notebooks/tutorials/utils/time_conversions.ipynb index 172379a4..e648b9ea 100644 --- a/notebooks/tutorials/utils/time_conversions.ipynb +++ b/notebooks/tutorials/utils/time_conversions.ipynb @@ -21,9 +21,14 @@ "id": "07f3d8f4", "metadata": {}, "source": [ - "Time conversion utilities exist between the four modes of GPS Week and time of week in seconds, GPS milliseconds since start of GPS Epoch, Unix milliseconds since start of unix epoch, and Python datetime objects (timezone assumed to be UTC if none provided).\n", + "Time conversion utilities exist between the four modes of time that we use in `gnss_lib_py`.\n", + "The four are:\n", + "1. GPS Week since epoch start and time of week in seconds\n", + "2. GPS milliseconds since start of GPS Epoch\n", + "3. Unix milliseconds since start of unix epoch \n", + "4. Python datetime objects (timezone assumed to be UTC if none provided).\n", "\n", - "Functionality exists for all 12 combinations between the four time instances, but here we show just one example of looping through each instance time." + "Functionality exists for all 12 combinations of conversions between the four time instances, but here we show just a few examples. Other functionality is available in `gnss_lib_py/utils/time_conversions.py`." ] }, { @@ -53,7 +58,7 @@ "outputs": [], "source": [ "time_now = datetime.now(tz=timezone.utc)\n", - "time_now\n", + "print(f'Datetime {time_now}')\n", "\n", "# convert datetime to GPS week and GPS time of week\n", "gps_week, gps_tow = glp.datetime_to_tow(time_now)\n", @@ -68,6 +73,55 @@ "print(f\"UNIX milliseconds: {unix_millis}\")" ] }, + { + "cell_type": "markdown", + "id": "809766a0", + "metadata": {}, + "source": [ + "In many cases, the timezone attribute is required. If it is not present, conversion functions will assume that the timezone is UTC and add the timezone information after raising a warning." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23f504b3", + "metadata": {}, + "outputs": [], + "source": [ + "local_time_without_tz = datetime.now()\n", + "print(f'Datetime without timezone {local_time_without_tz}')\n", + "gps_millis_without_tz = glp.datetime_to_gps_millis(local_time_without_tz)\n", + "\n", + "print(f\"GPS milliseconds without timezone: {gps_millis_without_tz}\")" + ] + }, + { + "cell_type": "markdown", + "id": "2e5b351a", + "metadata": {}, + "source": [ + "As seen by the example above, `datetime.now()` returns time without time zone information but in the local time zone.\n", + "Time converstion functions assume that this time is in UTC time zone even when it is not and users should be careful about what timezone their input time is in before converting it.\n", + "To ensure that the correct time zone is being used, use the `pytz` module to assign the right time zone as shown below.\n", + "\n", + "If you are using `Python>=3.9`, you can use the inbuilt `zoneinfo.ZoneInfo` class instead of `pytz.timezone` as well." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d4b207a", + "metadata": {}, + "outputs": [], + "source": [ + "import pytz\n", + "local_time_without_tz = datetime.now()\n", + "local_time_with_tz = local_time_without_tz.replace(tzinfo=pytz.timezone(\"America/Los_Angeles\"))\n", + "print('Datetime with timezone', local_time_with_tz)\n", + "gps_millis_local_time = glp.datetime_to_gps_millis(local_time_with_tz)\n", + "print(f\"GPS milliseconds with local timezone: {gps_millis_local_time}\")" + ] + }, { "cell_type": "markdown", "id": "a147a343", From f25baef654d218c55aac783d71ad15a628e8fbe1 Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 22:07:36 -0800 Subject: [PATCH 14/40] Minor tutorial updates --- notebooks/tutorials/parsers/nmea.ipynb | 8 -- notebooks/tutorials/parsers/rinex_obs.ipynb | 5 +- notebooks/tutorials/parsers/smartloc.ipynb | 86 ++++++++++++++++++--- 3 files changed, 80 insertions(+), 19 deletions(-) diff --git a/notebooks/tutorials/parsers/nmea.ipynb b/notebooks/tutorials/parsers/nmea.ipynb index f313932b..1661896c 100644 --- a/notebooks/tutorials/parsers/nmea.ipynb +++ b/notebooks/tutorials/parsers/nmea.ipynb @@ -16,14 +16,6 @@ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stanford-NavLab/gnss_lib_py/blob/main/notebooks/tutorials/parsers/nmea.ipynb)" ] }, - { - "cell_type": "markdown", - "id": "d5632d85", - "metadata": {}, - "source": [ - "Load `gnss_lib_py` into the Python workspace" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/tutorials/parsers/rinex_obs.ipynb b/notebooks/tutorials/parsers/rinex_obs.ipynb index 0757d7cf..724e65da 100644 --- a/notebooks/tutorials/parsers/rinex_obs.ipynb +++ b/notebooks/tutorials/parsers/rinex_obs.ipynb @@ -44,7 +44,10 @@ "measurements.\n", "These measurement files can contain any constellation and each measurement usually contains the pseudorange, carrier phase (or difference from carrier frequency),\n", "doppler, and signal-to-noise ratio measurements.\n", - "In the following lines, we show how to load a ``.o`` file into a NavData instance." + "In the following lines, we show how to load a ``.o`` file into a NavData instance.\n", + "\n", + "Our `RinexObs` class uses the `georinex` module to load Rinex files.\n", + "`georinex` reads through files line by line and so loading large Rinex files with a lot of measurements can be slow." ] }, { diff --git a/notebooks/tutorials/parsers/smartloc.ipynb b/notebooks/tutorials/parsers/smartloc.ipynb index 457b20b8..81b9bfdf 100644 --- a/notebooks/tutorials/parsers/smartloc.ipynb +++ b/notebooks/tutorials/parsers/smartloc.ipynb @@ -42,16 +42,6 @@ "import gnss_lib_py as glp" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "714dbb21", - "metadata": {}, - "outputs": [], - "source": [ - "import gnss_lib_py as glp" - ] - }, { "cell_type": "code", "execution_count": null, @@ -92,6 +82,82 @@ "fig = glp.plot_map(smartloc_data)\n", "fig.show()" ] + }, + { + "cell_type": "markdown", + "id": "e67e36ab", + "metadata": {}, + "source": [ + "We have also implemented some helper functions to process `SmartlocRaw` instances.\n", + "1. NLOS measurements, as specified in the measurements, can be removed easily using the `remove_nlos` method.\n", + "2. The ground truth measurements are in WGS-84 frame of reference by default and they can be converted to ECEF using `calculate_gt_ecef`.\n", + "3. Ground truth velocity and acceleration values are given as a set of local body-frame scalar value, combined with the heading angle of the vehicle. This can be easily converted to ECEF values using `calculate_gt_vel`.\n", + "\n", + "All of these methods create a copy of the `SmartLocRaw` instance, which is a `NavData` instance with the additional rows calculated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6864444", + "metadata": {}, + "outputs": [], + "source": [ + "# Remove NLOS\n", + "import gnss_lib_py.parsers.smartloc as sl\n", + "print('Total measurement instances:', len(smartloc_data))\n", + "smartloc_data_no_nlos = sl.remove_nlos(smartloc_data)\n", + "print('LOS measurement instances', len(smartloc_data_no_nlos))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8109ced0", + "metadata": {}, + "outputs": [], + "source": [ + "# Use wildcard index to show ECEF position row does not exist\n", + "try:\n", + " glp.find_wildcard_indexes(smartloc_data, \"x_*_m\")\n", + "except KeyError as no_row_exp:\n", + " print(no_row_exp)\n", + "\n", + "# Compute ECEF ground truth position and show that row exists\n", + "smartloc_ecef_gt = sl.calculate_gt_ecef(smartloc_data)\n", + "print(glp.find_wildcard_indexes(smartloc_ecef_gt, \"x_*_m\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0188b4ba", + "metadata": {}, + "outputs": [], + "source": [ + "# Use wildcard index to show that ECEF velocity rows do not exist\n", + "try:\n", + " glp.find_wildcard_indexes(smartloc_data, \"vx_*_mps\")\n", + "except KeyError as no_row_exp:\n", + " print(no_row_exp)\n", + "\n", + "# Use wildcard index to show that body frame velocity exists\n", + "print(glp.find_wildcard_indexes(smartloc_data, \"v_*_mps\"))\n", + "\n", + "# Compute ECEF ground truth velocity and verify row exists\n", + "smartloc_vel_gt = sl.calculate_gt_vel(smartloc_data)\n", + "print(glp.find_wildcard_indexes(smartloc_vel_gt, \"vx_*_mps\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9b4dc12", + "metadata": {}, + "outputs": [], + "source": [ + "print(smartloc_data.rows)" + ] } ], "metadata": { From a53d3e5c3107b9394812d42db5173e055514696e Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 22:49:06 -0800 Subject: [PATCH 15/40] Fixed path to constants.py --- notebooks/tutorials/utils/constants.ipynb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/notebooks/tutorials/utils/constants.ipynb b/notebooks/tutorials/utils/constants.ipynb index d95976d2..87d393b5 100644 --- a/notebooks/tutorials/utils/constants.ipynb +++ b/notebooks/tutorials/utils/constants.ipynb @@ -49,6 +49,23 @@ "print(f'The speed of light is {glp.C} m/s')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For more control and to prevent accidentally loading other values or methods, you can also import the constants module and access values from it directly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from gnss_lib_py.utils import constants as consts\n", + "print(f'The speed of light is {consts.C} m/s')" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -63,8 +80,11 @@ "outputs": [], "source": [ "from IPython.display import Code\n", + "import os\n", + "parent_directory = os.path.split(os.getcwd())[0]\n", + "consts_path = os.path.join(os.path.split(glp.__file__)[0], 'utils/constants.py')\n", "\n", - "Code(filename='../../../gnss_lib_py/utils/constants.py', language='python')" + "Code(filename=consts_path, language='python')" ] } ], From 7f607dd6a78872210fcc84d6fbe46ccd9c8f34b3 Mon Sep 17 00:00:00 2001 From: kanhereashwin Date: Wed, 14 Feb 2024 23:13:59 -0800 Subject: [PATCH 16/40] Updated main tutorials file --- docs/source/tutorials/tutorials.rst | 13 ++++++++++++- notebooks/tutorials/parsers/new_parsers.ipynb | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index cf5817ba..d8909304 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -39,6 +39,18 @@ class and its corresponding operations. navdata/tutorials_navdata_notebook navdata/tutorials_operations_notebook +Creating a New Parser +--------------------- + +The parsers tutorials also contain a tutorial on how to create a new +parser that inherits from :code:`NavData` to handle new measurement types +and/or files. + +.. toctree:: + :maxdepth: 2 + + parsers/tutorials_new_parsers_notebook + Parser Tutorials ---------------- @@ -57,7 +69,6 @@ if necessary. parsers/tutorials_rinex_obs_notebook parsers/tutorials_smartloc_notebook parsers/tutorials_sp3_notebook - parsers/tutorials_new_parsers_notebook Algorithm Tutorials ------------------- diff --git a/notebooks/tutorials/parsers/new_parsers.ipynb b/notebooks/tutorials/parsers/new_parsers.ipynb index 3e7e2344..dead6f8c 100644 --- a/notebooks/tutorials/parsers/new_parsers.ipynb +++ b/notebooks/tutorials/parsers/new_parsers.ipynb @@ -47,7 +47,9 @@ "id": "28dad153", "metadata": {}, "source": [ - "The modular and versatile functionality of this gnss_lib_py repository is enabled by loading all data types into a custom Python NavData class. If you are using a type of data or dataset that is not yet supported, you will need to create a new child class of the NavData Python class. This tutorial will guide you on how to set up your new Python child class. Once complete, please feel free to submit a pull request to our GitHub repository so other users can make use of the added functionality." + "The modular and versatile functionality of this gnss_lib_py repository is enabled by loading all data types into a custom Python NavData class. If you are using a type of data or dataset that is not yet supported, you will need to create a new child class of the NavData Python class. This tutorial will guide you on how to set up your new Python child class. \n", + "\n", + "Once you have writtten and tested the class, please feel free to submit a pull request to our GitHub repository so other users can make use of the added functionality." ] }, { From f365a7c4a9de9dd1711e5232330d4a387abdbeeb Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 20:45:59 -0700 Subject: [PATCH 17/40] remove unused scipy import --- gnss_lib_py/parsers/clk.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gnss_lib_py/parsers/clk.py b/gnss_lib_py/parsers/clk.py index 5d3acbe6..a222015d 100644 --- a/gnss_lib_py/parsers/clk.py +++ b/gnss_lib_py/parsers/clk.py @@ -9,7 +9,6 @@ from datetime import datetime, timezone import numpy as np -from scipy import interpolate from gnss_lib_py.navdata.navdata import NavData from gnss_lib_py.utils.constants import CONSTELLATION_CHARS, C From cf8c3d041e977d453882c9d35242fe2a1ecad8eb Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 20:46:08 -0700 Subject: [PATCH 18/40] remove output --- notebooks/tutorials/navdata/operations.ipynb | 295 +++---------------- 1 file changed, 35 insertions(+), 260 deletions(-) diff --git a/notebooks/tutorials/navdata/operations.ipynb b/notebooks/tutorials/navdata/operations.ipynb index 4708f744..ab9481bd 100644 --- a/notebooks/tutorials/navdata/operations.ipynb +++ b/notebooks/tutorials/navdata/operations.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -54,25 +54,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " myTimestamp mySatId myPseudorange\n", - "0 10 10 270000001\n", - "1 10 14 270000007\n", - "2 10 7 270000004\n", - "3 10 3 270000005\n", - "4 11 10 270000002\n", - "5 11 14 270000008\n", - "6 11 7 270000003\n", - "7 11 3 270000004\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "navdata = glp.NavData(csv_path=data_path)\n", "print(navdata)" @@ -94,32 +78,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Current timestamp: 10\n", - "Difference between current and future time step 0\n", - "Current group of data\n", - " myTimestamp mySatId myPseudorange\n", - "0 10 10 270000001\n", - "1 10 14 270000007\n", - "2 10 7 270000004\n", - "3 10 3 270000005\n", - "Current timestamp: 11\n", - "Difference between current and future time step 1\n", - "Current group of data\n", - " myTimestamp mySatId myPseudorange\n", - "0 11 10 270000002\n", - "1 11 14 270000008\n", - "2 11 7 270000003\n", - "3 11 3 270000004\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "for timestamp, delta_t, navdata_subset in glp.loop_time(navdata,'myTimestamp'):\n", " print('Current timestamp: ', timestamp)\n", @@ -144,38 +105,9 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - " myTimestamp mySatId myPseudorange myTimestamp_0 mySatId_0 \\\n", - "0 10 10 270000001 10 10 \n", - "1 10 14 270000007 10 14 \n", - "2 10 7 270000004 10 7 \n", - "3 10 3 270000005 10 3 \n", - "4 11 10 270000002 11 10 \n", - "5 11 14 270000008 11 14 \n", - "6 11 7 270000003 11 7 \n", - "7 11 3 270000004 11 3 \n", - "\n", - " myPseudorange_0 \n", - "0 270000001 \n", - "1 270000007 \n", - "2 270000004 \n", - "3 270000005 \n", - "4 270000002 \n", - "5 270000008 \n", - "6 270000003 \n", - "7 270000004 " - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "double_navdata = glp.concat(navdata, navdata, axis=0)\n", "double_navdata" @@ -190,54 +122,9 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - " myTimestamp mySatId myPseudorange myTimestamp_0 mySatId_0 \\\n", - "0 10 10 270000001 10.0 10.0 \n", - "1 10 14 270000007 10.0 14.0 \n", - "2 10 7 270000004 10.0 7.0 \n", - "3 10 3 270000005 10.0 3.0 \n", - "4 11 10 270000002 11.0 10.0 \n", - "5 11 14 270000008 11.0 14.0 \n", - "6 11 7 270000003 11.0 7.0 \n", - "7 11 3 270000004 11.0 3.0 \n", - "8 10 10 270000001 NaN NaN \n", - "9 10 14 270000007 NaN NaN \n", - "10 10 7 270000004 NaN NaN \n", - "11 10 3 270000005 NaN NaN \n", - "12 11 10 270000002 NaN NaN \n", - "13 11 14 270000008 NaN NaN \n", - "14 11 7 270000003 NaN NaN \n", - "15 11 3 270000004 NaN NaN \n", - "\n", - " myPseudorange_0 \n", - "0 270000001.0 \n", - "1 270000007.0 \n", - "2 270000004.0 \n", - "3 270000005.0 \n", - "4 270000002.0 \n", - "5 270000008.0 \n", - "6 270000003.0 \n", - "7 270000004.0 \n", - "8 NaN \n", - "9 NaN \n", - "10 NaN \n", - "11 NaN \n", - "12 NaN \n", - "13 NaN \n", - "14 NaN \n", - "15 NaN " - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "glp.concat(double_navdata, navdata, axis=1)" ] @@ -263,26 +150,9 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "New NavData \n", - " myTimestamp mySatId myPseudorange random_row\n", - "0 10 10 270000001 5\n", - "1 10 14 270000007 7\n", - "2 10 7 270000004 4\n", - "3 10 3 270000005 0\n", - "4 11 10 270000002 2\n", - "5 11 14 270000008 6\n", - "6 11 7 270000003 3\n", - "7 11 3 270000004 1\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Generate a new row with random numbers\n", "import numpy as np\n", @@ -302,26 +172,9 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ascending order sorted NavData\n", - " myTimestamp mySatId myPseudorange random_row\n", - "0 10 3 270000005 0\n", - "1 11 3 270000004 1\n", - "2 11 10 270000002 2\n", - "3 11 7 270000003 3\n", - "4 10 7 270000004 4\n", - "5 10 10 270000001 5\n", - "6 11 14 270000008 6\n", - "7 10 14 270000007 7\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print('Ascending order sorted NavData')\n", "print(glp.sort(navdata, order='random_row'))" @@ -336,26 +189,9 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Descending order sorted NavData\n", - " myTimestamp mySatId myPseudorange random_row\n", - "0 10 14 270000007 7\n", - "1 11 14 270000008 6\n", - "2 10 10 270000001 5\n", - "3 10 7 270000004 4\n", - "4 11 7 270000003 3\n", - "5 11 10 270000002 2\n", - "6 11 3 270000004 1\n", - "7 10 3 270000005 0\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print('Descending order sorted NavData')\n", "print(glp.sort(navdata, order='random_row', ascending=False))" @@ -370,26 +206,9 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sorted using externally determined indices\n", - " myTimestamp mySatId myPseudorange random_row\n", - "0 10 3 270000005 0\n", - "1 11 3 270000004 1\n", - "2 11 10 270000002 2\n", - "3 11 7 270000003 3\n", - "4 10 7 270000004 4\n", - "5 10 10 270000001 5\n", - "6 11 14 270000008 6\n", - "7 10 14 270000007 7\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "#find indices corresponding to external order of sorting\n", "sort_order = np.argsort(new_row)\n", @@ -414,36 +233,9 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "NavData with NaN values \n", - " myTimestamp mySatId myPseudorange random_row nan_row_x nan_row_y\n", - "0 10 10 270000001 5 0.0 0.0\n", - "1 10 14 270000007 7 1.0 NaN\n", - "2 10 7 270000004 4 2.0 2.0\n", - "3 10 3 270000005 0 3.0 NaN\n", - "4 11 10 270000002 2 4.0 NaN\n", - "5 11 14 270000008 6 5.0 5.0\n", - "6 11 7 270000003 3 6.0 NaN\n", - "7 11 3 270000004 1 7.0 7.0\n", - "NavData values with interpolated values \n", - " myTimestamp mySatId myPseudorange random_row nan_row_x nan_row_y\n", - "0 10 10 270000001 5 0.0 0.0\n", - "1 10 14 270000007 7 1.0 1.0\n", - "2 10 7 270000004 4 2.0 2.0\n", - "3 10 3 270000005 0 3.0 3.0\n", - "4 11 10 270000002 2 4.0 4.0\n", - "5 11 14 270000008 6 5.0 5.0\n", - "6 11 7 270000003 3 6.0 6.0\n", - "7 11 3 270000004 1 7.0 7.0\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "#Create a new y-axis row with some NaN values\n", "nan_row_x = np.arange(len(navdata)).astype(np.float64)\n", @@ -482,18 +274,9 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'nan_*_x': ['nan_row_x']}\n", - "{'nan_*_x': ['nan_row_x', 'nan_col_x']}\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(glp.find_wildcard_indexes(navdata, 'nan_*_x', max_allow=1))\n", "navdata['nan_col_x'] = 0\n", @@ -511,17 +294,9 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Error: 'More than 1 possible row indexes for nan_*_x'\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "try:\n", " glp.find_wildcard_indexes(navdata, 'nan_*_x', max_allow=1)\n", From 7b9efbf21e6e1d1076cf6ea373ddb78950ded0cc Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 23:21:33 -0700 Subject: [PATCH 19/40] fix tutorials page typo --- docs/source/tutorials/tutorials.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index d8909304..de687a38 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -15,7 +15,7 @@ organized. These tutorials are in interactive Jupyter notebooks and have been rendered as part of the documentation. You can run the code yourself by running the notebooks in the 'tutorials' -directory `here `. +directory `here `__. The notebooks can also be run in Google Colab without downloading the repository by selecting the 'Open in Colab' option at the top of each notebook. From 84b58281533c775a866faa5a057289cabb5d5f8f Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 23:22:10 -0700 Subject: [PATCH 20/40] update package dependencies --- .github/workflows/build.yml | 2 +- docs/source/requirements.txt | 118 ++- poetry.lock | 1339 ++++++++-------------------------- pyproject.toml | 2 - requirements.txt | 115 ++- 5 files changed, 379 insertions(+), 1197 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cb94367..601419fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -85,7 +85,7 @@ jobs: - name: Get changed files since last remote commit id: changed-files - uses: tj-actions/changed-files@v34 + uses: tj-actions/changed-files@v41 - name: Check if index.rst changed when README.md file changes if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 6ccfd8f5..9e93cbf9 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -1,5 +1,5 @@ alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.12" -anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" +anyio==4.3.0 ; python_version >= "3.8" and python_version < "3.12" appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" @@ -12,145 +12,120 @@ babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -build==1.0.3 ; python_version >= "3.8" and python_version < "3.12" -cachecontrol[filecache]==0.13.1 ; python_version >= "3.8" and python_version < "3.12" certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.12" cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -cleo==2.1.0 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or platform_system == "Windows" or os_name == "nt") -comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or platform_system == "Windows") +comm==0.2.2 ; python_version >= "3.8" and python_version < "3.12" contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" -coverage[toml]==7.4.1 ; python_version >= "3.8" and python_version < "3.12" -crashtest==0.4.1 ; python_version >= "3.8" and python_version < "3.12" -cryptography==42.0.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" +coverage[toml]==7.4.4 ; python_version >= "3.8" and python_version < "3.12" cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.12" decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" dill==0.3.8 ; python_version >= "3.8" and python_version < "3.12" -distlib==0.3.8 ; python_version >= "3.8" and python_version < "3.12" docutils==0.18.1 ; python_version >= "3.8" and python_version < "3.12" -dulwich==0.21.7 ; python_version >= "3.8" and python_version < "3.12" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -filelock==3.13.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.12" +fonttools==4.50.0 ; python_version >= "3.8" and python_version < "3.12" fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" h11==0.14.0 ; python_version >= "3.8" and python_version < "3.12" hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" -httpcore==1.0.2 ; python_version >= "3.8" and python_version < "3.12" -httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.12" +httpcore==1.0.5 ; python_version >= "3.8" and python_version < "3.12" +httpx==0.27.0 ; python_version >= "3.8" and python_version < "3.12" idna==3.6 ; python_version >= "3.8" and python_version < "3.12" imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.12" -importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.12" -importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" +importlib-metadata==7.1.0 ; python_version >= "3.8" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.8" and python_version < "3.12" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -installer==0.7.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.12" +ipykernel==6.29.4 ; python_version >= "3.8" and python_version < "3.12" ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.12" isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" isort==5.13.2 ; python_version >= "3.8" and python_version < "3.12" -jaraco-classes==3.3.1 ; python_version >= "3.8" and python_version < "3.12" jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" -jeepney==0.8.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" -json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" +json5==0.9.24 ; python_version >= "3.8" and python_version < "3.12" jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.12" jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.12" jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.12" +jupyter-client==8.6.1 ; python_version >= "3.8" and python_version < "3.12" jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" -jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" +jupyter-core==5.7.2 ; python_version >= "3.8" and python_version < "3.12" +jupyter-events==0.10.0 ; python_version >= "3.8" and python_version < "3.12" +jupyter-lsp==2.2.4 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server-terminals==0.5.3 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server==2.13.0 ; python_version >= "3.8" and python_version < "3.12" jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab-server==2.25.4 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab==4.1.5 ; python_version >= "3.8" and python_version < "3.12" kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -keyring==24.3.0 ; python_version >= "3.8" and python_version < "3.12" kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "3.12" markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.12" matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" -matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" +matplotlib==3.7.5 ; python_version >= "3.8" and python_version < "3.12" mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.12" mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" -more-itertools==10.2.0 ; python_version >= "3.8" and python_version < "3.12" -msgpack==1.0.7 ; python_version >= "3.8" and python_version < "3.12" -nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.12" -nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" +nbclient==0.10.0 ; python_version >= "3.8" and python_version < "3.12" +nbconvert==7.16.3 ; python_version >= "3.8" and python_version < "3.12" +nbformat==5.10.3 ; python_version >= "3.8" and python_version < "3.12" nbsphinx-link==1.3.0 ; python_version >= "3.8" and python_version < "3.12" nbsphinx==0.8.12 ; python_version >= "3.8" and python_version < "3.12" ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.12" nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.12" -notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.12" +notebook-shim==0.2.4 ; python_version >= "3.8" and python_version < "3.12" +notebook==7.1.2 ; python_version >= "3.8" and python_version < "3.12" numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.12" -packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" +packaging==24.0 ; python_version >= "3.8" and python_version < "3.12" pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" -pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "3.12" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==3.11.0 ; python_version >= "3.8" and python_version < "3.12" -plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.12" +plotly==5.20.0 ; python_version >= "3.8" and python_version < "3.12" pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.12" pockets==0.9.1 ; python_version >= "3.8" and python_version < "3.12" -poetry-core==1.8.1 ; python_version >= "3.8" and python_version < "3.12" -poetry-plugin-export==1.6.0 ; python_version >= "3.8" and python_version < "3.12" -poetry==1.7.1 ; python_version >= "3.8" and python_version < "3.12" -prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" +prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.12" prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" +pycparser==2.22 ; python_version >= "3.8" and python_version < "3.12" pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" pylint-exit==1.2.0 ; python_version >= "3.8" and python_version < "3.12" pylint==2.17.7 ; python_version >= "3.8" and python_version < "3.12" pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" -pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" -pyproject-hooks==1.0.0 ; python_version >= "3.8" and python_version < "3.12" +pyparsing==3.1.2 ; python_version >= "3.8" and python_version < "3.12" pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "3.12" -pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==8.0.0 ; python_version >= "3.8" and python_version < "3.12" -python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" +pytest==8.1.1 ; python_version >= "3.8" and python_version < "3.12" +python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.12" python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" pytz==2024.1 ; python_version >= "3.8" and python_version < "3.12" -pywin32-ctypes==0.2.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" -pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" +pywinpty==2.0.13 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -rapidfuzz==3.6.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.12" -requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.12" +referencing==0.34.0 ; python_version >= "3.8" and python_version < "3.12" requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.12" scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" -secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" -shellingham==1.5.4 ; python_version >= "3.8" and python_version < "3.12" six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" +sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.12" snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.12" soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.12" sphinx-copybutton==0.5.2 ; python_version >= "3.8" and python_version < "3.12" @@ -166,21 +141,19 @@ sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "3.12 sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "3.12" stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.12" tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.12" -terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.12" +terminado==0.18.1 ; python_version >= "3.8" and python_version < "3.12" tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" tomli==2.0.1 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" -tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.12" +tomlkit==0.12.4 ; python_version >= "3.8" and python_version < "3.12" tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" tqdm==4.66.2 ; python_version >= "3.8" and python_version < "3.12" -traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" -trove-classifiers==2024.1.31 ; python_version >= "3.8" and python_version < "3.12" -types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" -typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" +traitlets==5.14.2 ; python_version >= "3.8" and python_version < "3.12" +types-python-dateutil==2.9.0.20240316 ; python_version >= "3.8" and python_version < "3.12" +typing-extensions==4.10.0 ; python_version >= "3.8" and python_version < "3.11" tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.12" unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.12" -virtualenv==20.25.0 ; python_version >= "3.8" and python_version < "3.12" +urllib3==2.2.1 ; python_version >= "3.8" and python_version < "3.12" wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" @@ -188,5 +161,4 @@ websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.12" wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.12" xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" -xattr==0.10.1 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "darwin" -zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.12" +zipp==3.18.1 ; python_version >= "3.8" and python_version < "3.10" diff --git a/poetry.lock b/poetry.lock index acf4bb7b..91a7a1d9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -13,13 +13,13 @@ files = [ [[package]] name = "anyio" -version = "4.2.0" +version = "4.3.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee"}, - {file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"}, + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, ] [package.dependencies] @@ -257,51 +257,6 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.3)"] -[[package]] -name = "build" -version = "1.0.3" -description = "A simple, correct Python build frontend" -optional = false -python-versions = ">= 3.7" -files = [ - {file = "build-1.0.3-py3-none-any.whl", hash = "sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f"}, - {file = "build-1.0.3.tar.gz", hash = "sha256:538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "os_name == \"nt\""} -importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} -packaging = ">=19.0" -pyproject_hooks = "*" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["furo (>=2023.08.17)", "sphinx (>=7.0,<8.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)", "sphinx-issues (>=3.0.0)"] -test = ["filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "setuptools (>=56.0.0)", "setuptools (>=67.8.0)", "wheel (>=0.36.0)"] -typing = ["importlib-metadata (>=5.1)", "mypy (>=1.5.0,<1.6.0)", "tomli", "typing-extensions (>=3.7.4.3)"] -virtualenv = ["virtualenv (>=20.0.35)"] - -[[package]] -name = "cachecontrol" -version = "0.13.1" -description = "httplib2 caching for requests" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, - {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, -] - -[package.dependencies] -filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""} -msgpack = ">=0.5.2" -requests = ">=2.16.0" - -[package.extras] -dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "mypy", "pytest", "pytest-cov", "sphinx", "tox", "types-redis", "types-requests"] -filecache = ["filelock (>=3.8.0)"] -redis = ["redis (>=2.10.5)"] - [[package]] name = "certifi" version = "2024.2.2" @@ -476,21 +431,6 @@ files = [ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] -[[package]] -name = "cleo" -version = "2.1.0" -description = "Cleo allows you to create beautiful and testable command-line interfaces." -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "cleo-2.1.0-py3-none-any.whl", hash = "sha256:4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e"}, - {file = "cleo-2.1.0.tar.gz", hash = "sha256:0b2c880b5d13660a7ea651001fb4acb527696c01f15c9ee650f377aa543fd523"}, -] - -[package.dependencies] -crashtest = ">=0.4.1,<0.5.0" -rapidfuzz = ">=3.0.0,<4.0.0" - [[package]] name = "colorama" version = "0.4.6" @@ -504,13 +444,13 @@ files = [ [[package]] name = "comm" -version = "0.2.1" +version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = false python-versions = ">=3.8" files = [ - {file = "comm-0.2.1-py3-none-any.whl", hash = "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021"}, - {file = "comm-0.2.1.tar.gz", hash = "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a"}, + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, ] [package.dependencies] @@ -592,63 +532,63 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "coverage" -version = "7.4.1" +version = "7.4.4" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, - {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, - {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, - {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, - {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, - {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, - {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, - {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, - {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, - {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, - {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, - {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, - {file = "coverage-7.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8bdb0285a0202888d19ec6b6d23d5990410decb932b709f2b0dfe216d031d218"}, - {file = "coverage-7.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:918440dea04521f499721c039863ef95433314b1db00ff826a02580c1f503e45"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:379d4c7abad5afbe9d88cc31ea8ca262296480a86af945b08214eb1a556a3e4d"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094116f0b6155e36a304ff912f89bbb5067157aff5f94060ff20bbabdc8da06"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2f5968608b1fe2a1d00d01ad1017ee27efd99b3437e08b83ded9b7af3f6f766"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:10e88e7f41e6197ea0429ae18f21ff521d4f4490aa33048f6c6f94c6045a6a75"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a4a3907011d39dbc3e37bdc5df0a8c93853c369039b59efa33a7b6669de04c60"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d224f0c4c9c98290a6990259073f496fcec1b5cc613eecbd22786d398ded3ad"}, - {file = "coverage-7.4.1-cp38-cp38-win32.whl", hash = "sha256:23f5881362dcb0e1a92b84b3c2809bdc90db892332daab81ad8f642d8ed55042"}, - {file = "coverage-7.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:a07f61fc452c43cd5328b392e52555f7d1952400a1ad09086c4a8addccbd138d"}, - {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, - {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, - {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, - {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, - {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, - {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, + {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"}, + {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"}, + {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"}, + {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"}, + {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"}, + {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"}, + {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"}, + {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"}, + {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"}, + {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"}, + {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"}, + {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"}, + {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"}, + {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"}, + {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"}, + {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"}, + {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"}, + {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"}, + {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"}, + {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"}, + {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"}, + {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"}, + {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"}, + {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"}, + {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"}, + {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"}, + {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"}, + {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"}, + {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"}, + {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"}, + {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"}, + {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"}, + {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"}, + {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"}, + {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"}, + {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"}, + {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"}, + {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"}, + {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"}, + {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"}, + {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"}, + {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"}, + {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"}, + {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"}, + {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"}, + {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"}, + {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"}, + {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"}, + {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"}, + {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"}, + {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"}, + {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"}, ] [package.dependencies] @@ -657,71 +597,6 @@ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.1 [package.extras] toml = ["tomli"] -[[package]] -name = "crashtest" -version = "0.4.1" -description = "Manage Python errors with ease" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"}, - {file = "crashtest-0.4.1.tar.gz", hash = "sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce"}, -] - -[[package]] -name = "cryptography" -version = "42.0.2" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be"}, - {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d"}, - {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4"}, - {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2"}, - {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529"}, - {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1"}, - {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1"}, - {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929"}, - {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9"}, - {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2"}, - {file = "cryptography-42.0.2-cp37-abi3-win32.whl", hash = "sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee"}, - {file = "cryptography-42.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee"}, - {file = "cryptography-42.0.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242"}, - {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a"}, - {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446"}, - {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90"}, - {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3"}, - {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589"}, - {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a"}, - {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea"}, - {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33"}, - {file = "cryptography-42.0.2-cp39-abi3-win32.whl", hash = "sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635"}, - {file = "cryptography-42.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6"}, - {file = "cryptography-42.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380"}, - {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6"}, - {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2"}, - {file = "cryptography-42.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f"}, - {file = "cryptography-42.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008"}, - {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12"}, - {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a"}, - {file = "cryptography-42.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65"}, - {file = "cryptography-42.0.2.tar.gz", hash = "sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888"}, -] - -[package.dependencies] -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] - [[package]] name = "cycler" version = "0.12.1" @@ -805,17 +680,6 @@ files = [ graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] -[[package]] -name = "distlib" -version = "0.3.8" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, -] - [[package]] name = "docutils" version = "0.18.1" @@ -827,93 +691,6 @@ files = [ {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] -[[package]] -name = "dulwich" -version = "0.21.7" -description = "Python Git Library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d4c0110798099bb7d36a110090f2688050703065448895c4f53ade808d889dd3"}, - {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2bc12697f0918bee324c18836053644035362bb3983dc1b210318f2fed1d7132"}, - {file = "dulwich-0.21.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:471305af74790827fcbafe330fc2e8bdcee4fb56ca1177c8c481b1c8f806c4a4"}, - {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54c9d0e845be26f65f954dff13a1cd3f2b9739820c19064257b8fd7435ab263"}, - {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12d61334a575474e707614f2e93d6ed4cdae9eb47214f9277076d9e5615171d3"}, - {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e274cebaf345f0b1e3b70197f2651de92b652386b68020cfd3bf61bc30f6eaaa"}, - {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:817822f970e196e757ae01281ecbf21369383285b9f4a83496312204cf889b8c"}, - {file = "dulwich-0.21.7-cp310-cp310-win32.whl", hash = "sha256:7836da3f4110ce684dcd53489015fb7fa94ed33c5276e3318b8b1cbcb5b71e08"}, - {file = "dulwich-0.21.7-cp310-cp310-win_amd64.whl", hash = "sha256:4a043b90958cec866b4edc6aef5fe3c2c96a664d0b357e1682a46f6c477273c4"}, - {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ce8db196e79c1f381469410d26fb1d8b89c6b87a4e7f00ff418c22a35121405c"}, - {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:62bfb26bdce869cd40be443dfd93143caea7089b165d2dcc33de40f6ac9d812a"}, - {file = "dulwich-0.21.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c01a735b9a171dcb634a97a3cec1b174cfbfa8e840156870384b633da0460f18"}, - {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa4d14767cf7a49c9231c2e52cb2a3e90d0c83f843eb6a2ca2b5d81d254cf6b9"}, - {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bca4b86e96d6ef18c5bc39828ea349efb5be2f9b1f6ac9863f90589bac1084d"}, - {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a7b5624b02ef808cdc62dabd47eb10cd4ac15e8ac6df9e2e88b6ac6b40133673"}, - {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c3a539b4696a42fbdb7412cb7b66a4d4d332761299d3613d90a642923c7560e1"}, - {file = "dulwich-0.21.7-cp311-cp311-win32.whl", hash = "sha256:675a612ce913081beb0f37b286891e795d905691dfccfb9bf73721dca6757cde"}, - {file = "dulwich-0.21.7-cp311-cp311-win_amd64.whl", hash = "sha256:460ba74bdb19f8d498786ae7776745875059b1178066208c0fd509792d7f7bfc"}, - {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4c51058ec4c0b45dc5189225b9e0c671b96ca9713c1daf71d622c13b0ab07681"}, - {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4bc4c5366eaf26dda3fdffe160a3b515666ed27c2419f1d483da285ac1411de0"}, - {file = "dulwich-0.21.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a0650ec77d89cb947e3e4bbd4841c96f74e52b4650830112c3057a8ca891dc2f"}, - {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f18f0a311fb7734b033a3101292b932158cade54b74d1c44db519e42825e5a2"}, - {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c589468e5c0cd84e97eb7ec209ab005a2cb69399e8c5861c3edfe38989ac3a8"}, - {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d62446797163317a397a10080c6397ffaaca51a7804c0120b334f8165736c56a"}, - {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e84cc606b1f581733df4350ca4070e6a8b30be3662bbb81a590b177d0c996c91"}, - {file = "dulwich-0.21.7-cp312-cp312-win32.whl", hash = "sha256:c3d1685f320907a52c40fd5890627945c51f3a5fa4bcfe10edb24fec79caadec"}, - {file = "dulwich-0.21.7-cp312-cp312-win_amd64.whl", hash = "sha256:6bd69921fdd813b7469a3c77bc75c1783cc1d8d72ab15a406598e5a3ba1a1503"}, - {file = "dulwich-0.21.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d8ab29c660125db52106775caa1f8f7f77a69ed1fe8bc4b42bdf115731a25bf"}, - {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0d2e4485b98695bf95350ce9d38b1bb0aaac2c34ad00a0df789aa33c934469b"}, - {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e138d516baa6b5bafbe8f030eccc544d0d486d6819b82387fc0e285e62ef5261"}, - {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f34bf9b9fa9308376263fd9ac43143c7c09da9bc75037bb75c6c2423a151b92c"}, - {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2e2c66888207b71cd1daa2acb06d3984a6bc13787b837397a64117aa9fc5936a"}, - {file = "dulwich-0.21.7-cp37-cp37m-win32.whl", hash = "sha256:10893105c6566fc95bc2a67b61df7cc1e8f9126d02a1df6a8b2b82eb59db8ab9"}, - {file = "dulwich-0.21.7-cp37-cp37m-win_amd64.whl", hash = "sha256:460b3849d5c3d3818a80743b4f7a0094c893c559f678e56a02fff570b49a644a"}, - {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:74700e4c7d532877355743336c36f51b414d01e92ba7d304c4f8d9a5946dbc81"}, - {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c92e72c43c9e9e936b01a57167e0ea77d3fd2d82416edf9489faa87278a1cdf7"}, - {file = "dulwich-0.21.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d097e963eb6b9fa53266146471531ad9c6765bf390849230311514546ed64db2"}, - {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:808e8b9cc0aa9ac74870b49db4f9f39a52fb61694573f84b9c0613c928d4caf8"}, - {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1957b65f96e36c301e419d7adaadcff47647c30eb072468901bb683b1000bc5"}, - {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4b09bc3a64fb70132ec14326ecbe6e0555381108caff3496898962c4136a48c6"}, - {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5882e70b74ac3c736a42d3fdd4f5f2e6570637f59ad5d3e684760290b58f041"}, - {file = "dulwich-0.21.7-cp38-cp38-win32.whl", hash = "sha256:29bb5c1d70eba155ded41ed8a62be2f72edbb3c77b08f65b89c03976292f6d1b"}, - {file = "dulwich-0.21.7-cp38-cp38-win_amd64.whl", hash = "sha256:25c3ab8fb2e201ad2031ddd32e4c68b7c03cb34b24a5ff477b7a7dcef86372f5"}, - {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8929c37986c83deb4eb500c766ee28b6670285b512402647ee02a857320e377c"}, - {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cc1e11be527ac06316539b57a7688bcb1b6a3e53933bc2f844397bc50734e9ae"}, - {file = "dulwich-0.21.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0fc3078a1ba04c588fabb0969d3530efd5cd1ce2cf248eefb6baf7cbc15fc285"}, - {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dcbd29ba30ba2c5bfbab07a61a5f20095541d5ac66d813056c122244df4ac0"}, - {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8869fc8ec3dda743e03d06d698ad489b3705775fe62825e00fa95aa158097fc0"}, - {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d96ca5e0dde49376fbcb44f10eddb6c30284a87bd03bb577c59bb0a1f63903fa"}, - {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e0064363bd5e814359657ae32517fa8001e8573d9d040bd997908d488ab886ed"}, - {file = "dulwich-0.21.7-cp39-cp39-win32.whl", hash = "sha256:869eb7be48243e695673b07905d18b73d1054a85e1f6e298fe63ba2843bb2ca1"}, - {file = "dulwich-0.21.7-cp39-cp39-win_amd64.whl", hash = "sha256:404b8edeb3c3a86c47c0a498699fc064c93fa1f8bab2ffe919e8ab03eafaaad3"}, - {file = "dulwich-0.21.7-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e598d743c6c0548ebcd2baf94aa9c8bfacb787ea671eeeb5828cfbd7d56b552f"}, - {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4a2d76c96426e791556836ef43542b639def81be4f1d6d4322cd886c115eae1"}, - {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6c88acb60a1f4d31bd6d13bfba465853b3df940ee4a0f2a3d6c7a0778c705b7"}, - {file = "dulwich-0.21.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ecd315847dea406a4decfa39d388a2521e4e31acde3bd9c2609c989e817c6d62"}, - {file = "dulwich-0.21.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d05d3c781bc74e2c2a2a8f4e4e2ed693540fbe88e6ac36df81deac574a6dad99"}, - {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6de6f8de4a453fdbae8062a6faa652255d22a3d8bce0cd6d2d6701305c75f2b3"}, - {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e25953c7acbbe4e19650d0225af1c0c0e6882f8bddd2056f75c1cc2b109b88ad"}, - {file = "dulwich-0.21.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4637cbd8ed1012f67e1068aaed19fcc8b649bcf3e9e26649826a303298c89b9d"}, - {file = "dulwich-0.21.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:858842b30ad6486aacaa607d60bab9c9a29e7c59dc2d9cb77ae5a94053878c08"}, - {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739b191f61e1c4ce18ac7d520e7a7cbda00e182c3489552408237200ce8411ad"}, - {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:274c18ec3599a92a9b67abaf110e4f181a4f779ee1aaab9e23a72e89d71b2bd9"}, - {file = "dulwich-0.21.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2590e9b431efa94fc356ae33b38f5e64f1834ec3a94a6ac3a64283b206d07aa3"}, - {file = "dulwich-0.21.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed60d1f610ef6437586f7768254c2a93820ccbd4cfdac7d182cf2d6e615969bb"}, - {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8278835e168dd097089f9e53088c7a69c6ca0841aef580d9603eafe9aea8c358"}, - {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffc27fb063f740712e02b4d2f826aee8bbed737ed799962fef625e2ce56e2d29"}, - {file = "dulwich-0.21.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61e3451bd3d3844f2dca53f131982553be4d1b1e1ebd9db701843dd76c4dba31"}, - {file = "dulwich-0.21.7.tar.gz", hash = "sha256:a9e9c66833cea580c3ac12927e4b9711985d76afca98da971405d414de60e968"}, -] - -[package.dependencies] -urllib3 = ">=1.25" - -[package.extras] -fastimport = ["fastimport"] -https = ["urllib3 (>=1.24.1)"] -paramiko = ["paramiko"] -pgp = ["gpg"] - [[package]] name = "exceptiongroup" version = "1.2.0" @@ -956,71 +733,55 @@ files = [ [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] -[[package]] -name = "filelock" -version = "3.13.1" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] - [[package]] name = "fonttools" -version = "4.48.1" +version = "4.50.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:702ae93058c81f46461dc4b2c79f11d3c3d8fd7296eaf8f75b4ba5bbf813cd5f"}, - {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97f0a49fa6aa2d6205c6f72f4f98b74ef4b9bfdcb06fd78e6fe6c7af4989b63e"}, - {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3260db55f1843e57115256e91247ad9f68cb02a434b51262fe0019e95a98738"}, - {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e740a7602c2bb71e1091269b5dbe89549749a8817dc294b34628ffd8b2bf7124"}, - {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4108b1d247953dd7c90ec8f457a2dec5fceb373485973cc852b14200118a51ee"}, - {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56339ec557f0c342bddd7c175f5e41c45fc21282bee58a86bd9aa322bec715f2"}, - {file = "fonttools-4.48.1-cp310-cp310-win32.whl", hash = "sha256:bff5b38d0e76eb18e0b8abbf35d384e60b3371be92f7be36128ee3e67483b3ec"}, - {file = "fonttools-4.48.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7449493886da6a17472004d3818cc050ba3f4a0aa03fb47972e4fa5578e6703"}, - {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61"}, - {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cad5cfd044ea2e306fda44482b3dd32ee47830fa82dfa4679374b41baa294f5f"}, - {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f30e605c7565d0da6f0aec75a30ec372072d016957cd8fc4469721a36ea59b7"}, - {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7"}, - {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5057ade278e67923000041e2b195c9ea53e87f227690d499b6a4edd3702f7f01"}, - {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b10633aafc5932995a391ec07eba5e79f52af0003a1735b2306b3dab8a056d48"}, - {file = "fonttools-4.48.1-cp311-cp311-win32.whl", hash = "sha256:0d533f89819f9b3ee2dbedf0fed3825c425850e32bdda24c558563c71be0064e"}, - {file = "fonttools-4.48.1-cp311-cp311-win_amd64.whl", hash = "sha256:d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a"}, - {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0a2417547462e468edf35b32e3dd06a6215ac26aa6316b41e03b8eeaf9f079ea"}, - {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cf5a0cd974f85a80b74785db2d5c3c1fd6cc09a2ba3c837359b2b5da629ee1b0"}, - {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0452fcbfbce752ba596737a7c5ec5cf76bc5f83847ce1781f4f90eab14ece252"}, - {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578c00f93868f64a4102ecc5aa600a03b49162c654676c3fadc33de2ddb88a81"}, - {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:63dc592a16cd08388d8c4c7502b59ac74190b23e16dfc863c69fe1ea74605b68"}, - {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9b58638d8a85e3a1b32ec0a91d9f8171a877b4b81c408d4cb3257d0dee63e092"}, - {file = "fonttools-4.48.1-cp312-cp312-win32.whl", hash = "sha256:d10979ef14a8beaaa32f613bb698743f7241d92f437a3b5e32356dfb9769c65d"}, - {file = "fonttools-4.48.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdfd7557d1bd294a200bd211aa665ca3b02998dcc18f8211a5532da5b8fad5c5"}, - {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3cdb9a92521b81bf717ebccf592bd0292e853244d84115bfb4db0c426de58348"}, - {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b4ec6d42a7555f5ae35f3b805482f0aad0f1baeeef54859492ea3b782959d4a"}, - {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902e9c4e9928301912f34a6638741b8ae0b64824112b42aaf240e06b735774b1"}, - {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8c8b54bd1420c184a995f980f1a8076f87363e2bb24239ef8c171a369d85a31"}, - {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:12ee86abca46193359ea69216b3a724e90c66ab05ab220d39e3fc068c1eb72ac"}, - {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6978bade7b6c0335095bdd0bd97f8f3d590d2877b370f17e03e0865241694eb5"}, - {file = "fonttools-4.48.1-cp38-cp38-win32.whl", hash = "sha256:bcd77f89fc1a6b18428e7a55dde8ef56dae95640293bfb8f4e929929eba5e2a2"}, - {file = "fonttools-4.48.1-cp38-cp38-win_amd64.whl", hash = "sha256:f40441437b039930428e04fb05ac3a132e77458fb57666c808d74a556779e784"}, - {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d2b01428f7da26f229a5656defc824427b741e454b4e210ad2b25ed6ea2aed4"}, - {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:df48798f9a4fc4c315ab46e17873436c8746f5df6eddd02fad91299b2af7af95"}, - {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2eb4167bde04e172a93cf22c875d8b0cff76a2491f67f5eb069566215302d45d"}, - {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c900508c46274d32d308ae8e82335117f11aaee1f7d369ac16502c9a78930b0a"}, - {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:594206b31c95fcfa65f484385171fabb4ec69f7d2d7f56d27f17db26b7a31814"}, - {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:292922dc356d7f11f5063b4111a8b719efb8faea92a2a88ed296408d449d8c2e"}, - {file = "fonttools-4.48.1-cp39-cp39-win32.whl", hash = "sha256:4709c5bf123ba10eac210d2d5c9027d3f472591d9f1a04262122710fa3d23199"}, - {file = "fonttools-4.48.1-cp39-cp39-win_amd64.whl", hash = "sha256:63c73b9dd56a94a3cbd2f90544b5fca83666948a9e03370888994143b8d7c070"}, - {file = "fonttools-4.48.1-py3-none-any.whl", hash = "sha256:e3e33862fc5261d46d9aae3544acb36203b1a337d00bdb5d3753aae50dac860e"}, - {file = "fonttools-4.48.1.tar.gz", hash = "sha256:8b8a45254218679c7f1127812761e7854ed5c8e34349aebf581e8c9204e7495a"}, + {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effd303fb422f8ce06543a36ca69148471144c534cc25f30e5be752bc4f46736"}, + {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7913992ab836f621d06aabac118fc258b9947a775a607e1a737eb3a91c360335"}, + {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e0a1c5bd2f63da4043b63888534b52c5a1fd7ae187c8ffc64cbb7ae475b9dab"}, + {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40fc98540fa5360e7ecf2c56ddf3c6e7dd04929543618fd7b5cc76e66390562"}, + {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fff65fbb7afe137bac3113827855e0204482727bddd00a806034ab0d3951d0d"}, + {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1aeae3dd2ee719074a9372c89ad94f7c581903306d76befdaca2a559f802472"}, + {file = "fonttools-4.50.0-cp310-cp310-win32.whl", hash = "sha256:e9623afa319405da33b43c85cceb0585a6f5d3a1d7c604daf4f7e1dd55c03d1f"}, + {file = "fonttools-4.50.0-cp310-cp310-win_amd64.whl", hash = "sha256:778c5f43e7e654ef7fe0605e80894930bc3a7772e2f496238e57218610140f54"}, + {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3dfb102e7f63b78c832e4539969167ffcc0375b013080e6472350965a5fe8048"}, + {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e58fe34cb379ba3d01d5d319d67dd3ce7ca9a47ad044ea2b22635cd2d1247fc"}, + {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c673ab40d15a442a4e6eb09bf007c1dda47c84ac1e2eecbdf359adacb799c24"}, + {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b3ac35cdcd1a4c90c23a5200212c1bb74fa05833cc7c14291d7043a52ca2aaa"}, + {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8844e7a2c5f7ecf977e82eb6b3014f025c8b454e046d941ece05b768be5847ae"}, + {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f849bd3c5c2249b49c98eca5aaebb920d2bfd92b3c69e84ca9bddf133e9f83f0"}, + {file = "fonttools-4.50.0-cp311-cp311-win32.whl", hash = "sha256:39293ff231b36b035575e81c14626dfc14407a20de5262f9596c2cbb199c3625"}, + {file = "fonttools-4.50.0-cp311-cp311-win_amd64.whl", hash = "sha256:c33d5023523b44d3481624f840c8646656a1def7630ca562f222eb3ead16c438"}, + {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b4a886a6dbe60100ba1cd24de962f8cd18139bd32808da80de1fa9f9f27bf1dc"}, + {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b2ca1837bfbe5eafa11313dbc7edada79052709a1fffa10cea691210af4aa1fa"}, + {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0493dd97ac8977e48ffc1476b932b37c847cbb87fd68673dee5182004906828"}, + {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77844e2f1b0889120b6c222fc49b2b75c3d88b930615e98893b899b9352a27ea"}, + {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3566bfb8c55ed9100afe1ba6f0f12265cd63a1387b9661eb6031a1578a28bad1"}, + {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:35e10ddbc129cf61775d58a14f2d44121178d89874d32cae1eac722e687d9019"}, + {file = "fonttools-4.50.0-cp312-cp312-win32.whl", hash = "sha256:cc8140baf9fa8f9b903f2b393a6c413a220fa990264b215bf48484f3d0bf8710"}, + {file = "fonttools-4.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ccc85fd96373ab73c59833b824d7a73846670a0cb1f3afbaee2b2c426a8f931"}, + {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e270a406219af37581d96c810172001ec536e29e5593aa40d4c01cca3e145aa6"}, + {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac2463de667233372e9e1c7e9de3d914b708437ef52a3199fdbf5a60184f190c"}, + {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47abd6669195abe87c22750dbcd366dc3a0648f1b7c93c2baa97429c4dc1506e"}, + {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:074841375e2e3d559aecc86e1224caf78e8b8417bb391e7d2506412538f21adc"}, + {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0743fd2191ad7ab43d78cd747215b12033ddee24fa1e088605a3efe80d6984de"}, + {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3d7080cce7be5ed65bee3496f09f79a82865a514863197ff4d4d177389e981b0"}, + {file = "fonttools-4.50.0-cp38-cp38-win32.whl", hash = "sha256:a467ba4e2eadc1d5cc1a11d355abb945f680473fbe30d15617e104c81f483045"}, + {file = "fonttools-4.50.0-cp38-cp38-win_amd64.whl", hash = "sha256:f77e048f805e00870659d6318fd89ef28ca4ee16a22b4c5e1905b735495fc422"}, + {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b6245eafd553c4e9a0708e93be51392bd2288c773523892fbd616d33fd2fda59"}, + {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a4062cc7e8de26f1603323ef3ae2171c9d29c8a9f5e067d555a2813cd5c7a7e0"}, + {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34692850dfd64ba06af61e5791a441f664cb7d21e7b544e8f385718430e8f8e4"}, + {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678dd95f26a67e02c50dcb5bf250f95231d455642afbc65a3b0bcdacd4e4dd38"}, + {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f2ce7b0b295fe64ac0a85aef46a0f2614995774bd7bc643b85679c0283287f9"}, + {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d346f4dc2221bfb7ab652d1e37d327578434ce559baf7113b0f55768437fe6a0"}, + {file = "fonttools-4.50.0-cp39-cp39-win32.whl", hash = "sha256:a51eeaf52ba3afd70bf489be20e52fdfafe6c03d652b02477c6ce23c995222f4"}, + {file = "fonttools-4.50.0-cp39-cp39-win_amd64.whl", hash = "sha256:8639be40d583e5d9da67795aa3eeeda0488fb577a1d42ae11a5036f18fb16d93"}, + {file = "fonttools-4.50.0-py3-none-any.whl", hash = "sha256:48fa36da06247aa8282766cfd63efff1bb24e55f020f29a335939ed3844d20d3"}, + {file = "fonttools-4.50.0.tar.gz", hash = "sha256:fa5cf61058c7dbb104c2ac4e782bf1b2016a8cf2f69de6e4dd6a865d2c969bb5"}, ] [package.extras] @@ -1118,13 +879,13 @@ tests = ["pytest"] [[package]] name = "httpcore" -version = "1.0.2" +version = "1.0.5" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-1.0.2-py3-none-any.whl", hash = "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7"}, - {file = "httpcore-1.0.2.tar.gz", hash = "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535"}, + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, ] [package.dependencies] @@ -1135,17 +896,17 @@ h11 = ">=0.13,<0.15" asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<0.23.0)"] +trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" -version = "0.26.0" +version = "0.27.0" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"}, - {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [package.dependencies] @@ -1185,32 +946,32 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.0.1" +version = "7.1.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, - {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, + {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, + {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "importlib-resources" -version = "6.1.1" +version = "6.4.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, - {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, + {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, + {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, ] [package.dependencies] @@ -1218,7 +979,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] +testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" @@ -1231,26 +992,15 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] -[[package]] -name = "installer" -version = "0.7.0" -description = "A library for installing Python wheels." -optional = false -python-versions = ">=3.7" -files = [ - {file = "installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53"}, - {file = "installer-0.7.0.tar.gz", hash = "sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"}, -] - [[package]] name = "ipykernel" -version = "6.29.2" +version = "6.29.4" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.2-py3-none-any.whl", hash = "sha256:50384f5c577a260a1d53f1f59a828c7266d321c9b7d00d345693783f66616055"}, - {file = "ipykernel-6.29.2.tar.gz", hash = "sha256:3bade28004e3ff624ed57974948116670604ac5f676d12339693f3142176d3f0"}, + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, ] [package.dependencies] @@ -1273,7 +1023,7 @@ cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.4)", "pytest-cov", "pytest-timeout"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" @@ -1363,24 +1113,6 @@ files = [ [package.extras] colors = ["colorama (>=0.4.6)"] -[[package]] -name = "jaraco-classes" -version = "3.3.1" -description = "Utility functions for Python class constructs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jaraco.classes-3.3.1-py3-none-any.whl", hash = "sha256:86b534de565381f6b3c1c830d13f931d7be1a75f0081c57dff615578676e2206"}, - {file = "jaraco.classes-3.3.1.tar.gz", hash = "sha256:cb28a5ebda8bc47d8c8015307d93163464f9f2b91ab4006e09ff0ce07e8bfb30"}, -] - -[package.dependencies] -more-itertools = "*" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - [[package]] name = "jedi" version = "0.19.1" @@ -1400,21 +1132,6 @@ docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alab qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] -[[package]] -name = "jeepney" -version = "0.8.0" -description = "Low-level, pure Python DBus protocol wrapper." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, - {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, -] - -[package.extras] -test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"] -trio = ["async_generator", "trio"] - [[package]] name = "jinja2" version = "3.1.3" @@ -1434,18 +1151,15 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "json5" -version = "0.9.14" +version = "0.9.24" description = "A Python implementation of the JSON5 data format." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, - {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, + {file = "json5-0.9.24-py3-none-any.whl", hash = "sha256:4ca101fd5c7cb47960c055ef8f4d0e31e15a7c6c48c3b6f1473fc83b6c462a13"}, + {file = "json5-0.9.24.tar.gz", hash = "sha256:0c638399421da959a20952782800e5c1a78c14e08e1dc9738fa10d8ec14d58c8"}, ] -[package.extras] -dev = ["hypothesis"] - [[package]] name = "jsonpointer" version = "2.4" @@ -1525,13 +1239,13 @@ qtconsole = "*" [[package]] name = "jupyter-client" -version = "8.6.0" +version = "8.6.1" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.0-py3-none-any.whl", hash = "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99"}, - {file = "jupyter_client-8.6.0.tar.gz", hash = "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7"}, + {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, + {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, ] [package.dependencies] @@ -1572,13 +1286,13 @@ test = ["flaky", "pexpect", "pytest"] [[package]] name = "jupyter-core" -version = "5.7.1" +version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_core-5.7.1-py3-none-any.whl", hash = "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7"}, - {file = "jupyter_core-5.7.1.tar.gz", hash = "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218"}, + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, ] [package.dependencies] @@ -1588,17 +1302,17 @@ traitlets = ">=5.3" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] -test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-events" -version = "0.9.0" +version = "0.10.0" description = "Jupyter Event System library" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_events-0.9.0-py3-none-any.whl", hash = "sha256:d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf"}, - {file = "jupyter_events-0.9.0.tar.gz", hash = "sha256:81ad2e4bc710881ec274d31c6c50669d71bbaa5dd9d01e600b56faa85700d399"}, + {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, + {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, ] [package.dependencies] @@ -1617,13 +1331,13 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p [[package]] name = "jupyter-lsp" -version = "2.2.2" +version = "2.2.4" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter-lsp-2.2.2.tar.gz", hash = "sha256:256d24620542ae4bba04a50fc1f6ffe208093a07d8e697fea0a8d1b8ca1b7e5b"}, - {file = "jupyter_lsp-2.2.2-py3-none-any.whl", hash = "sha256:3b95229e4168355a8c91928057c1621ac3510ba98b2a925e82ebd77f078b1aa5"}, + {file = "jupyter-lsp-2.2.4.tar.gz", hash = "sha256:5e50033149344065348e688608f3c6d654ef06d9856b67655bd7b6bac9ee2d59"}, + {file = "jupyter_lsp-2.2.4-py3-none-any.whl", hash = "sha256:da61cb63a16b6dff5eac55c2699cc36eac975645adee02c41bdfc03bf4802e77"}, ] [package.dependencies] @@ -1632,13 +1346,13 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.12.5" +version = "2.13.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.12.5-py3-none-any.whl", hash = "sha256:184a0f82809a8522777cfb6b760ab6f4b1bb398664c5860a27cec696cb884923"}, - {file = "jupyter_server-2.12.5.tar.gz", hash = "sha256:0edb626c94baa22809be1323f9770cf1c00a952b17097592e40d03e6a3951689"}, + {file = "jupyter_server-2.13.0-py3-none-any.whl", hash = "sha256:77b2b49c3831fbbfbdb5048cef4350d12946191f833a24e5f83e5f8f4803e97b"}, + {file = "jupyter_server-2.13.0.tar.gz", hash = "sha256:c80bfb049ea20053c3d9641c2add4848b38073bf79f1729cea1faed32fc1c78e"}, ] [package.dependencies] @@ -1664,17 +1378,17 @@ websocket-client = "*" [package.extras] docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] -test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] [[package]] name = "jupyter-server-terminals" -version = "0.5.2" +version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server_terminals-0.5.2-py3-none-any.whl", hash = "sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80"}, - {file = "jupyter_server_terminals-0.5.2.tar.gz", hash = "sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8"}, + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, ] [package.dependencies] @@ -1687,13 +1401,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.1.1" +version = "4.1.5" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.1.1-py3-none-any.whl", hash = "sha256:fa3e8c18b804eac04e51ceebd9dd3dd396e08106816f0d09cc426799d7087632"}, - {file = "jupyterlab-4.1.1.tar.gz", hash = "sha256:8acc9f561729d8f32c14c294c397917cddfeeb13a5d46f811979b71b4911a9fd"}, + {file = "jupyterlab-4.1.5-py3-none-any.whl", hash = "sha256:3bc843382a25e1ab7bc31d9e39295a9f0463626692b7995597709c0ab236ab2c"}, + {file = "jupyterlab-4.1.5.tar.gz", hash = "sha256:c9ad75290cb10bfaff3624bf3fbb852319b4cce4c456613f8ebbaa98d03524db"}, ] [package.dependencies] @@ -1732,13 +1446,13 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.25.2" +version = "2.25.4" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.25.2-py3-none-any.whl", hash = "sha256:5b1798c9cc6a44f65c757de9f97fc06fc3d42535afbf47d2ace5e964ab447aaf"}, - {file = "jupyterlab_server-2.25.2.tar.gz", hash = "sha256:bd0ec7a99ebcedc8bcff939ef86e52c378e44c2707e053fcd81d046ce979ee63"}, + {file = "jupyterlab_server-2.25.4-py3-none-any.whl", hash = "sha256:eb645ecc8f9b24bac5decc7803b6d5363250e16ec5af814e516bc2c54dd88081"}, + {file = "jupyterlab_server-2.25.4.tar.gz", hash = "sha256:2098198e1e82e0db982440f9b5136175d73bea2cd42a6480aa6fd502cb23c4f9"}, ] [package.dependencies] @@ -1754,7 +1468,7 @@ requests = ">=2.31" [package.extras] docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] -test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] [[package]] name = "jupyterlab-widgets" @@ -1782,30 +1496,6 @@ files = [ {file = "kaleido-0.2.1-py2.py3-none-win_amd64.whl", hash = "sha256:4670985f28913c2d063c5734d125ecc28e40810141bdb0a46f15b76c1d45f23c"}, ] -[[package]] -name = "keyring" -version = "24.3.0" -description = "Store and access your passwords safely." -optional = false -python-versions = ">=3.8" -files = [ - {file = "keyring-24.3.0-py3-none-any.whl", hash = "sha256:4446d35d636e6a10b8bce7caa66913dd9eca5fd222ca03a3d42c38608ac30836"}, - {file = "keyring-24.3.0.tar.gz", hash = "sha256:e730ecffd309658a08ee82535a3b5ec4b4c8669a9be11efb66249d8e0aeb9a25"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} -importlib-resources = {version = "*", markers = "python_version < \"3.9\""} -"jaraco.classes" = "*" -jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} -pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} -SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} - -[package.extras] -completion = ["shtab (>=1.1.0)"] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - [[package]] name = "kiwisolver" version = "1.4.5" @@ -2036,58 +1726,58 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.4" +version = "3.7.5" description = "Python plotting package" optional = false python-versions = ">=3.8" files = [ - {file = "matplotlib-3.7.4-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:b71079239bd866bf56df023e5146de159cb0c7294e508830901f4d79e2d89385"}, - {file = "matplotlib-3.7.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bf91a42f6274a64cb41189120b620c02e574535ff6671fa836cade7701b06fbd"}, - {file = "matplotlib-3.7.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f757e8b42841d6add0cb69b42497667f0d25a404dcd50bd923ec9904e38414c4"}, - {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dfee00aa4bd291e08bb9461831c26ce0da85ca9781bb8794f2025c6e925281"}, - {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3640f33632beb3993b698b1be9d1c262b742761d6101f3c27b87b2185d25c875"}, - {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff539c4a17ecdf076ed808ee271ffae4a30dcb7e157b99ccae2c837262c07db6"}, - {file = "matplotlib-3.7.4-cp310-cp310-win32.whl", hash = "sha256:24b8f28af3e766195c09b780b15aa9f6710192b415ae7866b9c03dee7ec86370"}, - {file = "matplotlib-3.7.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fa193286712c3b6c3cfa5fe8a6bb563f8c52cc750006c782296e0807ce5e799"}, - {file = "matplotlib-3.7.4-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:b167f54cb4654b210c9624ec7b54e2b3b8de68c93a14668937e7e53df60770ec"}, - {file = "matplotlib-3.7.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7dfe6821f1944cb35603ff22e21510941bbcce7ccf96095beffaac890d39ce77"}, - {file = "matplotlib-3.7.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3c557d9165320dff3c5f2bb99bfa0b6813d3e626423ff71c40d6bc23b83c3339"}, - {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08372696b3bb45c563472a552a705bfa0942f0a8ffe084db8a4e8f9153fbdf9d"}, - {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81e1a7ac818000e8ac3ca696c3fdc501bc2d3adc89005e7b4e22ee5e9d51de98"}, - {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:390920a3949906bc4b0216198d378f2a640c36c622e3584dd0c79a7c59ae9f50"}, - {file = "matplotlib-3.7.4-cp311-cp311-win32.whl", hash = "sha256:62e094d8da26294634da9e7f1856beee3978752b1b530c8e1763d2faed60cc10"}, - {file = "matplotlib-3.7.4-cp311-cp311-win_amd64.whl", hash = "sha256:f8fc2df756105784e650605e024d36dc2d048d68e5c1b26df97ee25d1bd41f9f"}, - {file = "matplotlib-3.7.4-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:568574756127791903604e315c11aef9f255151e4cfe20ec603a70f9dda8e259"}, - {file = "matplotlib-3.7.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7d479aac338195e2199a8cfc03c4f2f55914e6a120177edae79e0340a6406457"}, - {file = "matplotlib-3.7.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:32183d4be84189a4c52b4b8861434d427d9118db2cec32986f98ed6c02dcfbb6"}, - {file = "matplotlib-3.7.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0037d066cca1f4bda626c507cddeb6f7da8283bc6a214da2db13ff2162933c52"}, - {file = "matplotlib-3.7.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44856632ebce88abd8efdc0a0dceec600418dcac06b72ae77af0019d260aa243"}, - {file = "matplotlib-3.7.4-cp312-cp312-win_amd64.whl", hash = "sha256:632fc938c22117d4241411191cfb88ac264a4c0a9ac702244641ddf30f0d739c"}, - {file = "matplotlib-3.7.4-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:ce163be048613b9d1962273708cc97e09ca05d37312e670d166cf332b80bbaff"}, - {file = "matplotlib-3.7.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:e680f49bb8052ba3b2698e370155d2b4afb49f9af1cc611a26579d5981e2852a"}, - {file = "matplotlib-3.7.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0604880e4327114054199108b7390f987f4f40ee5ce728985836889e11a780ba"}, - {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1e6abcde6fc52475f9d6a12b9f1792aee171ce7818ef6df5d61cb0b82816e6e8"}, - {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f59a70e2ec3212033ef6633ed07682da03f5249379722512a3a2a26a7d9a738e"}, - {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a9981b2a2dd9da06eca4ab5855d09b54b8ce7377c3e0e3957767b83219d652d"}, - {file = "matplotlib-3.7.4-cp38-cp38-win32.whl", hash = "sha256:83859ac26839660ecd164ee8311272074250b915ac300f9b2eccc84410f8953b"}, - {file = "matplotlib-3.7.4-cp38-cp38-win_amd64.whl", hash = "sha256:7a7709796ac59fe8debde68272388be6ed449c8971362eb5b60d280eac8dadde"}, - {file = "matplotlib-3.7.4-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:b1d70bc1ea1bf110bec64f4578de3e14947909a8887df4c1fd44492eca487955"}, - {file = "matplotlib-3.7.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c83f49e795a5de6c168876eea723f5b88355202f9603c55977f5356213aa8280"}, - {file = "matplotlib-3.7.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5c9133f230945fe10652eb33e43642e933896194ef6a4f8d5e79bb722bdb2000"}, - {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:798ff59022eeb276380ce9a73ba35d13c3d1499ab9b73d194fd07f1b0a41c304"}, - {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1707b20b25e90538c2ce8d4409e30f0ef1df4017cc65ad0439633492a973635b"}, - {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e6227ca8492baeef873cdd8e169a318efb5c3a25ce94e69727e7f964995b0b1"}, - {file = "matplotlib-3.7.4-cp39-cp39-win32.whl", hash = "sha256:5661c8639aded7d1bbf781373a359011cb1dd09199dee49043e9e68dd16f07ba"}, - {file = "matplotlib-3.7.4-cp39-cp39-win_amd64.whl", hash = "sha256:55eec941a4743f0bd3e5b8ee180e36b7ea8e62f867bf2613937c9f01b9ac06a2"}, - {file = "matplotlib-3.7.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ab16868714e5cc90ec8f7ff5d83d23bcd6559224d8e9cb5227c9f58748889fe8"}, - {file = "matplotlib-3.7.4-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c698b33f9a3f0b127a8e614c8fb4087563bb3caa9c9d95298722fa2400cdd3f"}, - {file = "matplotlib-3.7.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be3493bbcb4d255cb71de1f9050ac71682fce21a56089eadbcc8e21784cb12ee"}, - {file = "matplotlib-3.7.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f8c725d1dd2901b2e7ec6cd64165e00da2978cc23d4143cb9ef745bec88e6b04"}, - {file = "matplotlib-3.7.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:286332f8f45f8ffde2d2119b9fdd42153dccd5025fa9f451b4a3b5c086e26da5"}, - {file = "matplotlib-3.7.4-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:116ef0b43aa00ff69260b4cce39c571e4b8c6f893795b708303fa27d9b9d7548"}, - {file = "matplotlib-3.7.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c90590d4b46458677d80bc3218f3f1ac11fc122baa9134e0cb5b3e8fc3714052"}, - {file = "matplotlib-3.7.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de7c07069687be64fd9d119da3122ba13a8d399eccd3f844815f0dc78a870b2c"}, - {file = "matplotlib-3.7.4.tar.gz", hash = "sha256:7cd4fef8187d1dd0d9dcfdbaa06ac326d396fb8c71c647129f0bf56835d77026"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, + {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, + {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, + {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, + {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, + {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, + {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, + {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, + {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, + {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, + {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, ] [package.dependencies] @@ -2138,91 +1828,15 @@ files = [ {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, ] -[[package]] -name = "more-itertools" -version = "10.2.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.8" -files = [ - {file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"}, - {file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684"}, -] - -[[package]] -name = "msgpack" -version = "1.0.7" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862"}, - {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329"}, - {file = "msgpack-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681"}, - {file = "msgpack-1.0.7-cp310-cp310-win32.whl", hash = "sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9"}, - {file = "msgpack-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e"}, - {file = "msgpack-1.0.7-cp311-cp311-win32.whl", hash = "sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1"}, - {file = "msgpack-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"}, - {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"}, - {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c"}, - {file = "msgpack-1.0.7-cp38-cp38-win32.whl", hash = "sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2"}, - {file = "msgpack-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f"}, - {file = "msgpack-1.0.7-cp39-cp39-win32.whl", hash = "sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad"}, - {file = "msgpack-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3"}, - {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"}, -] - [[package]] name = "nbclient" -version = "0.9.0" +version = "0.10.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false python-versions = ">=3.8.0" files = [ - {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, - {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, + {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, + {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, ] [package.dependencies] @@ -2234,17 +1848,17 @@ traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] -test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" -version = "7.16.0" -description = "Converting Jupyter Notebooks" +version = "7.16.3" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.16.0-py3-none-any.whl", hash = "sha256:ad3dc865ea6e2768d31b7eb6c7ab3be014927216a5ece3ef276748dd809054c7"}, - {file = "nbconvert-7.16.0.tar.gz", hash = "sha256:813e6553796362489ae572e39ba1bff978536192fb518e10826b0e8cadf03ec8"}, + {file = "nbconvert-7.16.3-py3-none-any.whl", hash = "sha256:ddeff14beeeedf3dd0bc506623e41e4507e551736de59df69a91f86700292b3b"}, + {file = "nbconvert-7.16.3.tar.gz", hash = "sha256:a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142"}, ] [package.dependencies] @@ -2271,18 +1885,18 @@ docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sp qtpdf = ["nbconvert[qtpng]"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] webpdf = ["playwright"] [[package]] name = "nbformat" -version = "5.9.2" +version = "5.10.3" description = "The Jupyter Notebook format" optional = false python-versions = ">=3.8" files = [ - {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, - {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, + {file = "nbformat-5.10.3-py3-none-any.whl", hash = "sha256:d9476ca28676799af85385f409b49d95e199951477a159a576ef2a675151e5e8"}, + {file = "nbformat-5.10.3.tar.gz", hash = "sha256:60ed5e910ef7c6264b87d644f276b1b49e24011930deef54605188ddeb211685"}, ] [package.dependencies] @@ -2434,13 +2048,13 @@ files = [ [[package]] name = "notebook" -version = "7.1.0" +version = "7.1.2" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.1.0-py3-none-any.whl", hash = "sha256:a8fa4ccb5e5fe220f29d9900337efd7752bc6f2efe004d6f320db01f7743adc9"}, - {file = "notebook-7.1.0.tar.gz", hash = "sha256:99caf01ff166b1cc86355c9b37c1ba9bf566c1d7fc4ab57bb6f8f24e36c4260e"}, + {file = "notebook-7.1.2-py3-none-any.whl", hash = "sha256:fc6c24b9aef18d0cd57157c9c47e95833b9b0bdc599652639acf0bdb61dc7d5f"}, + {file = "notebook-7.1.2.tar.gz", hash = "sha256:efc2c80043909e0faa17fce9e9b37c059c03af0ec99a4d4db84cb21d9d2e936a"}, ] [package.dependencies] @@ -2457,13 +2071,13 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 [[package]] name = "notebook-shim" -version = "0.2.3" +version = "0.2.4" description = "A shim layer for notebook traits and config" optional = false python-versions = ">=3.7" files = [ - {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, - {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, ] [package.dependencies] @@ -2522,13 +2136,13 @@ files = [ [[package]] name = "packaging" -version = "23.2" +version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] @@ -2734,20 +2348,6 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa typing = ["typing-extensions"] xmp = ["defusedxml"] -[[package]] -name = "pkginfo" -version = "1.9.6" -description = "Query metadata from sdists / bdists / installed packages." -optional = false -python-versions = ">=3.6" -files = [ - {file = "pkginfo-1.9.6-py3-none-any.whl", hash = "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546"}, - {file = "pkginfo-1.9.6.tar.gz", hash = "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046"}, -] - -[package.extras] -testing = ["pytest", "pytest-cov"] - [[package]] name = "pkgutil-resolve-name" version = "1.3.10" @@ -2761,28 +2361,28 @@ files = [ [[package]] name = "platformdirs" -version = "3.11.0" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "plotly" -version = "5.18.0" +version = "5.20.0" description = "An open-source, interactive data visualization library for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "plotly-5.18.0-py3-none-any.whl", hash = "sha256:23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de"}, - {file = "plotly-5.18.0.tar.gz", hash = "sha256:360a31e6fbb49d12b007036eb6929521343d6bee2236f8459915821baefa2cbb"}, + {file = "plotly-5.20.0-py3-none-any.whl", hash = "sha256:837a9c8aa90f2c0a2f0d747b82544d014dc2a2bdde967b5bb1da25b53932d1a9"}, + {file = "plotly-5.20.0.tar.gz", hash = "sha256:bf901c805d22032cfa534b2ff7c5aa6b0659e037f19ec1e0cca7f585918b5c89"}, ] [package.dependencies] @@ -2818,78 +2418,15 @@ files = [ [package.dependencies] six = ">=1.5.2" -[[package]] -name = "poetry" -version = "1.7.1" -description = "Python dependency management and packaging made easy." -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "poetry-1.7.1-py3-none-any.whl", hash = "sha256:03d3807a0fb3bc1028cc3707dfd646aae629d58e476f7e7f062437680741c561"}, - {file = "poetry-1.7.1.tar.gz", hash = "sha256:b348a70e7d67ad9c0bd3d0ea255bc6df84c24cf4b16f8d104adb30b425d6ff32"}, -] - -[package.dependencies] -build = ">=1.0.3,<2.0.0" -cachecontrol = {version = ">=0.13.0,<0.14.0", extras = ["filecache"]} -cleo = ">=2.1.0,<3.0.0" -crashtest = ">=0.4.1,<0.5.0" -dulwich = ">=0.21.2,<0.22.0" -fastjsonschema = ">=2.18.0,<3.0.0" -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} -installer = ">=0.7.0,<0.8.0" -keyring = ">=24.0.0,<25.0.0" -packaging = ">=20.5" -pexpect = ">=4.7.0,<5.0.0" -pkginfo = ">=1.9.4,<2.0.0" -platformdirs = ">=3.0.0,<4.0.0" -poetry-core = "1.8.1" -poetry-plugin-export = ">=1.6.0,<2.0.0" -pyproject-hooks = ">=1.0.0,<2.0.0" -requests = ">=2.26,<3.0" -requests-toolbelt = ">=0.9.1,<2" -shellingham = ">=1.5,<2.0" -tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} -tomlkit = ">=0.11.4,<1.0.0" -trove-classifiers = ">=2022.5.19" -virtualenv = ">=20.23.0,<21.0.0" -xattr = {version = ">=0.10.0,<0.11.0", markers = "sys_platform == \"darwin\""} - -[[package]] -name = "poetry-core" -version = "1.8.1" -description = "Poetry PEP 517 Build Backend" -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "poetry_core-1.8.1-py3-none-any.whl", hash = "sha256:194832b24f3283e01c5402eae71a6aae850ecdfe53f50a979c76bf7aa5010ffa"}, - {file = "poetry_core-1.8.1.tar.gz", hash = "sha256:67a76c671da2a70e55047cddda83566035b701f7e463b32a2abfeac6e2a16376"}, -] - -[[package]] -name = "poetry-plugin-export" -version = "1.6.0" -description = "Poetry plugin to export the dependencies to various formats" -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "poetry_plugin_export-1.6.0-py3-none-any.whl", hash = "sha256:2dce6204c9318f1f6509a11a03921fb3f461b201840b59f1c237b6ab454dabcf"}, - {file = "poetry_plugin_export-1.6.0.tar.gz", hash = "sha256:091939434984267a91abf2f916a26b00cff4eee8da63ec2a24ba4b17cf969a59"}, -] - -[package.dependencies] -poetry = ">=1.6.0,<2.0.0" -poetry-core = ">=1.7.0,<2.0.0" - [[package]] name = "prometheus-client" -version = "0.19.0" +version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.19.0-py3-none-any.whl", hash = "sha256:c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92"}, - {file = "prometheus_client-0.19.0.tar.gz", hash = "sha256:4585b0d1223148c27a225b10dbec5ae9bc4c81a99a3fa80774fa6209935324e1"}, + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -2964,13 +2501,13 @@ tests = ["pytest"] [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -3041,41 +2578,27 @@ files = [ [[package]] name = "pyparsing" -version = "3.1.1" +version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, - {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] -[[package]] -name = "pyproject-hooks" -version = "1.0.0" -description = "Wrappers to call pyproject.toml-based build backend hooks." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyproject_hooks-1.0.0-py3-none-any.whl", hash = "sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8"}, - {file = "pyproject_hooks-1.0.0.tar.gz", hash = "sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"}, -] - -[package.dependencies] -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} - [[package]] name = "pytest" -version = "8.0.0" +version = "8.1.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"}, - {file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] @@ -3083,11 +2606,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.3.0,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -3107,29 +2630,15 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] -[[package]] -name = "pytest-lazy-fixture" -version = "0.6.3" -description = "It helps to use fixtures in pytest.mark.parametrize" -optional = false -python-versions = "*" -files = [ - {file = "pytest-lazy-fixture-0.6.3.tar.gz", hash = "sha256:0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac"}, - {file = "pytest_lazy_fixture-0.6.3-py3-none-any.whl", hash = "sha256:e0b379f38299ff27a653f03eaa69b08a6fd4484e46fd1c9907d984b9f9daeda6"}, -] - -[package.dependencies] -pytest = ">=3.2.5" - [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -3180,30 +2689,19 @@ files = [ {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, ] -[[package]] -name = "pywin32-ctypes" -version = "0.2.2" -description = "A (partial) reimplementation of pywin32 using ctypes/cffi" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, - {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, -] - [[package]] name = "pywinpty" -version = "2.0.12" +version = "2.0.13" description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.8" files = [ - {file = "pywinpty-2.0.12-cp310-none-win_amd64.whl", hash = "sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575"}, - {file = "pywinpty-2.0.12-cp311-none-win_amd64.whl", hash = "sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722"}, - {file = "pywinpty-2.0.12-cp312-none-win_amd64.whl", hash = "sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca"}, - {file = "pywinpty-2.0.12-cp38-none-win_amd64.whl", hash = "sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d"}, - {file = "pywinpty-2.0.12-cp39-none-win_amd64.whl", hash = "sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4"}, - {file = "pywinpty-2.0.12.tar.gz", hash = "sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd"}, + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, ] [[package]] @@ -3413,117 +2911,15 @@ packaging = "*" [package.extras] test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] -[[package]] -name = "rapidfuzz" -version = "3.6.1" -description = "rapid fuzzy string matching" -optional = false -python-versions = ">=3.8" -files = [ - {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ac434fc71edda30d45db4a92ba5e7a42c7405e1a54cb4ec01d03cc668c6dcd40"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a791168e119cfddf4b5a40470620c872812042f0621e6a293983a2d52372db0"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a2f3e9df346145c2be94e4d9eeffb82fab0cbfee85bd4a06810e834fe7c03fa"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23de71e7f05518b0bbeef55d67b5dbce3bcd3e2c81e7e533051a2e9401354eb0"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d056e342989248d2bdd67f1955bb7c3b0ecfa239d8f67a8dfe6477b30872c607"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01835d02acd5d95c1071e1da1bb27fe213c84a013b899aba96380ca9962364bc"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed0f712e0bb5fea327e92aec8a937afd07ba8de4c529735d82e4c4124c10d5a0"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96cd19934f76a1264e8ecfed9d9f5291fde04ecb667faef5f33bdbfd95fe2d1f"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e06c4242a1354cf9d48ee01f6f4e6e19c511d50bb1e8d7d20bcadbb83a2aea90"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d73dcfe789d37c6c8b108bf1e203e027714a239e50ad55572ced3c004424ed3b"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:06e98ff000e2619e7cfe552d086815671ed09b6899408c2c1b5103658261f6f3"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:08b6fb47dd889c69fbc0b915d782aaed43e025df6979b6b7f92084ba55edd526"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a1788ebb5f5b655a15777e654ea433d198f593230277e74d51a2a1e29a986283"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c65f92881753aa1098c77818e2b04a95048f30edbe9c3094dc3707d67df4598b"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:4243a9c35667a349788461aae6471efde8d8800175b7db5148a6ab929628047f"}, - {file = "rapidfuzz-3.6.1-cp310-cp310-win_arm64.whl", hash = "sha256:f59d19078cc332dbdf3b7b210852ba1f5db8c0a2cd8cc4c0ed84cc00c76e6802"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fbc07e2e4ac696497c5f66ec35c21ddab3fc7a406640bffed64c26ab2f7ce6d6"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cced1a8852652813f30fb5d4b8f9b237112a0bbaeebb0f4cc3611502556764"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82300e5f8945d601c2daaaac139d5524d7c1fdf719aa799a9439927739917460"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf97c321fd641fea2793abce0e48fa4f91f3c202092672f8b5b4e781960b891"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7420e801b00dee4a344ae2ee10e837d603461eb180e41d063699fb7efe08faf0"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060bd7277dc794279fa95522af355034a29c90b42adcb7aa1da358fc839cdb11"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7e3375e4f2bfec77f907680328e4cd16cc64e137c84b1886d547ab340ba6928"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a490cd645ef9d8524090551016f05f052e416c8adb2d8b85d35c9baa9d0428ab"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2e03038bfa66d2d7cffa05d81c2f18fd6acbb25e7e3c068d52bb7469e07ff382"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:2b19795b26b979c845dba407fe79d66975d520947b74a8ab6cee1d22686f7967"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:064c1d66c40b3a0f488db1f319a6e75616b2e5fe5430a59f93a9a5e40a656d15"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3c772d04fb0ebeece3109d91f6122b1503023086a9591a0b63d6ee7326bd73d9"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:841eafba6913c4dfd53045835545ba01a41e9644e60920c65b89c8f7e60c00a9"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-win32.whl", hash = "sha256:266dd630f12696ea7119f31d8b8e4959ef45ee2cbedae54417d71ae6f47b9848"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:d79aec8aeee02ab55d0ddb33cea3ecd7b69813a48e423c966a26d7aab025cdfe"}, - {file = "rapidfuzz-3.6.1-cp311-cp311-win_arm64.whl", hash = "sha256:484759b5dbc5559e76fefaa9170147d1254468f555fd9649aea3bad46162a88b"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b2ef4c0fd3256e357b70591ffb9e8ed1d439fb1f481ba03016e751a55261d7c1"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:588c4b20fa2fae79d60a4e438cf7133d6773915df3cc0a7f1351da19eb90f720"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7142ee354e9c06e29a2636b9bbcb592bb00600a88f02aa5e70e4f230347b373e"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1dfc557c0454ad22382373ec1b7df530b4bbd974335efe97a04caec936f2956a"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03f73b381bdeccb331a12c3c60f1e41943931461cdb52987f2ecf46bfc22f50d"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b0ccc2ec1781c7e5370d96aef0573dd1f97335343e4982bdb3a44c133e27786"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da3e8c9f7e64bb17faefda085ff6862ecb3ad8b79b0f618a6cf4452028aa2222"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fde9b14302a31af7bdafbf5cfbb100201ba21519be2b9dedcf4f1048e4fbe65d"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1a23eee225dfb21c07f25c9fcf23eb055d0056b48e740fe241cbb4b22284379"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e49b9575d16c56c696bc7b06a06bf0c3d4ef01e89137b3ddd4e2ce709af9fe06"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:0a9fc714b8c290261669f22808913aad49553b686115ad0ee999d1cb3df0cd66"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:a3ee4f8f076aa92184e80308fc1a079ac356b99c39408fa422bbd00145be9854"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f056ba42fd2f32e06b2c2ba2443594873cfccc0c90c8b6327904fc2ddf6d5799"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-win32.whl", hash = "sha256:5d82b9651e3d34b23e4e8e201ecd3477c2baa17b638979deeabbb585bcb8ba74"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:dad55a514868dae4543ca48c4e1fc0fac704ead038dafedf8f1fc0cc263746c1"}, - {file = "rapidfuzz-3.6.1-cp312-cp312-win_arm64.whl", hash = "sha256:3c84294f4470fcabd7830795d754d808133329e0a81d62fcc2e65886164be83b"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e19d519386e9db4a5335a4b29f25b8183a1c3f78cecb4c9c3112e7f86470e37f"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01eb03cd880a294d1bf1a583fdd00b87169b9cc9c9f52587411506658c864d73"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:be368573255f8fbb0125a78330a1a40c65e9ba3c5ad129a426ff4289099bfb41"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3e5af946f419c30f5cb98b69d40997fe8580efe78fc83c2f0f25b60d0e56efb"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f382f7ffe384ce34345e1c0b2065451267d3453cadde78946fbd99a59f0cc23c"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be156f51f3a4f369e758505ed4ae64ea88900dcb2f89d5aabb5752676d3f3d7e"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1936d134b6c513fbe934aeb668b0fee1ffd4729a3c9d8d373f3e404fbb0ce8a0"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ff8eaf4a9399eb2bebd838f16e2d1ded0955230283b07376d68947bbc2d33d"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae598a172e3a95df3383634589660d6b170cc1336fe7578115c584a99e0ba64d"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cd4ba4c18b149da11e7f1b3584813159f189dc20833709de5f3df8b1342a9759"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:0402f1629e91a4b2e4aee68043a30191e5e1b7cd2aa8dacf50b1a1bcf6b7d3ab"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:1e12319c6b304cd4c32d5db00b7a1e36bdc66179c44c5707f6faa5a889a317c0"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0bbfae35ce4de4c574b386c43c78a0be176eeddfdae148cb2136f4605bebab89"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-win32.whl", hash = "sha256:7fec74c234d3097612ea80f2a80c60720eec34947066d33d34dc07a3092e8105"}, - {file = "rapidfuzz-3.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:a553cc1a80d97459d587529cc43a4c7c5ecf835f572b671107692fe9eddf3e24"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:757dfd7392ec6346bd004f8826afb3bf01d18a723c97cbe9958c733ab1a51791"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2963f4a3f763870a16ee076796be31a4a0958fbae133dbc43fc55c3968564cf5"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d2f0274595cc5b2b929c80d4e71b35041104b577e118cf789b3fe0a77b37a4c5"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f211e366e026de110a4246801d43a907cd1a10948082f47e8a4e6da76fef52"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a59472b43879012b90989603aa5a6937a869a72723b1bf2ff1a0d1edee2cc8e6"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a03863714fa6936f90caa7b4b50ea59ea32bb498cc91f74dc25485b3f8fccfe9"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd95b6b7bfb1584f806db89e1e0c8dbb9d25a30a4683880c195cc7f197eaf0c"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7183157edf0c982c0b8592686535c8b3e107f13904b36d85219c77be5cefd0d8"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ad9d74ef7c619b5b0577e909582a1928d93e07d271af18ba43e428dc3512c2a1"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b53137d81e770c82189e07a8f32722d9e4260f13a0aec9914029206ead38cac3"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:49b9ed2472394d306d5dc967a7de48b0aab599016aa4477127b20c2ed982dbf9"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:dec307b57ec2d5054d77d03ee4f654afcd2c18aee00c48014cb70bfed79597d6"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4381023fa1ff32fd5076f5d8321249a9aa62128eb3f21d7ee6a55373e672b261"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-win32.whl", hash = "sha256:8d7a072f10ee57c8413c8ab9593086d42aaff6ee65df4aa6663eecdb7c398dca"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:ebcfb5bfd0a733514352cfc94224faad8791e576a80ffe2fd40b2177bf0e7198"}, - {file = "rapidfuzz-3.6.1-cp39-cp39-win_arm64.whl", hash = "sha256:1c47d592e447738744905c18dda47ed155620204714e6df20eb1941bb1ba315e"}, - {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:eef8b346ab331bec12bbc83ac75641249e6167fab3d84d8f5ca37fd8e6c7a08c"}, - {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53251e256017e2b87f7000aee0353ba42392c442ae0bafd0f6b948593d3f68c6"}, - {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dede83a6b903e3ebcd7e8137e7ff46907ce9316e9d7e7f917d7e7cdc570ee05"}, - {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e4da90e4c2b444d0a171d7444ea10152e07e95972bb40b834a13bdd6de1110c"}, - {file = "rapidfuzz-3.6.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ca3dfcf74f2b6962f411c33dd95b0adf3901266e770da6281bc96bb5a8b20de9"}, - {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bcc957c0a8bde8007f1a8a413a632a1a409890f31f73fe764ef4eac55f59ca87"}, - {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:692c9a50bea7a8537442834f9bc6b7d29d8729a5b6379df17c31b6ab4df948c2"}, - {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c23ceaea27e790ddd35ef88b84cf9d721806ca366199a76fd47cfc0457a81b"}, - {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b155e67fff215c09f130555002e42f7517d0ea72cbd58050abb83cb7c880cec"}, - {file = "rapidfuzz-3.6.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3028ee8ecc48250607fa8a0adce37b56275ec3b1acaccd84aee1f68487c8557b"}, - {file = "rapidfuzz-3.6.1.tar.gz", hash = "sha256:35660bee3ce1204872574fa041c7ad7ec5175b3053a4cb6e181463fc07013de7"}, -] - -[package.extras] -full = ["numpy"] - [[package]] name = "referencing" -version = "0.33.0" +version = "0.34.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, - {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, + {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, + {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, ] [package.dependencies] @@ -3551,20 +2947,6 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -3736,21 +3118,6 @@ dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] -[[package]] -name = "secretstorage" -version = "3.3.3" -description = "Python bindings to FreeDesktop.org Secret Service API" -optional = false -python-versions = ">=3.6" -files = [ - {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, - {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, -] - -[package.dependencies] -cryptography = ">=2.0" -jeepney = ">=0.6" - [[package]] name = "send2trash" version = "1.8.2" @@ -3767,17 +3134,6 @@ nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] -[[package]] -name = "shellingham" -version = "1.5.4" -description = "Tool to Detect Surrounding Shell" -optional = false -python-versions = ">=3.7" -files = [ - {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, - {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, -] - [[package]] name = "six" version = "1.16.0" @@ -3791,13 +3147,13 @@ files = [ [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -4047,13 +3403,13 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] [[package]] name = "terminado" -version = "0.18.0" +version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." optional = false python-versions = ">=3.8" files = [ - {file = "terminado-0.18.0-py3-none-any.whl", hash = "sha256:87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e"}, - {file = "terminado-0.18.0.tar.gz", hash = "sha256:1ea08a89b835dd1b8c0c900d92848147cef2537243361b2e3f4dc15df9b6fded"}, + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, ] [package.dependencies] @@ -4097,13 +3453,13 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.3" +version = "0.12.4" description = "Style preserving TOML library" optional = false python-versions = ">=3.7" files = [ - {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"}, - {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, + {file = "tomlkit-0.12.4-py3-none-any.whl", hash = "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b"}, + {file = "tomlkit-0.12.4.tar.gz", hash = "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3"}, ] [[package]] @@ -4148,50 +3504,39 @@ telegram = ["requests"] [[package]] name = "traitlets" -version = "5.14.1" +version = "5.14.2" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, - {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, + {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, + {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] - -[[package]] -name = "trove-classifiers" -version = "2024.1.31" -description = "Canonical source for classifiers on PyPI (pypi.org)." -optional = false -python-versions = "*" -files = [ - {file = "trove-classifiers-2024.1.31.tar.gz", hash = "sha256:bfdfe60bbf64985c524416afb637ecc79c558e0beb4b7f52b0039e01044b0229"}, - {file = "trove_classifiers-2024.1.31-py3-none-any.whl", hash = "sha256:854aba3358f3cf10e5c0916aa533f5a39e27aadd8ade26a54cdc2a93257e39c4"}, -] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.1)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "types-python-dateutil" -version = "2.8.19.20240106" +version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.8.19.20240106.tar.gz", hash = "sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f"}, - {file = "types_python_dateutil-2.8.19.20240106-py3-none-any.whl", hash = "sha256:efbbdc54590d0f16152fa103c9879c7d4a00e82078f6e2cf01769042165acaa2"}, + {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, + {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, ] [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] @@ -4236,13 +3581,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.0" +version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, - {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] @@ -4251,26 +3596,6 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] -[[package]] -name = "virtualenv" -version = "20.25.0" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.7" -files = [ - {file = "virtualenv-20.25.0-py3-none-any.whl", hash = "sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3"}, - {file = "virtualenv-20.25.0.tar.gz", hash = "sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<5" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] - [[package]] name = "wcwidth" version = "0.2.13" @@ -4438,106 +3763,22 @@ io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "ra parallel = ["dask[complete]"] viz = ["matplotlib", "nc-time-axis", "seaborn"] -[[package]] -name = "xattr" -version = "0.10.1" -description = "Python wrapper for extended filesystem attributes" -optional = false -python-versions = "*" -files = [ - {file = "xattr-0.10.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:16a660a883e703b311d1bbbcafc74fa877585ec081cd96e8dd9302c028408ab1"}, - {file = "xattr-0.10.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1e2973e72faa87ca29d61c23b58c3c89fe102d1b68e091848b0e21a104123503"}, - {file = "xattr-0.10.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:13279fe8f7982e3cdb0e088d5cb340ce9cbe5ef92504b1fd80a0d3591d662f68"}, - {file = "xattr-0.10.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1dc9b9f580ef4b8ac5e2c04c16b4d5086a611889ac14ecb2e7e87170623a0b75"}, - {file = "xattr-0.10.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:485539262c2b1f5acd6b6ea56e0da2bc281a51f74335c351ea609c23d82c9a79"}, - {file = "xattr-0.10.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:295b3ab335fcd06ca0a9114439b34120968732e3f5e9d16f456d5ec4fa47a0a2"}, - {file = "xattr-0.10.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:a126eb38e14a2f273d584a692fe36cff760395bf7fc061ef059224efdb4eb62c"}, - {file = "xattr-0.10.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:b0e919c24f5b74428afa91507b15e7d2ef63aba98e704ad13d33bed1288dca81"}, - {file = "xattr-0.10.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:e31d062cfe1aaeab6ba3db6bd255f012d105271018e647645941d6609376af18"}, - {file = "xattr-0.10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:209fb84c09b41c2e4cf16dd2f481bb4a6e2e81f659a47a60091b9bcb2e388840"}, - {file = "xattr-0.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c4120090dac33eddffc27e487f9c8f16b29ff3f3f8bcb2251b2c6c3f974ca1e1"}, - {file = "xattr-0.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3e739d624491267ec5bb740f4eada93491de429d38d2fcdfb97b25efe1288eca"}, - {file = "xattr-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2677d40b95636f3482bdaf64ed9138fb4d8376fb7933f434614744780e46e42d"}, - {file = "xattr-0.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40039f1532c4456fd0f4c54e9d4e01eb8201248c321c6c6856262d87e9a99593"}, - {file = "xattr-0.10.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:148466e5bb168aba98f80850cf976e931469a3c6eb11e9880d9f6f8b1e66bd06"}, - {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0aedf55b116beb6427e6f7958ccd80a8cbc80e82f87a4cd975ccb61a8d27b2ee"}, - {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c3024a9ff157247c8190dd0eb54db4a64277f21361b2f756319d9d3cf20e475f"}, - {file = "xattr-0.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f1be6e733e9698f645dbb98565bb8df9b75e80e15a21eb52787d7d96800e823b"}, - {file = "xattr-0.10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7880c8a54c18bc091a4ce0adc5c6d81da1c748aec2fe7ac586d204d6ec7eca5b"}, - {file = "xattr-0.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:89c93b42c3ba8aedbc29da759f152731196c2492a2154371c0aae3ef8ba8301b"}, - {file = "xattr-0.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6b905e808df61b677eb972f915f8a751960284358b520d0601c8cbc476ba2df6"}, - {file = "xattr-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ef954d0655f93a34d07d0cc7e02765ec779ff0b59dc898ee08c6326ad614d5"}, - {file = "xattr-0.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:199b20301b6acc9022661412346714ce764d322068ef387c4de38062474db76c"}, - {file = "xattr-0.10.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec0956a8ab0f0d3f9011ba480f1e1271b703d11542375ef73eb8695a6bd4b78b"}, - {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffcb57ca1be338d69edad93cf59aac7c6bb4dbb92fd7bf8d456c69ea42f7e6d2"}, - {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f0563196ee54756fe2047627d316977dc77d11acd7a07970336e1a711e934db"}, - {file = "xattr-0.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc354f086f926a1c7f04886f97880fed1a26d20e3bc338d0d965fd161dbdb8ab"}, - {file = "xattr-0.10.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c0cd2d02ef2fb45ecf2b0da066a58472d54682c6d4f0452dfe7ae2f3a76a42ea"}, - {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49626096ddd72dcc1654aadd84b103577d8424f26524a48d199847b5d55612d0"}, - {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceaa26bef8fcb17eb59d92a7481c2d15d20211e217772fb43c08c859b01afc6a"}, - {file = "xattr-0.10.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c014c371391f28f8cd27d73ea59f42b30772cd640b5a2538ad4f440fd9190b"}, - {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:46c32cd605673606b9388a313b0050ee7877a0640d7561eea243ace4fa2cc5a6"}, - {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:772b22c4ff791fe5816a7c2a1c9fcba83f9ab9bea138eb44d4d70f34676232b4"}, - {file = "xattr-0.10.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:183ad611a2d70b5a3f5f7aadef0fcef604ea33dcf508228765fd4ddac2c7321d"}, - {file = "xattr-0.10.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8068df3ebdfa9411e58d5ae4a05d807ec5994645bb01af66ec9f6da718b65c5b"}, - {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bc40570155beb85e963ae45300a530223d9822edfdf09991b880e69625ba38a"}, - {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:436e1aaf23c07e15bed63115f1712d2097e207214fc6bcde147c1efede37e2c5"}, - {file = "xattr-0.10.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7298455ccf3a922d403339781b10299b858bb5ec76435445f2da46fb768e31a5"}, - {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:986c2305c6c1a08f78611eb38ef9f1f47682774ce954efb5a4f3715e8da00d5f"}, - {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5dc6099e76e33fa3082a905fe59df766b196534c705cf7a2e3ad9bed2b8a180e"}, - {file = "xattr-0.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:042ad818cda6013162c0bfd3816f6b74b7700e73c908cde6768da824686885f8"}, - {file = "xattr-0.10.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9d4c306828a45b41b76ca17adc26ac3dc00a80e01a5ba85d71df2a3e948828f2"}, - {file = "xattr-0.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a606280b0c9071ef52572434ecd3648407b20df3d27af02c6592e84486b05894"}, - {file = "xattr-0.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5b49d591cf34cda2079fd7a5cb2a7a1519f54dc2e62abe3e0720036f6ed41a85"}, - {file = "xattr-0.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8705ac6791426559c1a5c2b88bb2f0e83dc5616a09b4500899bfff6a929302"}, - {file = "xattr-0.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5ea974930e876bc5c146f54ac0f85bb39b7b5de2b6fc63f90364712ae368ebe"}, - {file = "xattr-0.10.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f55a2dd73a12a1ae5113c5d9cd4b4ab6bf7950f4d76d0a1a0c0c4264d50da61d"}, - {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:475c38da0d3614cc5564467c4efece1e38bd0705a4dbecf8deeb0564a86fb010"}, - {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:925284a4a28e369459b2b7481ea22840eed3e0573a4a4c06b6b0614ecd27d0a7"}, - {file = "xattr-0.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa32f1b45fed9122bed911de0fcc654da349e1f04fa4a9c8ef9b53e1cc98b91e"}, - {file = "xattr-0.10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c5d3d0e728bace64b74c475eb4da6148cd172b2d23021a1dcd055d92f17619ac"}, - {file = "xattr-0.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8faaacf311e2b5cc67c030c999167a78a9906073e6abf08eaa8cf05b0416515c"}, - {file = "xattr-0.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cc6b8d5ca452674e1a96e246a3d2db5f477aecbc7c945c73f890f56323e75203"}, - {file = "xattr-0.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3725746a6502f40f72ef27e0c7bfc31052a239503ff3eefa807d6b02a249be22"}, - {file = "xattr-0.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:789bd406d1aad6735e97b20c6d6a1701e1c0661136be9be862e6a04564da771f"}, - {file = "xattr-0.10.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9a7a807ab538210ff8532220d8fc5e2d51c212681f63dbd4e7ede32543b070f"}, - {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3e5825b5fc99ecdd493b0cc09ec35391e7a451394fdf623a88b24726011c950d"}, - {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:80638d1ce7189dc52f26c234cee3522f060fadab6a8bc3562fe0ddcbe11ba5a4"}, - {file = "xattr-0.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3ff0dbe4a6ce2ce065c6de08f415bcb270ecfd7bf1655a633ddeac695ce8b250"}, - {file = "xattr-0.10.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5267e5f9435c840d2674194150b511bef929fa7d3bc942a4a75b9eddef18d8d8"}, - {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b27dfc13b193cb290d5d9e62f806bb9a99b00cd73bb6370d556116ad7bb5dc12"}, - {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:636ebdde0277bce4d12d2ef2550885804834418fee0eb456b69be928e604ecc4"}, - {file = "xattr-0.10.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d60c27922ec80310b45574351f71e0dd3a139c5295e8f8b19d19c0010196544f"}, - {file = "xattr-0.10.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b34df5aad035d0343bd740a95ca30db99b776e2630dca9cc1ba8e682c9cc25ea"}, - {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24a7c04ff666d0fe905dfee0a84bc899d624aeb6dccd1ea86b5c347f15c20c1"}, - {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3878e1aff8eca64badad8f6d896cb98c52984b1e9cd9668a3ab70294d1ef92d"}, - {file = "xattr-0.10.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4abef557028c551d59cf2fb3bf63f2a0c89f00d77e54c1c15282ecdd56943496"}, - {file = "xattr-0.10.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0e14bd5965d3db173d6983abdc1241c22219385c22df8b0eb8f1846c15ce1fee"}, - {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f9be588a4b6043b03777d50654c6079af3da60cc37527dbb80d36ec98842b1e"}, - {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bc4ae264aa679aacf964abf3ea88e147eb4a22aea6af8c6d03ebdebd64cfd6"}, - {file = "xattr-0.10.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:827b5a97673b9997067fde383a7f7dc67342403093b94ea3c24ae0f4f1fec649"}, - {file = "xattr-0.10.1.tar.gz", hash = "sha256:c12e7d81ffaa0605b3ac8c22c2994a8e18a9cf1c59287a1b7722a2289c952ec5"}, -] - -[package.dependencies] -cffi = ">=1.0" - [[package]] name = "zipp" -version = "3.17.0" +version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" python-versions = ">=3.8, < 3.12" -content-hash = "1d550d3ccb40e9c1bb1c744bb46df1dc875b3f921666f20a2975004c63bd2049" +content-hash = "c9d6bda9bd244a5d2a478769ad675aca9d5dc5b4299219511a72556b67355c9d" diff --git a/pyproject.toml b/pyproject.toml index 22d56276..47a1a1fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,12 +28,10 @@ scipy = "^1.7.3" jupyter = "^1.0.0" notebook = "^7.0.0" ipykernel = "^6.0.3" -pytest-lazy-fixture = "^0.6.3" matplotlib = "^3.5.1" plotly = "^5.8.0" kaleido = "0.2.1" requests = "^2.29.0" -poetry-plugin-export = "^1.6.0" [tool.poetry.group.dev.dependencies] Sphinx = "^7.0.0" diff --git a/requirements.txt b/requirements.txt index 9b2d0572..4e78c6a7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -anyio==4.2.0 ; python_version >= "3.8" and python_version < "3.12" +anyio==4.3.0 ; python_version >= "3.8" and python_version < "3.12" appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.12" and (platform_system == "Darwin" or sys_platform == "darwin") argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.12" argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.12" @@ -10,154 +10,125 @@ babel==2.14.0 ; python_version >= "3.8" and python_version < "3.12" backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.12" beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.12" bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.12" -build==1.0.3 ; python_version >= "3.8" and python_version < "3.12" -cachecontrol[filecache]==0.13.1 ; python_version >= "3.8" and python_version < "3.12" certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.12" cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.12" charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.12" -cleo==2.1.0 ; python_version >= "3.8" and python_version < "3.12" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and (sys_platform == "win32" or os_name == "nt") -comm==0.2.1 ; python_version >= "3.8" and python_version < "3.12" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" +comm==0.2.2 ; python_version >= "3.8" and python_version < "3.12" contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.12" -crashtest==0.4.1 ; python_version >= "3.8" and python_version < "3.12" -cryptography==42.0.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.12" debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.12" decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.12" defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.12" -distlib==0.3.8 ; python_version >= "3.8" and python_version < "3.12" -dulwich==0.21.7 ; python_version >= "3.8" and python_version < "3.12" exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.8" and python_version < "3.12" fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.12" -filelock==3.13.1 ; python_version >= "3.8" and python_version < "3.12" -fonttools==4.48.1 ; python_version >= "3.8" and python_version < "3.12" +fonttools==4.50.0 ; python_version >= "3.8" and python_version < "3.12" fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.12" georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.12" h11==0.14.0 ; python_version >= "3.8" and python_version < "3.12" hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.12" -httpcore==1.0.2 ; python_version >= "3.8" and python_version < "3.12" -httpx==0.26.0 ; python_version >= "3.8" and python_version < "3.12" +httpcore==1.0.5 ; python_version >= "3.8" and python_version < "3.12" +httpx==0.27.0 ; python_version >= "3.8" and python_version < "3.12" idna==3.6 ; python_version >= "3.8" and python_version < "3.12" -importlib-metadata==7.0.1 ; python_version >= "3.8" and python_version < "3.12" -importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.12" +importlib-metadata==7.1.0 ; python_version >= "3.8" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.8" and python_version < "3.12" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.12" -installer==0.7.0 ; python_version >= "3.8" and python_version < "3.12" -ipykernel==6.29.2 ; python_version >= "3.8" and python_version < "3.12" +ipykernel==6.29.4 ; python_version >= "3.8" and python_version < "3.12" ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.12" ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.12" isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.12" -jaraco-classes==3.3.1 ; python_version >= "3.8" and python_version < "3.12" jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.12" -jeepney==0.8.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.12" -json5==0.9.14 ; python_version >= "3.8" and python_version < "3.12" +json5==0.9.24 ; python_version >= "3.8" and python_version < "3.12" jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.12" jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.12" jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.12" jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-client==8.6.0 ; python_version >= "3.8" and python_version < "3.12" +jupyter-client==8.6.1 ; python_version >= "3.8" and python_version < "3.12" jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.12" -jupyter-core==5.7.1 ; python_version >= "3.8" and python_version < "3.12" -jupyter-events==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -jupyter-lsp==2.2.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server-terminals==0.5.2 ; python_version >= "3.8" and python_version < "3.12" -jupyter-server==2.12.5 ; python_version >= "3.8" and python_version < "3.12" +jupyter-core==5.7.2 ; python_version >= "3.8" and python_version < "3.12" +jupyter-events==0.10.0 ; python_version >= "3.8" and python_version < "3.12" +jupyter-lsp==2.2.4 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server-terminals==0.5.3 ; python_version >= "3.8" and python_version < "3.12" +jupyter-server==2.13.0 ; python_version >= "3.8" and python_version < "3.12" jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab-server==2.25.2 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab-server==2.25.4 ; python_version >= "3.8" and python_version < "3.12" jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.12" -jupyterlab==4.1.1 ; python_version >= "3.8" and python_version < "3.12" +jupyterlab==4.1.5 ; python_version >= "3.8" and python_version < "3.12" kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.12" -keyring==24.3.0 ; python_version >= "3.8" and python_version < "3.12" kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.12" markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.12" matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.12" -matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "3.12" +matplotlib==3.7.5 ; python_version >= "3.8" and python_version < "3.12" mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.12" -more-itertools==10.2.0 ; python_version >= "3.8" and python_version < "3.12" -msgpack==1.0.7 ; python_version >= "3.8" and python_version < "3.12" -nbclient==0.9.0 ; python_version >= "3.8" and python_version < "3.12" -nbconvert==7.16.0 ; python_version >= "3.8" and python_version < "3.12" -nbformat==5.9.2 ; python_version >= "3.8" and python_version < "3.12" +nbclient==0.10.0 ; python_version >= "3.8" and python_version < "3.12" +nbconvert==7.16.3 ; python_version >= "3.8" and python_version < "3.12" +nbformat==5.10.3 ; python_version >= "3.8" and python_version < "3.12" ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.12" nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.12" -notebook-shim==0.2.3 ; python_version >= "3.8" and python_version < "3.12" -notebook==7.1.0 ; python_version >= "3.8" and python_version < "3.12" +notebook-shim==0.2.4 ; python_version >= "3.8" and python_version < "3.12" +notebook==7.1.2 ; python_version >= "3.8" and python_version < "3.12" numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.12" overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.12" -packaging==23.2 ; python_version >= "3.8" and python_version < "3.12" +packaging==24.0 ; python_version >= "3.8" and python_version < "3.12" pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.12" pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.12" parso==0.8.3 ; python_version >= "3.8" and python_version < "3.12" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" +pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.12" and sys_platform != "win32" pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.12" pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.12" -pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "3.12" pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==3.11.0 ; python_version >= "3.8" and python_version < "3.12" -plotly==5.18.0 ; python_version >= "3.8" and python_version < "3.12" +platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.12" +plotly==5.20.0 ; python_version >= "3.8" and python_version < "3.12" pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.12" -poetry-core==1.8.1 ; python_version >= "3.8" and python_version < "3.12" -poetry-plugin-export==1.6.0 ; python_version >= "3.8" and python_version < "3.12" -poetry==1.7.1 ; python_version >= "3.8" and python_version < "3.12" -prometheus-client==0.19.0 ; python_version >= "3.8" and python_version < "3.12" +prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.12" prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.12" psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.12" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.12" and (os_name != "nt" or sys_platform != "win32") pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.12" -pycparser==2.21 ; python_version >= "3.8" and python_version < "3.12" +pycparser==2.22 ; python_version >= "3.8" and python_version < "3.12" pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.12" pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.12" -pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "3.12" -pyproject-hooks==1.0.0 ; python_version >= "3.8" and python_version < "3.12" -pytest-lazy-fixture==0.6.3 ; python_version >= "3.8" and python_version < "3.12" -pytest==8.0.0 ; python_version >= "3.8" and python_version < "3.12" -python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.12" +pyparsing==3.1.2 ; python_version >= "3.8" and python_version < "3.12" +pytest==8.1.1 ; python_version >= "3.8" and python_version < "3.12" +python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.12" python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.12" pytz==2024.1 ; python_version >= "3.8" and python_version < "3.12" -pywin32-ctypes==0.2.2 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.12" -pywinpty==2.0.12 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" +pywinpty==2.0.13 ; python_version >= "3.8" and python_version < "3.12" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.12" pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.12" qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.12" qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.12" -rapidfuzz==3.6.1 ; python_version >= "3.8" and python_version < "3.12" -referencing==0.33.0 ; python_version >= "3.8" and python_version < "3.12" -requests-toolbelt==1.0.0 ; python_version >= "3.8" and python_version < "3.12" +referencing==0.34.0 ; python_version >= "3.8" and python_version < "3.12" requests==2.31.0 ; python_version >= "3.8" and python_version < "3.12" rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.12" rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.12" rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.12" scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.12" -secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "linux" send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.12" -shellingham==1.5.4 ; python_version >= "3.8" and python_version < "3.12" six==1.16.0 ; python_version >= "3.8" and python_version < "3.12" -sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.12" +sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.12" soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.12" stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.12" tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.12" -terminado==0.18.0 ; python_version >= "3.8" and python_version < "3.12" +terminado==0.18.1 ; python_version >= "3.8" and python_version < "3.12" tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.12" tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11" -tomlkit==0.12.3 ; python_version >= "3.8" and python_version < "3.12" tornado==6.4 ; python_version >= "3.8" and python_version < "3.12" -traitlets==5.14.1 ; python_version >= "3.8" and python_version < "3.12" -trove-classifiers==2024.1.31 ; python_version >= "3.8" and python_version < "3.12" -types-python-dateutil==2.8.19.20240106 ; python_version >= "3.8" and python_version < "3.12" -typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "3.11" +traitlets==5.14.2 ; python_version >= "3.8" and python_version < "3.12" +types-python-dateutil==2.9.0.20240316 ; python_version >= "3.8" and python_version < "3.12" +typing-extensions==4.10.0 ; python_version >= "3.8" and python_version < "3.11" tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.12" unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.12" uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.12" -urllib3==2.2.0 ; python_version >= "3.8" and python_version < "3.12" -virtualenv==20.25.0 ; python_version >= "3.8" and python_version < "3.12" +urllib3==2.2.1 ; python_version >= "3.8" and python_version < "3.12" wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.12" webcolors==1.13 ; python_version >= "3.8" and python_version < "3.12" webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.12" websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.12" widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.12" xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.12" -xattr==0.10.1 ; python_version >= "3.8" and python_version < "3.12" and sys_platform == "darwin" -zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.12" +zipp==3.18.1 ; python_version >= "3.8" and python_version < "3.10" From 753f1e7e1fb24ef264b54062f1603b05df57d00b Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 23:24:47 -0700 Subject: [PATCH 21/40] add custom lazy_fixture for pytest 8.0 compatibility --- tests/conftest.py | 96 +++++++++++++++++++- tests/navdata/test_navdata.py | 105 +++++++++------------- tests/parsers/test_android.py | 2 +- tests/parsers/test_nmea.py | 2 +- tests/parsers/test_rinex_obs.py | 2 +- tests/utils/test_coordinates.py | 5 +- tests/utils/test_dop.py | 3 +- tests/utils/test_ephemeris_downloader.py | 2 +- tests/utils/test_gnss_models.py | 2 +- tests/utils/test_sv_models.py | 2 +- tests/visualizations/test_plot_skyplot.py | 2 +- 11 files changed, 145 insertions(+), 78 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e75476d8..0020dccd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,6 +7,9 @@ import os +import typing +import dataclasses + import pytest import numpy as np import pandas as pd @@ -214,7 +217,6 @@ def fixture_derived_gps_l1_reversed(android_gps_l1): @pytest.fixture(name="android_state") -@pytest.mark.filterwarnings("ignore:.*not found*: RuntimeWarning") def fixture_android_state(android_derived): """State estimate corresponding to Android measurements for GPS L1. @@ -800,3 +802,95 @@ def fixture_solve_wls(derived_2021): """ state_estimate = solve_wls(derived_2021) return state_estimate + +# lazy_fixture implementation from https://github.com/TvoroG/pytest-lazy-fixture/issues/65 + +@dataclasses.dataclass +class LazyFixture: + """Lazy fixture dataclass.""" + + name: str + +def lazy_fixture(name: str) -> LazyFixture: + """Mark a fixture as lazy.""" + return LazyFixture(name) + +def is_lazy_fixture(value: object) -> bool: + """Check whether a value is a lazy fixture.""" + return isinstance(value, LazyFixture) + + +def pytest_make_parametrize_id( + config: pytest.Config, + val: object, + argname: str, +) -> typing.Union[str,None]: + """Inject lazy fixture parametrized id. + + Reference: + - https://bit.ly/48Off6r + + Args: + config (pytest.Config): pytest configuration. + value (object): fixture value. + argname (str): automatic parameter name. + + Returns: + str: new parameter id. + """ + if is_lazy_fixture(val): + return typing.cast(LazyFixture, val).name + return None + + +@pytest.hookimpl(tryfirst=True) +def pytest_fixture_setup( + fixturedef: pytest.FixtureDef, + request: pytest.FixtureRequest, +) -> typing.Union[object,None]: + """Lazy fixture setup hook. + + This hook will never take over a fixture setup but just simply will + try to resolve recursively any lazy fixture found in request.param. + + Reference: + - https://bit.ly/3SyvsXJ + + Args: + fixturedef (pytest.FixtureDef): fixture definition object. + request (pytest.FixtureRequest): fixture request object. + + Returns: + object | None: fixture value or None otherwise. + """ + + if hasattr(request, "param"): + if isinstance(request.param,np.ndarray) and request.param.size > 0: + request.param = _resolve_lazy_fixture(request.param, request) + elif isinstance(request.param,np.ndarray) and request.param.size <= 0: + return None + elif request.param: + request.param = _resolve_lazy_fixture(request.param, request) + return None + + +def _resolve_lazy_fixture(__val: object, request: pytest.FixtureRequest) -> object: + """Lazy fixture resolver. + + Args: + __val (object): fixture value object. + request (pytest.FixtureRequest): pytest fixture request object. + + Returns: + object: resolved fixture value. + """ + if isinstance(__val, tuple): + return tuple(_resolve_lazy_fixture(v, request) for v in __val) + if isinstance(__val, list): + return list(_resolve_lazy_fixture(v, request) for v in __val) + if isinstance(__val, typing.Mapping): + return {k: _resolve_lazy_fixture(v, request) for k, v in __val.items()} + if not is_lazy_fixture(__val): + return __val + lazy_obj = typing.cast(LazyFixture, __val) + return request.getfixturevalue(lazy_obj.name) diff --git a/tests/navdata/test_navdata.py b/tests/navdata/test_navdata.py index 8852333b..d7f36e1e 100644 --- a/tests/navdata/test_navdata.py +++ b/tests/navdata/test_navdata.py @@ -11,8 +11,8 @@ import pytest import numpy as np import pandas as pd -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.navdata.navdata import NavData def test_init_blank(): @@ -563,168 +563,145 @@ def test_rename_mapper_and_rows(df_simple): assert data["floats"].dtype == np.float64 assert data["strings"].dtype == object - - -@pytest.fixture(name="df_rows", - params=[ - lazy_fixture("df_simple") - ]) -def return_df_rows(request): - """Extract and return rows from the DataFrame for testing - - Parameters - ---------- - pandas_df : pd.DataFrame - Dataframe for testing values - - Returns - ------- - names : np.ndarray - String entries in 'names' column of the DataFrame - integers : np.ndarray - Numeric entries in 'integers' column of the DataFrame - floats : np.ndarray - Numeric entries in 'floats' column of the DataFrame - strings : np.ndarray - String entries in 'strings' column of the DataFrame - """ - pandas_df = request.param - names = np.asarray(pandas_df['names'].values, dtype=object) - integers = np.reshape(np.asarray(pandas_df['integers'].values, - dtype=np.float64), [1, -1]) - floats = np.reshape(np.asarray(pandas_df['floats'].values, - dtype=np.float64), [1, -1]) - strings = np.asarray(pandas_df['strings'].values, dtype=object) - return [names, integers, floats, strings] - - @pytest.fixture(name="integers") -def fixture_integers(df_rows): +def fixture_integers(df_simple): """Return data corresponding to the integers label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- integers : np.ndarray Array of numeric entries in 'integers' label of data """ - _, integers, _, _ = df_rows + integers = np.reshape(np.asarray(df_simple['integers'].values, + dtype=np.float64), [1, -1]) + return integers @pytest.fixture(name="floats") -def fixture_floats(df_rows): +def fixture_floats(df_simple): """Return data corresponding to the floats label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- floats : np.ndarray Array of numeric entries in 'floats' label of data """ - _, _, floats, _ = df_rows + floats = np.reshape(np.asarray(df_simple['floats'].values, + dtype=np.float64), [1, -1]) return floats @pytest.fixture(name="strings") -def fixture_strings(df_rows): +def fixture_strings(df_simple): """Return data corresponding to the strings label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- strings : np.ndarray Array of string entries in 'strings' label of data """ - _, _, _, strings = df_rows + strings = np.asarray(df_simple['strings'].values, dtype=object) return strings @pytest.fixture(name="int_flt") -def fixture_int_flt(df_rows): +def fixture_int_flt(df_simple): """Return data corresponding to the integers and floats. Labeled from the test data. Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- int_flt : np.ndarray 2D array of numeric entries in 'integers' and 'floats' labels of data """ - _, integers, floats, _ = df_rows + integers = np.reshape(np.asarray(df_simple['integers'].values, + dtype=np.float64), [1, -1]) + floats = np.reshape(np.asarray(df_simple['floats'].values, + dtype=np.float64), [1, -1]) + int_flt = np.vstack((integers, floats)) return int_flt @pytest.fixture(name="nm_str") -def fixture_nm_str(df_rows): +def fixture_nm_str(df_simple): """Return data corresponding to the names and strings label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- nm_str : np.ndarray 2D array of numeric entries in 'names' and 'strings' labels of data """ - names, _, _, strings = df_rows + names = np.asarray(df_simple['names'].values, dtype=object) + strings = np.asarray(df_simple['strings'].values, dtype=object) nm_str = np.vstack((names, strings)) return nm_str @pytest.fixture(name="str_nm") -def fixture_str_nm(df_rows): +def fixture_str_nm(df_simple): """Return data corresponding to the strings and names label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- str_nm : np.ndarray 2D array of numeric entries in 'strings' and 'names' labels of data """ - names, _, _, strings = df_rows + names = np.asarray(df_simple['names'].values, dtype=object) + strings = np.asarray(df_simple['strings'].values, dtype=object) str_nm = np.vstack((strings, names)) return str_nm @pytest.fixture(name="flt_int_slc") -def fixture_flt_int_slc(df_rows): +def fixture_flt_int_slc(df_simple): """Return data corresponding to the names and strings label from the test data Parameters ---------- - df_rows : list - List of rows from the testing data + df_simple : pd.DataFrame + pd.DataFrame to initialize NavData with. Returns ------- flt_int_slc : np.ndarray 2D array of some numeric entries in 'integers' and 'floats' labels of data """ - _, integers, floats, _ = df_rows + integers = np.reshape(np.asarray(df_simple['integers'].values, + dtype=np.float64), [1, -1]) + floats = np.reshape(np.asarray(df_simple['floats'].values, + dtype=np.float64), [1, -1]) flt_int_slc = np.vstack((integers, floats))[:, 3:] return flt_int_slc diff --git a/tests/parsers/test_android.py b/tests/parsers/test_android.py index c658abc9..c3afa622 100644 --- a/tests/parsers/test_android.py +++ b/tests/parsers/test_android.py @@ -12,8 +12,8 @@ import pytest import numpy as np import pandas as pd -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.parsers import android from gnss_lib_py.parsers.google_decimeter import AndroidDerived2023 from gnss_lib_py.navdata.navdata import NavData diff --git a/tests/parsers/test_nmea.py b/tests/parsers/test_nmea.py index 3dae937a..806358e5 100644 --- a/tests/parsers/test_nmea.py +++ b/tests/parsers/test_nmea.py @@ -10,8 +10,8 @@ import numpy as np import pytest -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.parsers.nmea import Nmea # pylint: disable=protected-access diff --git a/tests/parsers/test_rinex_obs.py b/tests/parsers/test_rinex_obs.py index a0ebe9d8..844b709d 100644 --- a/tests/parsers/test_rinex_obs.py +++ b/tests/parsers/test_rinex_obs.py @@ -9,8 +9,8 @@ import pytest import numpy as np -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.parsers.rinex_obs import RinexObs from gnss_lib_py.navdata.operations import loop_time diff --git a/tests/utils/test_coordinates.py b/tests/utils/test_coordinates.py index 81a5050d..7f487f39 100644 --- a/tests/utils/test_coordinates.py +++ b/tests/utils/test_coordinates.py @@ -5,15 +5,12 @@ __authors__ = "Ashwin Kanhere, Derek Knowles" __date__ = "21 Jun 2022" -import os - import pytest import numpy as np -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture import gnss_lib_py.utils.constants as consts from gnss_lib_py.navdata.navdata import NavData -from gnss_lib_py.parsers.google_decimeter import AndroidDerived2022 from gnss_lib_py.utils.coordinates import ecef_to_el_az, add_el_az from gnss_lib_py.utils.coordinates import geodetic_to_ecef from gnss_lib_py.utils.coordinates import ecef_to_geodetic, LocalCoord diff --git a/tests/utils/test_dop.py b/tests/utils/test_dop.py index 3cd8a55a..ffe9fbf2 100644 --- a/tests/utils/test_dop.py +++ b/tests/utils/test_dop.py @@ -9,10 +9,9 @@ import copy import pytest -from pytest_lazyfixture import lazy_fixture - import numpy as np +from conftest import lazy_fixture from gnss_lib_py.navdata.navdata import NavData from gnss_lib_py.navdata.operations import loop_time diff --git a/tests/utils/test_ephemeris_downloader.py b/tests/utils/test_ephemeris_downloader.py index 55cfcbf9..43abaadd 100644 --- a/tests/utils/test_ephemeris_downloader.py +++ b/tests/utils/test_ephemeris_downloader.py @@ -12,8 +12,8 @@ import pytest import requests import numpy as np -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture import gnss_lib_py.utils.time_conversions as tc import gnss_lib_py.utils.ephemeris_downloader as ed # pylint: disable=protected-access diff --git a/tests/utils/test_gnss_models.py b/tests/utils/test_gnss_models.py index d52a9610..caed72f7 100644 --- a/tests/utils/test_gnss_models.py +++ b/tests/utils/test_gnss_models.py @@ -10,8 +10,8 @@ import numpy as np from numpy.random import default_rng -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.algorithms.snapshot import solve_wls from gnss_lib_py.navdata.navdata import NavData import gnss_lib_py.utils.gnss_models as gnss_models diff --git a/tests/utils/test_sv_models.py b/tests/utils/test_sv_models.py index 778ac214..f8fcc50d 100644 --- a/tests/utils/test_sv_models.py +++ b/tests/utils/test_sv_models.py @@ -11,8 +11,8 @@ import pytest import numpy as np import pandas as pd -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.parsers.clk import Clk from gnss_lib_py.parsers.sp3 import Sp3 from gnss_lib_py.navdata.navdata import NavData diff --git a/tests/visualizations/test_plot_skyplot.py b/tests/visualizations/test_plot_skyplot.py index e33a78ca..5efcce8a 100644 --- a/tests/visualizations/test_plot_skyplot.py +++ b/tests/visualizations/test_plot_skyplot.py @@ -10,8 +10,8 @@ import pytest import numpy as np import matplotlib as mpl -from pytest_lazyfixture import lazy_fixture +from conftest import lazy_fixture from gnss_lib_py.navdata.navdata import NavData from gnss_lib_py.navdata.operations import find_wildcard_indexes from gnss_lib_py.visualizations import style From e39ce5318d4bc8169f3d37983a2fd258a3a4f07d Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 31 Mar 2024 23:52:03 -0700 Subject: [PATCH 22/40] update workflow build name --- .github/workflows/build_new_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_new_version.yml b/.github/workflows/build_new_version.yml index 874db113..2ca0556d 100644 --- a/.github/workflows/build_new_version.yml +++ b/.github/workflows/build_new_version.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: build +name: build-python-12 on: push: From 1e685bdd46885f7b9d75ea461dc972bc34415f3a Mon Sep 17 00:00:00 2001 From: betaBison Date: Mon, 1 Apr 2024 00:39:42 -0700 Subject: [PATCH 23/40] deprecate python 3.8 --- .github/workflows/build_new_version.yml | 2 +- .gitignore | 3 - .python-version | 2 +- gnss_lib_py/parsers/google_decimeter.py | 2 +- poetry.lock | 874 +++++++++++++----------- pyproject.toml | 4 +- tests/parsers/test_google_decimeter.py | 13 +- 7 files changed, 477 insertions(+), 423 deletions(-) diff --git a/.github/workflows/build_new_version.yml b/.github/workflows/build_new_version.yml index 2ca0556d..1b687c5c 100644 --- a/.github/workflows/build_new_version.yml +++ b/.github/workflows/build_new_version.yml @@ -18,7 +18,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.8", "3.11", "3.12"] + python-version: ["3.9", "3.11", "3.12"] os: [ubuntu-latest, macos-latest, windows-latest] fail-fast : false defaults: diff --git a/.gitignore b/.gitignore index b8d15a19..11e913a4 100644 --- a/.gitignore +++ b/.gitignore @@ -151,9 +151,6 @@ target/ profile_default/ ipython_config.py -# pyenv -# .python-version - # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies diff --git a/.python-version b/.python-version index 203e6d5c..8e34c813 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.8.9 +3.9.19 diff --git a/gnss_lib_py/parsers/google_decimeter.py b/gnss_lib_py/parsers/google_decimeter.py index 9f708c07..84e571eb 100644 --- a/gnss_lib_py/parsers/google_decimeter.py +++ b/gnss_lib_py/parsers/google_decimeter.py @@ -49,7 +49,7 @@ def __init__(self, input_path, remove_timing_outliers=True): derived_timestamps = pd_df['millisSinceGpsEpoch'].unique() mapper = dict(zip(derived_timestamps[1:],derived_timestamps[:-1])) pd_df = pd_df[pd_df['millisSinceGpsEpoch'] != derived_timestamps[0]] - pd_df.replace({"millisSinceGpsEpoch" : mapper},inplace=True) + pd_df["millisSinceGpsEpoch"] = pd_df["millisSinceGpsEpoch"].replace(mapper) # Correction 5 implemented verbatim from competition tips if remove_timing_outliers: diff --git a/poetry.lock b/poetry.lock index c55f0b7f..074fcff1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,20 +1,22 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "alabaster" -version = "0.7.13" -description = "A configurable sidebar-enabled Sphinx theme" +version = "0.7.16" +description = "A light, configurable Sphinx theme" +category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] [[package]] name = "anyio" version = "4.3.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -37,6 +39,7 @@ trio = ["trio (>=0.23)"] name = "appnope" version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -48,6 +51,7 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -68,6 +72,7 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -105,6 +110,7 @@ tests = ["pytest"] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -118,12 +124,13 @@ types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] +test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] [[package]] name = "astroid" version = "2.15.8" description = "An abstract syntax tree for Python with inference support." +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -143,6 +150,7 @@ wrapt = [ name = "asttokens" version = "2.4.1" description = "Annotate AST trees with source code positions" +category = "main" optional = false python-versions = "*" files = [ @@ -161,6 +169,7 @@ test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -175,6 +184,7 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "attrs" version = "23.2.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -194,6 +204,7 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p name = "babel" version = "2.14.0" description = "Internationalization utilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -201,27 +212,14 @@ files = [ {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} - [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[[package]] -name = "backcall" -version = "0.2.0" -description = "Specifications for callback functions passed in to an API" -optional = false -python-versions = "*" -files = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] - [[package]] name = "beautifulsoup4" version = "4.12.3" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -243,6 +241,7 @@ lxml = ["lxml"] name = "bleach" version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -261,6 +260,7 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] name = "certifi" version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -272,6 +272,7 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -336,6 +337,7 @@ pycparser = "*" name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -435,6 +437,7 @@ files = [ name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -446,6 +449,7 @@ files = [ name = "comm" version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -461,141 +465,73 @@ test = ["pytest"] [[package]] name = "contourpy" -version = "1.1.0" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.8" -files = [ - {file = "contourpy-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:89f06eff3ce2f4b3eb24c1055a26981bffe4e7264acd86f15b97e40530b794bc"}, - {file = "contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dffcc2ddec1782dd2f2ce1ef16f070861af4fb78c69862ce0aab801495dda6a3"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25ae46595e22f93592d39a7eac3d638cda552c3e1160255258b695f7b58e5655"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17cfaf5ec9862bc93af1ec1f302457371c34e688fbd381f4035a06cd47324f48"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, - {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, - {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, - {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, - {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, - {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052cc634bf903c604ef1a00a5aa093c54f81a2612faedaa43295809ffdde885e"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9382a1c0bc46230fb881c36229bfa23d8c303b889b788b939365578d762b5c18"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, - {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, - {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, - {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, - {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, - {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62013a2cf68abc80dadfd2307299bfa8f5aa0dcaec5b2954caeb5fa094171103"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b6616375d7de55797d7a66ee7d087efe27f03d336c27cf1f32c02b8c1a5ac70"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, - {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, - {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, - {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, - {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, - {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f2931ed4741f98f74b410b16e5213f71dcccee67518970c42f64153ea9313b9"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30f511c05fab7f12e0b1b7730ebdc2ec8deedcfb505bc27eb570ff47c51a8f15"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, - {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, - {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, - {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a67259c2b493b00e5a4d0f7bfae51fb4b3371395e47d079a4446e9b0f4d70e76"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2b836d22bd2c7bb2700348e4521b25e077255ebb6ab68e351ab5aa91ca27e027"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084eaa568400cfaf7179b847ac871582199b1b44d5699198e9602ecbbb5f6104"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:911ff4fd53e26b019f898f32db0d4956c9d227d51338fb3b03ec72ff0084ee5f"}, - {file = "contourpy-1.1.0.tar.gz", hash = "sha256:e53046c3863828d21d531cc3b53786e6580eb1ba02477e8681009b6aa0870b21"}, -] - -[package.dependencies] -numpy = ">=1.16" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "wurlitzer"] - -[[package]] -name = "contourpy" -version = "1.1.1" +version = "1.2.0" description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.8" -files = [ - {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, - {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66045af6cf00e19d02191ab578a50cb93b2028c3eefed999793698e9ea768ae"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ebf42695f75ee1a952f98ce9775c873e4971732a87334b099dde90b6af6a916"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6aec19457617ef468ff091669cca01fa7ea557b12b59a7908b9474bb9674cf0"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:462c59914dc6d81e0b11f37e560b8a7c2dbab6aca4f38be31519d442d6cde1a1"}, - {file = "contourpy-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6d0a8efc258659edc5299f9ef32d8d81de8b53b45d67bf4bfa3067f31366764d"}, - {file = "contourpy-1.1.1-cp310-cp310-win32.whl", hash = "sha256:d6ab42f223e58b7dac1bb0af32194a7b9311065583cc75ff59dcf301afd8a431"}, - {file = "contourpy-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:549174b0713d49871c6dee90a4b499d3f12f5e5f69641cd23c50a4542e2ca1eb"}, - {file = "contourpy-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:407d864db716a067cc696d61fa1ef6637fedf03606e8417fe2aeed20a061e6b2"}, - {file = "contourpy-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe80c017973e6a4c367e037cb31601044dd55e6bfacd57370674867d15a899b"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e30aaf2b8a2bac57eb7e1650df1b3a4130e8d0c66fc2f861039d507a11760e1b"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de23ca4f381c3770dee6d10ead6fff524d540c0f662e763ad1530bde5112532"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:566f0e41df06dfef2431defcfaa155f0acfa1ca4acbf8fd80895b1e7e2ada40e"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04c2f0adaf255bf756cf08ebef1be132d3c7a06fe6f9877d55640c5e60c72c5"}, - {file = "contourpy-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0c188ae66b772d9d61d43c6030500344c13e3f73a00d1dc241da896f379bb62"}, - {file = "contourpy-1.1.1-cp311-cp311-win32.whl", hash = "sha256:0683e1ae20dc038075d92e0e0148f09ffcefab120e57f6b4c9c0f477ec171f33"}, - {file = "contourpy-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:8636cd2fc5da0fb102a2504fa2c4bea3cbc149533b345d72cdf0e7a924decc45"}, - {file = "contourpy-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:560f1d68a33e89c62da5da4077ba98137a5e4d3a271b29f2f195d0fba2adcb6a"}, - {file = "contourpy-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24216552104ae8f3b34120ef84825400b16eb6133af2e27a190fdc13529f023e"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56de98a2fb23025882a18b60c7f0ea2d2d70bbbcfcf878f9067234b1c4818442"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:07d6f11dfaf80a84c97f1a5ba50d129d9303c5b4206f776e94037332e298dda8"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1eaac5257a8f8a047248d60e8f9315c6cff58f7803971170d952555ef6344a7"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19557fa407e70f20bfaba7d55b4d97b14f9480856c4fb65812e8a05fe1c6f9bf"}, - {file = "contourpy-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:081f3c0880712e40effc5f4c3b08feca6d064cb8cfbb372ca548105b86fd6c3d"}, - {file = "contourpy-1.1.1-cp312-cp312-win32.whl", hash = "sha256:059c3d2a94b930f4dafe8105bcdc1b21de99b30b51b5bce74c753686de858cb6"}, - {file = "contourpy-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f44d78b61740e4e8c71db1cf1fd56d9050a4747681c59ec1094750a658ceb970"}, - {file = "contourpy-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70e5a10f8093d228bb2b552beeb318b8928b8a94763ef03b858ef3612b29395d"}, - {file = "contourpy-1.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8394e652925a18ef0091115e3cc191fef350ab6dc3cc417f06da66bf98071ae9"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bd5680f844c3ff0008523a71949a3ff5e4953eb7701b28760805bc9bcff217"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66544f853bfa85c0d07a68f6c648b2ec81dafd30f272565c37ab47a33b220684"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0c02b75acfea5cab07585d25069207e478d12309557f90a61b5a3b4f77f46ce"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41339b24471c58dc1499e56783fedc1afa4bb018bcd035cfb0ee2ad2a7501ef8"}, - {file = "contourpy-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f29fb0b3f1217dfe9362ec55440d0743fe868497359f2cf93293f4b2701b8251"}, - {file = "contourpy-1.1.1-cp38-cp38-win32.whl", hash = "sha256:f9dc7f933975367251c1b34da882c4f0e0b2e24bb35dc906d2f598a40b72bfc7"}, - {file = "contourpy-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:498e53573e8b94b1caeb9e62d7c2d053c263ebb6aa259c81050766beb50ff8d9"}, - {file = "contourpy-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ba42e3810999a0ddd0439e6e5dbf6d034055cdc72b7c5c839f37a7c274cb4eba"}, - {file = "contourpy-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c06e4c6e234fcc65435223c7b2a90f286b7f1b2733058bdf1345d218cc59e34"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca6fab080484e419528e98624fb5c4282148b847e3602dc8dbe0cb0669469887"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93df44ab351119d14cd1e6b52a5063d3336f0754b72736cc63db59307dabb718"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eafbef886566dc1047d7b3d4b14db0d5b7deb99638d8e1be4e23a7c7ac59ff0f"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe0fab26d598e1ec07d72cf03eaeeba8e42b4ecf6b9ccb5a356fde60ff08b85"}, - {file = "contourpy-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f08e469821a5e4751c97fcd34bcb586bc243c39c2e39321822060ba902eac49e"}, - {file = "contourpy-1.1.1-cp39-cp39-win32.whl", hash = "sha256:bfc8a5e9238232a45ebc5cb3bfee71f1167064c8d382cadd6076f0d51cff1da0"}, - {file = "contourpy-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c84fdf3da00c2827d634de4fcf17e3e067490c4aea82833625c4c8e6cdea0887"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:229a25f68046c5cf8067d6d6351c8b99e40da11b04d8416bf8d2b1d75922521e"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a10dab5ea1bd4401c9483450b5b0ba5416be799bbd50fc7a6cc5e2a15e03e8a3"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4f9147051cb8fdb29a51dc2482d792b3b23e50f8f57e3720ca2e3d438b7adf23"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a75cc163a5f4531a256f2c523bd80db509a49fc23721b36dd1ef2f60ff41c3cb"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b53d5769aa1f2d4ea407c65f2d1d08002952fac1d9e9d307aa2e1023554a163"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11b836b7dbfb74e049c302bbf74b4b8f6cb9d0b6ca1bf86cfa8ba144aedadd9c"}, - {file = "contourpy-1.1.1.tar.gz", hash = "sha256:96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab"}, -] - -[package.dependencies] -numpy = {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""} +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, + {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, + {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, + {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, + {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, + {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, + {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, + {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, + {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, + {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, + {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, +] + +[package.dependencies] +numpy = ">=1.20,<2.0" [package.extras] bokeh = ["bokeh", "selenium"] docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.4.1)", "types-Pillow"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.6.1)", "types-Pillow"] test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "wurlitzer"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] [[package]] name = "coverage" version = "7.4.4" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -663,6 +599,7 @@ toml = ["tomli"] name = "cycler" version = "0.12.1" description = "Composable style cycles" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -678,6 +615,7 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] name = "debugpy" version = "1.8.1" description = "An implementation of the Debug Adapter Protocol for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -709,6 +647,7 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -720,6 +659,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -731,6 +671,7 @@ files = [ name = "dill" version = "0.3.8" description = "serialize all of Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -746,6 +687,7 @@ profile = ["gprof2dot (>=2022.7.29)"] name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -757,6 +699,7 @@ files = [ name = "exceptiongroup" version = "1.2.0" description = "Backport of PEP 654 (exception groups)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -771,6 +714,7 @@ test = ["pytest (>=6)"] name = "executing" version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -785,6 +729,7 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth name = "fastjsonschema" version = "2.19.1" description = "Fastest Python implementation of JSON schema" +category = "main" optional = false python-versions = "*" files = [ @@ -799,6 +744,7 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "fonttools" version = "4.50.0" description = "Tools to manipulate font files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -864,6 +810,7 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "main" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -875,6 +822,7 @@ files = [ name = "georinex" version = "1.16.1" description = "Python RINEX 2/3 NAV/OBS reader with speed and simplicity." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -898,6 +846,7 @@ tests = ["pytest (>=3.9)", "pytest-timeout"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -909,6 +858,7 @@ files = [ name = "hatanaka" version = "2.8.1" description = "Effortlessly compress / decompress any RINEX file" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -943,6 +893,7 @@ tests = ["pytest"] name = "httpcore" version = "1.0.5" description = "A minimal low-level HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -957,13 +908,14 @@ h11 = ">=0.13,<0.15" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" version = "0.27.0" description = "The next generation HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -974,20 +926,21 @@ files = [ [package.dependencies] anyio = "*" certifi = "*" -httpcore = "==1.*" +httpcore = ">=1.0.0,<2.0.0" idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "idna" version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -999,6 +952,7 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1010,6 +964,7 @@ files = [ name = "importlib-metadata" version = "7.1.0" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1029,6 +984,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", name = "importlib-resources" version = "6.4.0" description = "Read resources from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1047,6 +1003,7 @@ testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "p name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1058,6 +1015,7 @@ files = [ name = "ipykernel" version = "6.29.4" description = "IPython Kernel for Jupyter" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1071,7 +1029,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1089,47 +1047,47 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio [[package]] name = "ipython" -version = "8.12.3" +version = "8.18.1" description = "IPython: Productive Interactive Computing" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, - {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, + {file = "ipython-8.18.1-py3-none-any.whl", hash = "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397"}, + {file = "ipython-8.18.1.tar.gz", hash = "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27"}, ] [package.dependencies] -appnope = {version = "*", markers = "sys_platform == \"darwin\""} -backcall = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -pickleshare = "*" -prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" +prompt-toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] black = ["black"] -doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] +test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"] [[package]] name = "ipywidgets" version = "8.1.2" description = "Jupyter interactive widgets" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1151,6 +1109,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1165,6 +1124,7 @@ arrow = ">=0.15.0" name = "isort" version = "5.13.2" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -1179,6 +1139,7 @@ colors = ["colorama (>=0.4.6)"] name = "jedi" version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1198,6 +1159,7 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1215,6 +1177,7 @@ i18n = ["Babel (>=2.7)"] name = "json5" version = "0.9.24" description = "A Python implementation of the JSON5 data format." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1226,6 +1189,7 @@ files = [ name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -1237,6 +1201,7 @@ files = [ name = "jsonschema" version = "4.21.1" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1248,11 +1213,9 @@ files = [ attrs = ">=22.2.0" fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} jsonschema-specifications = ">=2023.03.6" -pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} @@ -1268,6 +1231,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.12.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1276,13 +1240,13 @@ files = [ ] [package.dependencies] -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} referencing = ">=0.31.0" [[package]] name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "main" optional = false python-versions = "*" files = [ @@ -1303,6 +1267,7 @@ qtconsole = "*" name = "jupyter-client" version = "8.6.1" description = "Jupyter protocol implementation and client libraries" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1312,7 +1277,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1326,6 +1291,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1337,7 +1303,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -1350,6 +1316,7 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1370,6 +1337,7 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout" name = "jupyter-events" version = "0.10.0" description = "Jupyter Event System library" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1395,6 +1363,7 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.4" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1410,6 +1379,7 @@ jupyter-server = ">=1.1.2" name = "jupyter-server" version = "2.13.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1422,7 +1392,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.9.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -1446,6 +1416,7 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc name = "jupyter-server-terminals" version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1465,6 +1436,7 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> name = "jupyterlab" version = "4.1.5" description = "JupyterLab computational environment" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1476,7 +1448,6 @@ files = [ async-lru = ">=1.0.0" httpx = ">=0.25.0" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""} ipykernel = "*" jinja2 = ">=3.0.3" jupyter-core = "*" @@ -1499,6 +1470,7 @@ test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-cons name = "jupyterlab-pygments" version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1510,6 +1482,7 @@ files = [ name = "jupyterlab-server" version = "2.25.4" description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1536,6 +1509,7 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v name = "jupyterlab-widgets" version = "3.0.10" description = "Jupyter interactive widgets for JupyterLab" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1547,6 +1521,7 @@ files = [ name = "kaleido" version = "0.2.1" description = "Static image export for web-based visualization libraries with zero dependencies" +category = "main" optional = false python-versions = "*" files = [ @@ -1562,6 +1537,7 @@ files = [ name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1675,6 +1651,7 @@ files = [ name = "lazy-object-proxy" version = "1.10.0" description = "A fast and thorough lazy object proxy." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1721,6 +1698,7 @@ files = [ name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1788,58 +1766,40 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.5" +version = "3.8.3" description = "Python plotting package" -optional = false -python-versions = ">=3.8" -files = [ - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, - {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, - {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, - {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, - {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, - {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, - {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, - {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, - {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, - {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, - {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f"}, + {file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f"}, + {file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635"}, + {file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65"}, + {file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0"}, + {file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1"}, + {file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7"}, + {file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39"}, + {file = "matplotlib-3.8.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c4af3f7317f8a1009bbb2d0bf23dfaba859eb7dd4ccbd604eba146dccaaaf0a4"}, + {file = "matplotlib-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c6e00a65d017d26009bac6808f637b75ceade3e1ff91a138576f6b3065eeeba"}, + {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7b49ab49a3bea17802df6872f8d44f664ba8f9be0632a60c99b20b6db2165b7"}, + {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6728dde0a3997396b053602dbd907a9bd64ec7d5cf99e728b404083698d3ca01"}, + {file = "matplotlib-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:813925d08fb86aba139f2d31864928d67511f64e5945ca909ad5bc09a96189bb"}, + {file = "matplotlib-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:cd3a0c2be76f4e7be03d34a14d49ded6acf22ef61f88da600a18a5cd8b3c5f3c"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26"}, + {file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161"}, ] [package.dependencies] @@ -1847,10 +1807,10 @@ contourpy = ">=1.0.1" cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} -kiwisolver = ">=1.0.1" -numpy = ">=1.20,<2" +kiwisolver = ">=1.3.1" +numpy = ">=1.21,<2" packaging = ">=20.0" -pillow = ">=6.2.0" +pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" @@ -1858,6 +1818,7 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1872,6 +1833,7 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1883,6 +1845,7 @@ files = [ name = "mistune" version = "3.0.2" description = "A sane and fast Markdown parser with useful plugins and renderers" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1894,6 +1857,7 @@ files = [ name = "nbclient" version = "0.10.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "main" optional = false python-versions = ">=3.8.0" files = [ @@ -1903,7 +1867,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -1916,6 +1880,7 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.16.3" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1954,6 +1919,7 @@ webpdf = ["playwright"] name = "nbformat" version = "5.10.3" description = "The Jupyter Notebook format" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1975,6 +1941,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nbsphinx" version = "0.8.12" description = "Jupyter Notebook Tools for Sphinx" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1994,6 +1961,7 @@ traitlets = ">=5" name = "nbsphinx-link" version = "1.3.0" description = "A sphinx extension for including notebook files outside sphinx source root" +category = "dev" optional = false python-versions = "*" files = [ @@ -2009,6 +1977,7 @@ sphinx = ">=1.8" name = "ncompress" version = "1.0.2" description = "LZW compression and decompression" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2101,6 +2070,7 @@ tests = ["pytest"] name = "nest-asyncio" version = "1.6.0" description = "Patch asyncio to allow nested event loops" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2112,6 +2082,7 @@ files = [ name = "notebook" version = "7.1.2" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2135,6 +2106,7 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.4" description = "A shim layer for notebook traits and config" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2150,45 +2122,55 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.24.4" +version = "1.26.4" description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, - {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, - {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, - {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, - {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, - {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, - {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, - {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, - {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, - {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, - {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] name = "overrides" version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2200,6 +2182,7 @@ files = [ name = "packaging" version = "24.0" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2209,75 +2192,83 @@ files = [ [[package]] name = "pandas" -version = "2.0.3" +version = "2.2.1" description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, - {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, - {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, - {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, - {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, - {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, - {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, - {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, - {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, - {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, - {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, + {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, + {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, + {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, + {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, + {file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397"}, + {file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16"}, + {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019"}, + {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df"}, + {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6"}, + {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be"}, + {file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab"}, + {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, ] [package.dependencies] numpy = [ - {version = ">=1.20.3", markers = "python_version < \"3.10\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.22.4,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0,<2", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" -tzdata = ">=2022.1" - -[package.extras] -all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] -aws = ["s3fs (>=2021.08.0)"] -clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] -compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] -computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"] -feather = ["pyarrow (>=7.0.0)"] -fss = ["fsspec (>=2021.07.0)"] -gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"] -hdf5 = ["tables (>=3.6.1)"] -html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"] -mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"] -parquet = ["pyarrow (>=7.0.0)"] -performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"] -plot = ["matplotlib (>=3.6.1)"] -postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] -spss = ["pyreadstat (>=1.1.2)"] -sql-other = ["SQLAlchemy (>=1.4.16)"] -test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.6.3)"] +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] [[package]] name = "pandocfilters" version = "1.5.1" description = "Utilities for writing pandoc filters in python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2289,6 +2280,7 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2304,6 +2296,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pexpect" version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." +category = "main" optional = false python-versions = "*" files = [ @@ -2314,21 +2307,11 @@ files = [ [package.dependencies] ptyprocess = ">=0.5" -[[package]] -name = "pickleshare" -version = "0.7.5" -description = "Tiny 'shelve'-like database with concurrency support" -optional = false -python-versions = "*" -files = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] - [[package]] name = "pillow" version = "10.2.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2410,21 +2393,11 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa typing = ["typing-extensions"] xmp = ["defusedxml"] -[[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -description = "Resolve a name to an object." -optional = false -python-versions = ">=3.6" -files = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] - [[package]] name = "platformdirs" version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2440,6 +2413,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- name = "plotly" version = "5.20.0" description = "An open-source, interactive data visualization library for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2455,6 +2429,7 @@ tenacity = ">=6.2.0" name = "pluggy" version = "1.4.0" description = "plugin and hook calling mechanisms for python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2470,6 +2445,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pockets" version = "0.9.1" description = "A collection of helpful Python tools!" +category = "dev" optional = false python-versions = "*" files = [ @@ -2484,6 +2460,7 @@ six = ">=1.5.2" name = "prometheus-client" version = "0.20.0" description = "Python client for the Prometheus monitoring system." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2498,6 +2475,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.43" description = "Library for building powerful interactive command lines in Python" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -2512,6 +2490,7 @@ wcwidth = "*" name = "psutil" version = "5.9.8" description = "Cross-platform lib for process and system monitoring in Python." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2540,6 +2519,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -2551,6 +2531,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "main" optional = false python-versions = "*" files = [ @@ -2565,6 +2546,7 @@ tests = ["pytest"] name = "pycparser" version = "2.22" description = "C parser in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2576,6 +2558,7 @@ files = [ name = "pygments" version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2591,6 +2574,7 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pylint" version = "2.17.7" description = "python code static checker" +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -2620,6 +2604,7 @@ testutils = ["gitpython (>3)"] name = "pylint-exit" version = "1.2.0" description = "Exit code handler for pylint command line utility." +category = "dev" optional = false python-versions = "*" files = [ @@ -2631,6 +2616,7 @@ files = [ name = "pynmea2" version = "1.19.0" description = "Python library for the NMEA 0183 protcol" +category = "main" optional = false python-versions = "*" files = [ @@ -2642,6 +2628,7 @@ files = [ name = "pyparsing" version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -2656,6 +2643,7 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pytest" version = "8.1.1" description = "pytest: simple powerful testing with Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2678,6 +2666,7 @@ testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygm name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2696,6 +2685,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2710,6 +2700,7 @@ six = ">=1.5" name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2721,6 +2712,7 @@ files = [ name = "pytz" version = "2024.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -2732,6 +2724,7 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -2755,6 +2748,7 @@ files = [ name = "pywinpty" version = "2.0.13" description = "Pseudo terminal support for Windows from Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2770,6 +2764,7 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2830,6 +2825,7 @@ files = [ name = "pyzmq" version = "25.1.2" description = "Python bindings for 0MQ" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2935,6 +2931,7 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qtconsole" version = "5.5.1" description = "Jupyter Qt console" +category = "main" optional = false python-versions = ">= 3.8" files = [ @@ -2960,6 +2957,7 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2977,6 +2975,7 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "referencing" version = "0.34.0" description = "JSON Referencing + Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2992,6 +2991,7 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3013,6 +3013,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3027,6 +3028,7 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3038,6 +3040,7 @@ files = [ name = "rpds-py" version = "0.18.0" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3144,46 +3147,52 @@ files = [ [[package]] name = "scipy" -version = "1.9.3" +version = "1.12.0" description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, - {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, - {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, - {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, - {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, - {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, - {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, -] - -[package.dependencies] -numpy = ">=1.18.5,<1.26.0" - -[package.extras] -dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] -test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, + {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, + {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, + {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, + {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, + {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, + {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, + {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<1.29.0" + +[package.extras] +dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -3200,6 +3209,7 @@ win32 = ["pywin32"] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3211,6 +3221,7 @@ files = [ name = "sniffio" version = "1.3.1" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3222,6 +3233,7 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" optional = false python-versions = "*" files = [ @@ -3233,6 +3245,7 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3242,13 +3255,14 @@ files = [ [[package]] name = "sphinx" -version = "7.1.2" +version = "7.2.6" description = "Python documentation generator" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, - {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, + {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, + {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, ] [package.dependencies] @@ -3260,7 +3274,7 @@ imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" -Pygments = ">=2.13" +Pygments = ">=2.14" requests = ">=2.25.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" @@ -3268,17 +3282,18 @@ sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" +sphinxcontrib-serializinghtml = ">=1.1.9" [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] +test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] [[package]] name = "sphinx-copybutton" version = "0.5.2" description = "Add a copy button to each of your code cells." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3297,6 +3312,7 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3314,53 +3330,60 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.4" +version = "1.0.8" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.1" +version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" +category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -3375,6 +3398,7 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3389,6 +3413,7 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-napoleon" version = "0.7" description = "Sphinx \"napoleon\" extension." +category = "dev" optional = false python-versions = "*" files = [ @@ -3402,38 +3427,43 @@ six = ">=1.5.2" [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" optional = false python-versions = "*" files = [ @@ -3453,6 +3483,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "tenacity" version = "8.2.3" description = "Retry code until it succeeds" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3467,6 +3498,7 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "terminado" version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3488,6 +3520,7 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3506,6 +3539,7 @@ test = ["flake8", "isort", "pytest"] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3517,6 +3551,7 @@ files = [ name = "tomlkit" version = "0.12.4" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3528,6 +3563,7 @@ files = [ name = "tornado" version = "6.4" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "main" optional = false python-versions = ">= 3.8" files = [ @@ -3548,6 +3584,7 @@ files = [ name = "tqdm" version = "4.66.2" description = "Fast, Extensible Progress Meter" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3568,6 +3605,7 @@ telegram = ["requests"] name = "traitlets" version = "5.14.2" description = "Traitlets Python configuration system" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3583,6 +3621,7 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, name = "types-python-dateutil" version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3594,6 +3633,7 @@ files = [ name = "typing-extensions" version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3605,6 +3645,7 @@ files = [ name = "tzdata" version = "2024.1" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -3616,6 +3657,7 @@ files = [ name = "unlzw3" version = "0.2.2" description = "Pure Python decompression module for .Z files compressed using Unix compress utility" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3631,6 +3673,7 @@ tests = ["pytest"] name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3645,6 +3688,7 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3662,6 +3706,7 @@ zstd = ["zstandard (>=0.18.0)"] name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -3673,6 +3718,7 @@ files = [ name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3688,6 +3734,7 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "main" optional = false python-versions = "*" files = [ @@ -3699,6 +3746,7 @@ files = [ name = "websocket-client" version = "1.7.0" description = "WebSocket client for Python with low level API options" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3715,6 +3763,7 @@ test = ["websockets"] name = "widgetsnbextension" version = "4.0.10" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3726,6 +3775,7 @@ files = [ name = "wrapt" version = "1.16.0" description = "Module for decorators, wrappers and monkey patching." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3803,25 +3853,26 @@ files = [ [[package]] name = "xarray" -version = "2023.1.0" +version = "2024.3.0" description = "N-D labeled arrays and datasets in Python" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "xarray-2023.1.0-py3-none-any.whl", hash = "sha256:7e530b1deafdd43e5c2b577d0944e6b528fbe88045fd849e49a8d11871ecd522"}, - {file = "xarray-2023.1.0.tar.gz", hash = "sha256:7bee552751ff1b29dab8b7715726e5ecb56691ac54593cf4881dff41978ce0cd"}, + {file = "xarray-2024.3.0-py3-none-any.whl", hash = "sha256:ca2bc4da2bf2e7879e15862a7a7c3fc76ad19f6a08931d030220cef39a29118d"}, + {file = "xarray-2024.3.0.tar.gz", hash = "sha256:5c1db19efdde61db7faedad8fc944f4e29698fb6fbd578d352668b63598bd1d8"}, ] [package.dependencies] -numpy = ">=1.20" -packaging = ">=21.3" -pandas = ">=1.3" +numpy = ">=1.23" +packaging = ">=22" +pandas = ">=1.5" [package.extras] -accel = ["bottleneck", "flox", "numbagg", "scipy"] -complete = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "matplotlib", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scipy", "seaborn", "zarr"] -docs = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "ipykernel", "ipython", "jupyter-client", "matplotlib", "nbsphinx", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scanpydoc", "scipy", "seaborn", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "zarr"] -io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "rasterio", "scipy", "zarr"] +accel = ["bottleneck", "flox", "numbagg", "opt-einsum", "scipy"] +complete = ["xarray[accel,dev,io,parallel,viz]"] +dev = ["hypothesis", "pre-commit", "pytest", "pytest-cov", "pytest-env", "pytest-timeout", "pytest-xdist", "ruff", "xarray[complete]"] +io = ["cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "scipy", "zarr"] parallel = ["dask[complete]"] viz = ["matplotlib", "nc-time-axis", "seaborn"] @@ -3829,6 +3880,7 @@ viz = ["matplotlib", "nc-time-axis", "seaborn"] name = "zipp" version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3842,5 +3894,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = ">=3.8, < 3.13" -content-hash = "6ef0a5cdbd50438f191a3316907ff7386aab017483029c5d5cb0b771a730781a" +python-versions = ">=3.9, < 3.13" +content-hash = "68be6f0bc6e5c869cdf3c6e2e41fafda0c0d71f4ca89a913ee9e4990551d6642" diff --git a/pyproject.toml b/pyproject.toml index 70df9f7d..6d52d956 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,9 +17,9 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">=3.8, < 3.13" +python = ">=3.9, < 3.13" numpy = "^1.21.0" -pandas = "^2.0.0" +pandas = "^2.2.0" georinex = "<=1.16.1" unlzw3 = "^0.2.1" pynmea2 = "^1.18.0" diff --git a/tests/parsers/test_google_decimeter.py b/tests/parsers/test_google_decimeter.py index 16e85723..1a5781bd 100644 --- a/tests/parsers/test_google_decimeter.py +++ b/tests/parsers/test_google_decimeter.py @@ -135,9 +135,11 @@ def test_derived_df_equivalence(derived_path_2021, pd_df, derived_row_map): derived = google_decimeter.AndroidDerived2021(derived_path_2021, remove_timing_outliers=False) measure_df = derived.pandas_df() - measure_df.replace({'gnss_id',"gps"},1,inplace=True) - measure_df.replace({'gnss_id',"glonass"},3,inplace=True) - measure_df.replace({'gnss_id',"galileo"},6,inplace=True) + gnss_id_map = {"gps":1, + "glonass":3, + "galileo":6, + } + measure_df['gnss_id'] = measure_df['gnss_id'].replace(gnss_id_map) signal_map = {"GPS_L1" : "l1", "GPS_L5" : "l5", "GAL_E1" : "e1", @@ -150,10 +152,13 @@ def test_derived_df_equivalence(derived_path_2021, pd_df, derived_row_map): "BDS_B2A" : "b2a", } for s_key, s_value in signal_map.items(): - measure_df.replace({'signal_type',s_value},s_key,inplace=True) + measure_df['signal_type'] = measure_df['signal_type'].replace(s_value,s_key) measure_df.rename(columns=derived_row_map, inplace=True) measure_df = measure_df.drop(columns='corr_pr_m') + derived_timestamps = pd_df['millisSinceGpsEpoch'].unique() + mapper = dict(zip(derived_timestamps[1:],derived_timestamps[:-1])) pd_df = pd_df[pd_df['millisSinceGpsEpoch'] != pd_df.loc[0,'millisSinceGpsEpoch']] + pd_df["millisSinceGpsEpoch"] = pd_df["millisSinceGpsEpoch"].replace(mapper) pd_df.reset_index(drop=True, inplace=True) pd.testing.assert_frame_equal(pd_df.sort_index(axis=1), measure_df.sort_index(axis=1), From bde61dc0a7e5f96f62c8e0ce5d0fa623531ea4a4 Mon Sep 17 00:00:00 2001 From: betaBison Date: Mon, 1 Apr 2024 00:45:34 -0700 Subject: [PATCH 24/40] default build html --- docs/source/contributing/development.rst | 2 +- docs/source/contributing/testing.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/contributing/development.rst b/docs/source/contributing/development.rst index f7f0ea99..e0cdc283 100644 --- a/docs/source/contributing/development.rst +++ b/docs/source/contributing/development.rst @@ -260,7 +260,7 @@ Pull Request Review Workflow .. code-block:: bash - poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=xml + poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=html poetry run coverage report See the :ref:`Coverage Report` section for more details. diff --git a/docs/source/contributing/testing.rst b/docs/source/contributing/testing.rst index c62a4dc3..1b2a81bf 100644 --- a/docs/source/contributing/testing.rst +++ b/docs/source/contributing/testing.rst @@ -124,7 +124,7 @@ following commands: .. code-block:: bash - poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=xml + poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=html poetry run coverage report The total percentage of code covered (bottom right percentage) is the @@ -137,4 +137,4 @@ command: poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=html -The generated coverage report can be accessed from the directory :code:`htmlcov/` \ No newline at end of file +The generated coverage report can be accessed from the directory :code:`htmlcov/` From 2f7ec2acef744f5ae0bf844a8af17beb1e66722f Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 13:24:36 -0700 Subject: [PATCH 25/40] update python 3.9, 3.12 dependencies --- .github/workflows/build.yml | 2 +- .github/workflows/pip-install.yml | 2 +- .github/workflows/pylint.yml | 2 +- .readthedocs.yaml | 2 +- docs/source/install.rst | 14 +- docs/source/requirements.txt | 326 +++--- poetry.lock | 1661 +++++++++++++++-------------- requirements.txt | 266 +++-- 8 files changed, 1162 insertions(+), 1113 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 601419fe..bcaa54c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.8", "3.11"] + python-version: ["3.9", "3.12"] os: [ubuntu-latest, macos-latest, windows-latest] fail-fast : false defaults: diff --git a/.github/workflows/pip-install.yml b/.github/workflows/pip-install.yml index c436ffac..f51eb721 100644 --- a/.github/workflows/pip-install.yml +++ b/.github/workflows/pip-install.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] os: [ubuntu-latest] steps: diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index d664623a..3565b881 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 2391577a..c4697c8b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,7 +9,7 @@ version: 2 build: os: ubuntu-20.04 tools: - python: "3.8" + python: "3.9" # Build documentation in the docs/ directory with Sphinx sphinx: diff --git a/docs/source/install.rst b/docs/source/install.rst index 07624128..5932f3bf 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -6,11 +6,11 @@ Install Prerequisites ------------- -| **Python:** >=3.8, <3.12 +| **Python:** >=3.9, <3.13 | **Operating System:** Linux, Windows, MacOS -All :code:`gnss_lib_py` classes and methods are tested in Python 3.8, -and 3.11 in the latest Ubuntu, MacOS and Windows versions. +All :code:`gnss_lib_py` classes and methods are tested in Python 3.9, +and 3.12 in the latest Ubuntu, MacOS and Windows versions. :code:`gnss_lib_py` was originally developed in Python 3.8.9 in Ubuntu 20/22 and Ubuntu 20 for WSL2. @@ -134,14 +134,14 @@ Linux/WSL2 and MacOS eval "$(pyenv init --path)" eval "$(pyenv virtualenv-init -)" -2. Install Python 3.8.9 or above with :code:`pyenv`. For example, - :code:`pyenv install 3.8.9`. +2. Install Python 3.9.0 or above with :code:`pyenv`. For example, + :code:`pyenv install 3.9.19`. 3. Clone the :code:`gnss_lib_py` repository. -4. Inside the :code:`gnss_lib_py` run :code:`pyenv local 3.8.9` (switching +4. Inside the :code:`gnss_lib_py` run :code:`pyenv local 3.9.19` (switching out with the version of Python you installed in the previous step - if different than 3.8.9) to set the Python version that code in the + if different than 3.9.19) to set the Python version that code in the repository will run. 5. Install :code:`poetry>=1.2` using the instructions diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index c4b7e489..d22cf49a 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -1,164 +1,162 @@ -alabaster==0.7.13 ; python_version >= "3.8" and python_version < "3.13" -anyio==4.3.0 ; python_version >= "3.8" and python_version < "3.13" -appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.13" and (platform_system == "Darwin" or sys_platform == "darwin") -argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.13" -argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.13" -arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -astroid==2.15.8 ; python_version >= "3.8" and python_version < "3.13" -asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.13" -async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.13" -attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.13" -babel==2.14.0 ; python_version >= "3.8" and python_version < "3.13" -backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.13" -beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.13" -bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.13" -cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") -comm==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.13" -coverage[toml]==7.4.4 ; python_version >= "3.8" and python_version < "3.13" -cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.13" -debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.13" -decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.13" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" -dill==0.3.8 ; python_version >= "3.8" and python_version < "3.13" -docutils==0.18.1 ; python_version >= "3.8" and python_version < "3.13" -exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" -executing==2.0.1 ; python_version >= "3.8" and python_version < "3.13" -fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.13" -fonttools==4.50.0 ; python_version >= "3.8" and python_version < "3.13" -fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.13" -georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.13" -h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.13" -httpcore==1.0.5 ; python_version >= "3.8" and python_version < "3.13" -httpx==0.27.0 ; python_version >= "3.8" and python_version < "3.13" -idna==3.6 ; python_version >= "3.8" and python_version < "3.13" -imagesize==1.4.1 ; python_version >= "3.8" and python_version < "3.13" -importlib-metadata==7.1.0 ; python_version >= "3.8" and python_version < "3.10" -importlib-resources==6.4.0 ; python_version >= "3.8" and python_version < "3.13" -iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -ipykernel==6.29.4 ; python_version >= "3.8" and python_version < "3.13" -ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.13" -ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.13" -isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.13" -isort==5.13.2 ; python_version >= "3.8" and python_version < "3.13" -jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.13" -jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.13" -json5==0.9.24 ; python_version >= "3.8" and python_version < "3.13" -jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.13" -jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.13" -jupyter-client==8.6.1 ; python_version >= "3.8" and python_version < "3.13" -jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.13" -jupyter-core==5.7.2 ; python_version >= "3.8" and python_version < "3.13" -jupyter-events==0.10.0 ; python_version >= "3.8" and python_version < "3.13" -jupyter-lsp==2.2.4 ; python_version >= "3.8" and python_version < "3.13" -jupyter-server-terminals==0.5.3 ; python_version >= "3.8" and python_version < "3.13" -jupyter-server==2.13.0 ; python_version >= "3.8" and python_version < "3.13" -jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-server==2.25.4 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab==4.1.5 ; python_version >= "3.8" and python_version < "3.13" -kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.13" -kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.13" -lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "3.13" -markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" -matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.13" -matplotlib==3.7.5 ; python_version >= "3.8" and python_version < "3.13" -mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.13" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" -nbclient==0.10.0 ; python_version >= "3.8" and python_version < "3.13" -nbconvert==7.16.3 ; python_version >= "3.8" and python_version < "3.13" -nbformat==5.10.3 ; python_version >= "3.8" and python_version < "3.13" -nbsphinx-link==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -nbsphinx==0.8.12 ; python_version >= "3.8" and python_version < "3.13" -ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.13" -nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.13" -notebook-shim==0.2.4 ; python_version >= "3.8" and python_version < "3.13" -notebook==7.1.2 ; python_version >= "3.8" and python_version < "3.13" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.13" -overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.13" -packaging==24.0 ; python_version >= "3.8" and python_version < "3.13" -pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.13" -pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.13" -parso==0.8.3 ; python_version >= "3.8" and python_version < "3.13" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" -pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.13" -pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.13" -pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.13" -plotly==5.20.0 ; python_version >= "3.8" and python_version < "3.13" -pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.13" -pockets==0.9.1 ; python_version >= "3.8" and python_version < "3.13" -prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.13" -prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.13" -psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.13" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") -pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" -pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.13" -pylint-exit==1.2.0 ; python_version >= "3.8" and python_version < "3.13" -pylint==2.17.7 ; python_version >= "3.8" and python_version < "3.13" -pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.13" -pyparsing==3.1.2 ; python_version >= "3.8" and python_version < "3.13" -pytest-cov==4.1.0 ; python_version >= "3.8" and python_version < "3.13" -pytest==8.1.1 ; python_version >= "3.8" and python_version < "3.13" -python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.13" -python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.13" -pytz==2024.1 ; python_version >= "3.8" and python_version < "3.13" -pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.13" -pywinpty==2.0.13 ; python_version >= "3.8" and python_version < "3.13" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.13" -pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.13" -qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.13" -qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.13" -referencing==0.34.0 ; python_version >= "3.8" and python_version < "3.13" -requests==2.31.0 ; python_version >= "3.8" and python_version < "3.13" -rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.13" -rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.13" -rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.13" -scipy==1.9.3 ; python_version >= "3.8" and python_version < "3.13" -send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.13" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "3.13" -soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.13" -sphinx-copybutton==0.5.2 ; python_version >= "3.8" and python_version < "3.13" -sphinx-rtd-theme==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -sphinx==7.1.2 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-napoleon==0.7 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "3.13" -sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "3.13" -stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.13" -tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.13" -terminado==0.18.1 ; python_version >= "3.8" and python_version < "3.13" -tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.13" -tomli==2.0.1 ; python_version >= "3.8" and python_full_version <= "3.11.0a6" -tomlkit==0.12.4 ; python_version >= "3.8" and python_version < "3.13" -tornado==6.4 ; python_version >= "3.8" and python_version < "3.13" -tqdm==4.66.2 ; python_version >= "3.8" and python_version < "3.13" -traitlets==5.14.2 ; python_version >= "3.8" and python_version < "3.13" -types-python-dateutil==2.9.0.20240316 ; python_version >= "3.8" and python_version < "3.13" -typing-extensions==4.10.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.13" -unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -urllib3==2.2.1 ; python_version >= "3.8" and python_version < "3.13" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" -webcolors==1.13 ; python_version >= "3.8" and python_version < "3.13" -webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.13" -websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.13" -widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.13" -wrapt==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.13" -zipp==3.18.1 ; python_version >= "3.8" and python_version < "3.10" +alabaster==0.7.16 ; python_version >= "3.9" and python_version < "3.13" +anyio==4.4.0 ; python_version >= "3.9" and python_version < "3.13" +appnope==0.1.4 ; python_version >= "3.9" and python_version < "3.13" and platform_system == "Darwin" +argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.13" +argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.13" +arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +astroid==2.15.8 ; python_version >= "3.9" and python_version < "3.13" +asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" +async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" +attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" +babel==2.15.0 ; python_version >= "3.9" and python_version < "3.13" +beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.13" +bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" +certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" +cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" or python_version >= "3.9" and python_version < "3.13" and platform_system == "Windows" +comm==0.2.2 ; python_version >= "3.9" and python_version < "3.13" +contourpy==1.2.1 ; python_version >= "3.9" and python_version < "3.13" +coverage[toml]==7.6.1 ; python_version >= "3.9" and python_version < "3.13" +cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" +debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" +defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" +dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" +docutils==0.18.1 ; python_version >= "3.9" and python_version < "3.13" +exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" +executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" +fastjsonschema==2.20.0 ; python_version >= "3.9" and python_version < "3.13" +fonttools==4.53.1 ; python_version >= "3.9" and python_version < "3.13" +fqdn==1.5.1 ; python_version >= "3.9" and python_version < "3.13" +georinex==1.16.1 ; python_version >= "3.9" and python_version < "3.13" +h11==0.14.0 ; python_version >= "3.9" and python_version < "3.13" +hatanaka==2.8.1 ; python_version >= "3.9" and python_version < "3.13" +httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.13" +httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" +idna==3.7 ; python_version >= "3.9" and python_version < "3.13" +imagesize==1.4.1 ; python_version >= "3.9" and python_version < "3.13" +importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.13" +iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" +ipython==8.18.1 ; python_version >= "3.9" and python_version < "3.13" +ipywidgets==8.1.3 ; python_version >= "3.9" and python_version < "3.13" +isoduration==20.11.0 ; python_version >= "3.9" and python_version < "3.13" +isort==5.13.2 ; python_version >= "3.9" and python_version < "3.13" +jedi==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +jinja2==3.1.4 ; python_version >= "3.9" and python_version < "3.13" +json5==0.9.25 ; python_version >= "3.9" and python_version < "3.13" +jsonpointer==3.0.0 ; python_version >= "3.9" and python_version < "3.13" +jsonschema-specifications==2023.12.1 ; python_version >= "3.9" and python_version < "3.13" +jsonschema==4.23.0 ; python_version >= "3.9" and python_version < "3.13" +jsonschema[format-nongpl]==4.23.0 ; python_version >= "3.9" and python_version < "3.13" +jupyter-client==8.6.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter-console==6.6.3 ; python_version >= "3.9" and python_version < "3.13" +jupyter-core==5.7.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter-events==0.10.0 ; python_version >= "3.9" and python_version < "3.13" +jupyter-lsp==2.2.5 ; python_version >= "3.9" and python_version < "3.13" +jupyter-server-terminals==0.5.3 ; python_version >= "3.9" and python_version < "3.13" +jupyter-server==2.14.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter==1.0.0 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-pygments==0.3.0 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-server==2.27.3 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-widgets==3.0.11 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab==4.2.4 ; python_version >= "3.9" and python_version < "3.13" +kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" +kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" +lazy-object-proxy==1.10.0 ; python_version >= "3.9" and python_version < "3.13" +markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" +matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.9.1 ; python_version >= "3.9" and python_version < "3.13" +mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.13" +mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" +nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" +nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" +nbformat==5.10.4 ; python_version >= "3.9" and python_version < "3.13" +nbsphinx-link==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +nbsphinx==0.8.12 ; python_version >= "3.9" and python_version < "3.13" +ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" +nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" +notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" +notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" +numpy==1.26.4 ; python_version < "3.13" and python_version >= "3.9" +overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" +packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" +pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" +pandocfilters==1.5.1 ; python_version >= "3.9" and python_version < "3.13" +parso==0.8.4 ; python_version >= "3.9" and python_version < "3.13" +pexpect==4.9.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +pillow==10.4.0 ; python_version >= "3.9" and python_version < "3.13" +platformdirs==4.2.2 ; python_version >= "3.9" and python_version < "3.13" +plotly==5.23.0 ; python_version >= "3.9" and python_version < "3.13" +pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.13" +pockets==0.9.1 ; python_version >= "3.9" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" +prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "3.13" +psutil==6.0.0 ; python_version >= "3.9" and python_version < "3.13" +ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and os_name != "nt" or python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" +pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" +pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" +pylint-exit==1.2.0 ; python_version >= "3.9" and python_version < "3.13" +pylint==2.17.7 ; python_version >= "3.9" and python_version < "3.13" +pynmea2==1.19.0 ; python_version >= "3.9" and python_version < "3.13" +pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "3.13" +pytest-cov==4.1.0 ; python_version >= "3.9" and python_version < "3.13" +pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" +python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" +pytz==2024.1 ; python_version >= "3.9" and python_version < "3.13" +pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.13" +pywinpty==2.0.13 ; python_version >= "3.9" and python_version < "3.13" and os_name == "nt" +pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" +pyzmq==26.1.0 ; python_version >= "3.9" and python_version < "3.13" +qtconsole==5.5.2 ; python_version >= "3.9" and python_version < "3.13" +qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.13" +referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" +requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" +rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.13" +rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.13" +rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.13" +send2trash==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +setuptools==72.1.0 ; python_version >= "3.9" and python_version < "3.13" +six==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" +snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" +soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" +sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "3.13" +sphinx-rtd-theme==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +sphinx==7.3.7 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-applehelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-devhelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-jquery==4.1 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-napoleon==0.7 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +stack-data==0.6.3 ; python_version >= "3.9" and python_version < "3.13" +tenacity==9.0.0 ; python_version >= "3.9" and python_version < "3.13" +terminado==0.18.1 ; python_version >= "3.9" and python_version < "3.13" +tinycss2==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +tomli==2.0.1 ; python_version >= "3.9" and python_full_version <= "3.11.0a6" +tomlkit==0.13.0 ; python_version >= "3.9" and python_version < "3.13" +tornado==6.4.1 ; python_version >= "3.9" and python_version < "3.13" +tqdm==4.66.5 ; python_version >= "3.9" and python_version < "3.13" +traitlets==5.14.3 ; python_version >= "3.9" and python_version < "3.13" +types-python-dateutil==2.9.0.20240316 ; python_version >= "3.9" and python_version < "3.13" +typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "3.11" +tzdata==2024.1 ; python_version >= "3.9" and python_version < "3.13" +unlzw3==0.2.2 ; python_version >= "3.9" and python_version < "3.13" +uri-template==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +urllib3==2.2.2 ; python_version >= "3.9" and python_version < "3.13" +wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.13" +webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" +webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" +websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" +widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" +wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" +zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" diff --git a/poetry.lock b/poetry.lock index 074fcff1..2354b313 100644 --- a/poetry.lock +++ b/poetry.lock @@ -14,14 +14,14 @@ files = [ [[package]] name = "anyio" -version = "4.3.0" +version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, - {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] @@ -182,34 +182,34 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "attrs" -version = "23.2.0" +version = "24.1.0" description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, + {file = "attrs-24.1.0-py3-none-any.whl", hash = "sha256:377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905"}, + {file = "attrs-24.1.0.tar.gz", hash = "sha256:adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" -version = "2.14.0" +version = "2.15.0" description = "Internationalization utilities" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] [package.extras] @@ -258,14 +258,14 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "certifi" -version = "2024.2.2" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] @@ -465,128 +465,148 @@ test = ["pytest"] [[package]] name = "contourpy" -version = "1.2.0" +version = "1.2.1" description = "Python library for calculating contours of 2D quadrilateral grids" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, - {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, - {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, - {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, - {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, - {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, - {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, - {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, - {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, - {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, - {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, -] - -[package.dependencies] -numpy = ">=1.20,<2.0" + {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, + {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, + {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, + {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, + {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, + {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, + {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, + {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, + {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, + {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, + {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, +] + +[package.dependencies] +numpy = ">=1.20" [package.extras] bokeh = ["bokeh", "selenium"] docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.6.1)", "types-Pillow"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] [[package]] name = "coverage" -version = "7.4.4" +version = "7.6.1" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"}, - {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"}, - {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"}, - {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"}, - {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"}, - {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"}, - {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"}, - {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"}, - {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"}, - {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"}, - {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"}, - {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"}, - {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"}, - {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"}, - {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"}, - {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"}, - {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"}, - {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"}, - {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"}, - {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"}, - {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"}, - {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, + {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, + {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, + {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, + {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, + {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, + {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, + {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, + {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, + {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, + {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, + {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, + {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, + {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, + {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, + {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, + {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, ] [package.dependencies] @@ -613,34 +633,14 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.8.1" +version = "1.8.3" description = "An implementation of the Debug Adapter Protocol for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, - {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, - {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, - {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, - {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, - {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, - {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, - {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, - {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, - {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, - {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, - {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, - {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, - {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, - {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, - {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, - {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, - {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, - {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, - {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, - {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, - {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, + {file = "debugpy-1.8.3-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:0df2c400853150af14996b8d1a4f54d45ffa98e76c0f3de30665e89e273ea293"}, + {file = "debugpy-1.8.3.zip", hash = "sha256:0f5a6326d9fc375b864ed368d06cddf2dabe5135511e71cde3758be699847d36"}, ] [[package]] @@ -697,14 +697,14 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -727,14 +727,14 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.20.0" description = "Fastest Python implementation of JSON schema" category = "main" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, ] [package.extras] @@ -742,54 +742,54 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "fonttools" -version = "4.50.0" +version = "4.53.1" description = "Tools to manipulate font files" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effd303fb422f8ce06543a36ca69148471144c534cc25f30e5be752bc4f46736"}, - {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7913992ab836f621d06aabac118fc258b9947a775a607e1a737eb3a91c360335"}, - {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e0a1c5bd2f63da4043b63888534b52c5a1fd7ae187c8ffc64cbb7ae475b9dab"}, - {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40fc98540fa5360e7ecf2c56ddf3c6e7dd04929543618fd7b5cc76e66390562"}, - {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fff65fbb7afe137bac3113827855e0204482727bddd00a806034ab0d3951d0d"}, - {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1aeae3dd2ee719074a9372c89ad94f7c581903306d76befdaca2a559f802472"}, - {file = "fonttools-4.50.0-cp310-cp310-win32.whl", hash = "sha256:e9623afa319405da33b43c85cceb0585a6f5d3a1d7c604daf4f7e1dd55c03d1f"}, - {file = "fonttools-4.50.0-cp310-cp310-win_amd64.whl", hash = "sha256:778c5f43e7e654ef7fe0605e80894930bc3a7772e2f496238e57218610140f54"}, - {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3dfb102e7f63b78c832e4539969167ffcc0375b013080e6472350965a5fe8048"}, - {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e58fe34cb379ba3d01d5d319d67dd3ce7ca9a47ad044ea2b22635cd2d1247fc"}, - {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c673ab40d15a442a4e6eb09bf007c1dda47c84ac1e2eecbdf359adacb799c24"}, - {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b3ac35cdcd1a4c90c23a5200212c1bb74fa05833cc7c14291d7043a52ca2aaa"}, - {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8844e7a2c5f7ecf977e82eb6b3014f025c8b454e046d941ece05b768be5847ae"}, - {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f849bd3c5c2249b49c98eca5aaebb920d2bfd92b3c69e84ca9bddf133e9f83f0"}, - {file = "fonttools-4.50.0-cp311-cp311-win32.whl", hash = "sha256:39293ff231b36b035575e81c14626dfc14407a20de5262f9596c2cbb199c3625"}, - {file = "fonttools-4.50.0-cp311-cp311-win_amd64.whl", hash = "sha256:c33d5023523b44d3481624f840c8646656a1def7630ca562f222eb3ead16c438"}, - {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b4a886a6dbe60100ba1cd24de962f8cd18139bd32808da80de1fa9f9f27bf1dc"}, - {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b2ca1837bfbe5eafa11313dbc7edada79052709a1fffa10cea691210af4aa1fa"}, - {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0493dd97ac8977e48ffc1476b932b37c847cbb87fd68673dee5182004906828"}, - {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77844e2f1b0889120b6c222fc49b2b75c3d88b930615e98893b899b9352a27ea"}, - {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3566bfb8c55ed9100afe1ba6f0f12265cd63a1387b9661eb6031a1578a28bad1"}, - {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:35e10ddbc129cf61775d58a14f2d44121178d89874d32cae1eac722e687d9019"}, - {file = "fonttools-4.50.0-cp312-cp312-win32.whl", hash = "sha256:cc8140baf9fa8f9b903f2b393a6c413a220fa990264b215bf48484f3d0bf8710"}, - {file = "fonttools-4.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ccc85fd96373ab73c59833b824d7a73846670a0cb1f3afbaee2b2c426a8f931"}, - {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e270a406219af37581d96c810172001ec536e29e5593aa40d4c01cca3e145aa6"}, - {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac2463de667233372e9e1c7e9de3d914b708437ef52a3199fdbf5a60184f190c"}, - {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47abd6669195abe87c22750dbcd366dc3a0648f1b7c93c2baa97429c4dc1506e"}, - {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:074841375e2e3d559aecc86e1224caf78e8b8417bb391e7d2506412538f21adc"}, - {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0743fd2191ad7ab43d78cd747215b12033ddee24fa1e088605a3efe80d6984de"}, - {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3d7080cce7be5ed65bee3496f09f79a82865a514863197ff4d4d177389e981b0"}, - {file = "fonttools-4.50.0-cp38-cp38-win32.whl", hash = "sha256:a467ba4e2eadc1d5cc1a11d355abb945f680473fbe30d15617e104c81f483045"}, - {file = "fonttools-4.50.0-cp38-cp38-win_amd64.whl", hash = "sha256:f77e048f805e00870659d6318fd89ef28ca4ee16a22b4c5e1905b735495fc422"}, - {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b6245eafd553c4e9a0708e93be51392bd2288c773523892fbd616d33fd2fda59"}, - {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a4062cc7e8de26f1603323ef3ae2171c9d29c8a9f5e067d555a2813cd5c7a7e0"}, - {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34692850dfd64ba06af61e5791a441f664cb7d21e7b544e8f385718430e8f8e4"}, - {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678dd95f26a67e02c50dcb5bf250f95231d455642afbc65a3b0bcdacd4e4dd38"}, - {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f2ce7b0b295fe64ac0a85aef46a0f2614995774bd7bc643b85679c0283287f9"}, - {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d346f4dc2221bfb7ab652d1e37d327578434ce559baf7113b0f55768437fe6a0"}, - {file = "fonttools-4.50.0-cp39-cp39-win32.whl", hash = "sha256:a51eeaf52ba3afd70bf489be20e52fdfafe6c03d652b02477c6ce23c995222f4"}, - {file = "fonttools-4.50.0-cp39-cp39-win_amd64.whl", hash = "sha256:8639be40d583e5d9da67795aa3eeeda0488fb577a1d42ae11a5036f18fb16d93"}, - {file = "fonttools-4.50.0-py3-none-any.whl", hash = "sha256:48fa36da06247aa8282766cfd63efff1bb24e55f020f29a335939ed3844d20d3"}, - {file = "fonttools-4.50.0.tar.gz", hash = "sha256:fa5cf61058c7dbb104c2ac4e782bf1b2016a8cf2f69de6e4dd6a865d2c969bb5"}, + {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, + {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b96cd370a61f4d083c9c0053bf634279b094308d52fdc2dd9a22d8372fdd590d"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1c7c5aa18dd3b17995898b4a9b5929d69ef6ae2af5b96d585ff4005033d82f0"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e013aae589c1c12505da64a7d8d023e584987e51e62006e1bb30d72f26522c41"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9efd176f874cb6402e607e4cc9b4a9cd584d82fc34a4b0c811970b32ba62501f"}, + {file = "fonttools-4.53.1-cp310-cp310-win32.whl", hash = "sha256:c8696544c964500aa9439efb6761947393b70b17ef4e82d73277413f291260a4"}, + {file = "fonttools-4.53.1-cp310-cp310-win_amd64.whl", hash = "sha256:8959a59de5af6d2bec27489e98ef25a397cfa1774b375d5787509c06659b3671"}, + {file = "fonttools-4.53.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da33440b1413bad53a8674393c5d29ce64d8c1a15ef8a77c642ffd900d07bfe1"}, + {file = "fonttools-4.53.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ff7e5e9bad94e3a70c5cd2fa27f20b9bb9385e10cddab567b85ce5d306ea923"}, + {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6e7170d675d12eac12ad1a981d90f118c06cf680b42a2d74c6c931e54b50719"}, + {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bee32ea8765e859670c4447b0817514ca79054463b6b79784b08a8df3a4d78e3"}, + {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6e08f572625a1ee682115223eabebc4c6a2035a6917eac6f60350aba297ccadb"}, + {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b21952c092ffd827504de7e66b62aba26fdb5f9d1e435c52477e6486e9d128b2"}, + {file = "fonttools-4.53.1-cp311-cp311-win32.whl", hash = "sha256:9dfdae43b7996af46ff9da520998a32b105c7f098aeea06b2226b30e74fbba88"}, + {file = "fonttools-4.53.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4d0096cb1ac7a77b3b41cd78c9b6bc4a400550e21dc7a92f2b5ab53ed74eb02"}, + {file = "fonttools-4.53.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d92d3c2a1b39631a6131c2fa25b5406855f97969b068e7e08413325bc0afba58"}, + {file = "fonttools-4.53.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3b3c8ebafbee8d9002bd8f1195d09ed2bd9ff134ddec37ee8f6a6375e6a4f0e8"}, + {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f029c095ad66c425b0ee85553d0dc326d45d7059dbc227330fc29b43e8ba60"}, + {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f5e6c3510b79ea27bb1ebfcc67048cde9ec67afa87c7dd7efa5c700491ac7f"}, + {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f677ce218976496a587ab17140da141557beb91d2a5c1a14212c994093f2eae2"}, + {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9e6ceba2a01b448e36754983d376064730690401da1dd104ddb543519470a15f"}, + {file = "fonttools-4.53.1-cp312-cp312-win32.whl", hash = "sha256:791b31ebbc05197d7aa096bbc7bd76d591f05905d2fd908bf103af4488e60670"}, + {file = "fonttools-4.53.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ed170b5e17da0264b9f6fae86073be3db15fa1bd74061c8331022bca6d09bab"}, + {file = "fonttools-4.53.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c818c058404eb2bba05e728d38049438afd649e3c409796723dfc17cd3f08749"}, + {file = "fonttools-4.53.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:651390c3b26b0c7d1f4407cad281ee7a5a85a31a110cbac5269de72a51551ba2"}, + {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54f1bba2f655924c1138bbc7fa91abd61f45c68bd65ab5ed985942712864bbb"}, + {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9cd19cf4fe0595ebdd1d4915882b9440c3a6d30b008f3cc7587c1da7b95be5f"}, + {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2af40ae9cdcb204fc1d8f26b190aa16534fcd4f0df756268df674a270eab575d"}, + {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:35250099b0cfb32d799fb5d6c651220a642fe2e3c7d2560490e6f1d3f9ae9169"}, + {file = "fonttools-4.53.1-cp38-cp38-win32.whl", hash = "sha256:f08df60fbd8d289152079a65da4e66a447efc1d5d5a4d3f299cdd39e3b2e4a7d"}, + {file = "fonttools-4.53.1-cp38-cp38-win_amd64.whl", hash = "sha256:7b6b35e52ddc8fb0db562133894e6ef5b4e54e1283dff606fda3eed938c36fc8"}, + {file = "fonttools-4.53.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75a157d8d26c06e64ace9df037ee93a4938a4606a38cb7ffaf6635e60e253b7a"}, + {file = "fonttools-4.53.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4824c198f714ab5559c5be10fd1adf876712aa7989882a4ec887bf1ef3e00e31"}, + {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:becc5d7cb89c7b7afa8321b6bb3dbee0eec2b57855c90b3e9bf5fb816671fa7c"}, + {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ec3fb43befb54be490147b4a922b5314e16372a643004f182babee9f9c3407"}, + {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73379d3ffdeecb376640cd8ed03e9d2d0e568c9d1a4e9b16504a834ebadc2dfb"}, + {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:02569e9a810f9d11f4ae82c391ebc6fb5730d95a0657d24d754ed7763fb2d122"}, + {file = "fonttools-4.53.1-cp39-cp39-win32.whl", hash = "sha256:aae7bd54187e8bf7fd69f8ab87b2885253d3575163ad4d669a262fe97f0136cb"}, + {file = "fonttools-4.53.1-cp39-cp39-win_amd64.whl", hash = "sha256:e5b708073ea3d684235648786f5f6153a48dc8762cdfe5563c57e80787c29fbb"}, + {file = "fonttools-4.53.1-py3-none-any.whl", hash = "sha256:f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d"}, + {file = "fonttools-4.53.1.tar.gz", hash = "sha256:e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4"}, ] [package.extras] @@ -938,14 +938,14 @@ socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -962,23 +962,23 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.1.0" +version = "8.2.0" description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"}, + {file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "importlib-resources" @@ -1013,14 +1013,14 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.4" +version = "6.29.5" description = "IPython Kernel for Jupyter" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, - {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, ] [package.dependencies] @@ -1085,22 +1085,22 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa [[package]] name = "ipywidgets" -version = "8.1.2" +version = "8.1.3" description = "Jupyter interactive widgets" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, - {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, + {file = "ipywidgets-8.1.3-py3-none-any.whl", hash = "sha256:efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2"}, + {file = "ipywidgets-8.1.3.tar.gz", hash = "sha256:f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.10,<3.1.0" +jupyterlab-widgets = ">=3.0.11,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.10,<4.1.0" +widgetsnbextension = ">=4.0.11,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1157,14 +1157,14 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -1175,38 +1175,38 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "json5" -version = "0.9.24" +version = "0.9.25" description = "A Python implementation of the JSON5 data format." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "json5-0.9.24-py3-none-any.whl", hash = "sha256:4ca101fd5c7cb47960c055ef8f4d0e31e15a7c6c48c3b6f1473fc83b6c462a13"}, - {file = "json5-0.9.24.tar.gz", hash = "sha256:0c638399421da959a20952782800e5c1a78c14e08e1dc9738fa10d8ec14d58c8"}, + {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, + {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, ] [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] name = "jsonschema" -version = "4.21.1" +version = "4.23.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, - {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, ] [package.dependencies] @@ -1221,11 +1221,11 @@ rfc3339-validator = {version = "*", optional = true, markers = "extra == \"forma rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] [[package]] name = "jsonschema-specifications" @@ -1265,14 +1265,14 @@ qtconsole = "*" [[package]] name = "jupyter-client" -version = "8.6.1" +version = "8.6.2" description = "Jupyter protocol implementation and client libraries" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, - {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, ] [package.dependencies] @@ -1285,7 +1285,7 @@ traitlets = ">=5.3" [package.extras] docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" @@ -1361,14 +1361,14 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p [[package]] name = "jupyter-lsp" -version = "2.2.4" +version = "2.2.5" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter-lsp-2.2.4.tar.gz", hash = "sha256:5e50033149344065348e688608f3c6d654ef06d9856b67655bd7b6bac9ee2d59"}, - {file = "jupyter_lsp-2.2.4-py3-none-any.whl", hash = "sha256:da61cb63a16b6dff5eac55c2699cc36eac975645adee02c41bdfc03bf4802e77"}, + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, ] [package.dependencies] @@ -1377,40 +1377,40 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.13.0" +version = "2.14.2" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.13.0-py3-none-any.whl", hash = "sha256:77b2b49c3831fbbfbdb5048cef4350d12946191f833a24e5f83e5f8f4803e97b"}, - {file = "jupyter_server-2.13.0.tar.gz", hash = "sha256:c80bfb049ea20053c3d9641c2add4848b38073bf79f1729cea1faed32fc1c78e"}, + {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, + {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, ] [package.dependencies] anyio = ">=3.1.0" -argon2-cffi = "*" -jinja2 = "*" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" jupyter-client = ">=7.4.4" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.9.0" -jupyter-server-terminals = "*" +jupyter-server-terminals = ">=0.4.4" nbconvert = ">=6.4.4" nbformat = ">=5.3.0" -overrides = "*" -packaging = "*" -prometheus-client = "*" -pywinpty = {version = "*", markers = "os_name == \"nt\""} +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} pyzmq = ">=24" send2trash = ">=1.8.2" terminado = ">=0.8.3" tornado = ">=6.2.0" traitlets = ">=5.6.0" -websocket-client = "*" +websocket-client = ">=1.7" [package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] -test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] [[package]] name = "jupyter-server-terminals" @@ -1434,37 +1434,39 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.1.5" +version = "4.2.4" description = "JupyterLab computational environment" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.1.5-py3-none-any.whl", hash = "sha256:3bc843382a25e1ab7bc31d9e39295a9f0463626692b7995597709c0ab236ab2c"}, - {file = "jupyterlab-4.1.5.tar.gz", hash = "sha256:c9ad75290cb10bfaff3624bf3fbb852319b4cce4c456613f8ebbaa98d03524db"}, + {file = "jupyterlab-4.2.4-py3-none-any.whl", hash = "sha256:807a7ec73637744f879e112060d4b9d9ebe028033b7a429b2d1f4fc523d00245"}, + {file = "jupyterlab-4.2.4.tar.gz", hash = "sha256:343a979fb9582fd08c8511823e320703281cd072a0049bcdafdc7afeda7f2537"}, ] [package.dependencies] async-lru = ">=1.0.0" httpx = ">=0.25.0" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -ipykernel = "*" +ipykernel = ">=6.5.0" jinja2 = ">=3.0.3" jupyter-core = "*" jupyter-lsp = ">=2.0.0" jupyter-server = ">=2.4.0,<3" -jupyterlab-server = ">=2.19.0,<3" +jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2" packaging = "*" -tomli = {version = "*", markers = "python_version < \"3.11\""} +setuptools = ">=40.1.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] [[package]] name = "jupyterlab-pygments" @@ -1480,14 +1482,14 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.25.4" +version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.25.4-py3-none-any.whl", hash = "sha256:eb645ecc8f9b24bac5decc7803b6d5363250e16ec5af814e516bc2c54dd88081"}, - {file = "jupyterlab_server-2.25.4.tar.gz", hash = "sha256:2098198e1e82e0db982440f9b5136175d73bea2cd42a6480aa6fd502cb23c4f9"}, + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, ] [package.dependencies] @@ -1507,14 +1509,14 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.10" +version = "3.0.11" description = "Jupyter interactive widgets for JupyterLab" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, - {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, + {file = "jupyterlab_widgets-3.0.11-py3-none-any.whl", hash = "sha256:78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0"}, + {file = "jupyterlab_widgets-3.0.11.tar.gz", hash = "sha256:dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27"}, ] [[package]] @@ -1766,40 +1768,36 @@ files = [ [[package]] name = "matplotlib" -version = "3.8.3" +version = "3.9.1" description = "Python plotting package" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f"}, - {file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357"}, - {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec"}, - {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f"}, - {file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635"}, - {file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea"}, - {file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900"}, - {file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e"}, - {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7"}, - {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65"}, - {file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0"}, - {file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407"}, - {file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4"}, - {file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa"}, - {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5"}, - {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1"}, - {file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7"}, - {file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39"}, - {file = "matplotlib-3.8.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c4af3f7317f8a1009bbb2d0bf23dfaba859eb7dd4ccbd604eba146dccaaaf0a4"}, - {file = "matplotlib-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c6e00a65d017d26009bac6808f637b75ceade3e1ff91a138576f6b3065eeeba"}, - {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7b49ab49a3bea17802df6872f8d44f664ba8f9be0632a60c99b20b6db2165b7"}, - {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6728dde0a3997396b053602dbd907a9bd64ec7d5cf99e728b404083698d3ca01"}, - {file = "matplotlib-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:813925d08fb86aba139f2d31864928d67511f64e5945ca909ad5bc09a96189bb"}, - {file = "matplotlib-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:cd3a0c2be76f4e7be03d34a14d49ded6acf22ef61f88da600a18a5cd8b3c5f3c"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26"}, - {file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161"}, + {file = "matplotlib-3.9.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7ccd6270066feb9a9d8e0705aa027f1ff39f354c72a87efe8fa07632f30fc6bb"}, + {file = "matplotlib-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:591d3a88903a30a6d23b040c1e44d1afdd0d778758d07110eb7596f811f31842"}, + {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2a59ff4b83d33bca3b5ec58203cc65985367812cb8c257f3e101632be86d92"}, + {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fc001516ffcf1a221beb51198b194d9230199d6842c540108e4ce109ac05cc0"}, + {file = "matplotlib-3.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:83c6a792f1465d174c86d06f3ae85a8fe36e6f5964633ae8106312ec0921fdf5"}, + {file = "matplotlib-3.9.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b3fce58971b465e01b5c538f9d44915640c20ec5ff31346e963c9e1cd66fa812"}, + {file = "matplotlib-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a973c53ad0668c53e0ed76b27d2eeeae8799836fd0d0caaa4ecc66bf4e6676c0"}, + {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cd5acf8f3ef43f7532c2f230249720f5dc5dd40ecafaf1c60ac8200d46d7eb"}, + {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab38a4f3772523179b2f772103d8030215b318fef6360cb40558f585bf3d017f"}, + {file = "matplotlib-3.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2315837485ca6188a4b632c5199900e28d33b481eb083663f6a44cfc8987ded3"}, + {file = "matplotlib-3.9.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:565d572efea2b94f264dd86ef27919515aa6d629252a169b42ce5f570db7f37b"}, + {file = "matplotlib-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d397fd8ccc64af2ec0af1f0efc3bacd745ebfb9d507f3f552e8adb689ed730a"}, + {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26040c8f5121cd1ad712abffcd4b5222a8aec3a0fe40bc8542c94331deb8780d"}, + {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12cb1837cffaac087ad6b44399d5e22b78c729de3cdae4629e252067b705e2b"}, + {file = "matplotlib-3.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0e835c6988edc3d2d08794f73c323cc62483e13df0194719ecb0723b564e0b5c"}, + {file = "matplotlib-3.9.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0c584210c755ae921283d21d01f03a49ef46d1afa184134dd0f95b0202ee6f03"}, + {file = "matplotlib-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11fed08f34fa682c2b792942f8902e7aefeed400da71f9e5816bea40a7ce28fe"}, + {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0000354e32efcfd86bda75729716b92f5c2edd5b947200be9881f0a671565c33"}, + {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db17fea0ae3aceb8e9ac69c7e3051bae0b3d083bfec932240f9bf5d0197a049"}, + {file = "matplotlib-3.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:208cbce658b72bf6a8e675058fbbf59f67814057ae78165d8a2f87c45b48d0ff"}, + {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3fda72d4d472e2ccd1be0e9ccb6bf0d2eaf635e7f8f51d737ed7e465ac020cb3"}, + {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:84b3ba8429935a444f1fdc80ed930babbe06725bcf09fbeb5c8757a2cd74af04"}, + {file = "matplotlib-3.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b918770bf3e07845408716e5bbda17eadfc3fcbd9307dc67f37d6cf834bb3d98"}, + {file = "matplotlib-3.9.1.tar.gz", hash = "sha256:de06b19b8db95dd33d0dc17c926c7c9ebed9f572074b6fac4f65068a6814d010"}, ] [package.dependencies] @@ -1808,22 +1806,25 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.3.1" -numpy = ">=1.21,<2" +numpy = ">=1.23" packaging = ">=20.0" pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + [[package]] name = "matplotlib-inline" -version = "0.1.6" +version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, ] [package.dependencies] @@ -1878,14 +1879,14 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.16.3" +version = "7.16.4" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.16.3-py3-none-any.whl", hash = "sha256:ddeff14beeeedf3dd0bc506623e41e4507e551736de59df69a91f86700292b3b"}, - {file = "nbconvert-7.16.3.tar.gz", hash = "sha256:a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142"}, + {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, + {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, ] [package.dependencies] @@ -1907,9 +1908,9 @@ tinycss2 = "*" traitlets = ">=5.1" [package.extras] -all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] -qtpdf = ["nbconvert[qtpng]"] +qtpdf = ["pyqtwebengine (>=5.15)"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] @@ -1917,20 +1918,20 @@ webpdf = ["playwright"] [[package]] name = "nbformat" -version = "5.10.3" +version = "5.10.4" description = "The Jupyter Notebook format" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "nbformat-5.10.3-py3-none-any.whl", hash = "sha256:d9476ca28676799af85385f409b49d95e199951477a159a576ef2a675151e5e8"}, - {file = "nbformat-5.10.3.tar.gz", hash = "sha256:60ed5e910ef7c6264b87d644f276b1b49e24011930deef54605188ddeb211685"}, + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, ] [package.dependencies] -fastjsonschema = "*" +fastjsonschema = ">=2.15" jsonschema = ">=2.6" -jupyter-core = "*" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" traitlets = ">=5.1" [package.extras] @@ -2080,27 +2081,27 @@ files = [ [[package]] name = "notebook" -version = "7.1.2" +version = "7.2.1" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.1.2-py3-none-any.whl", hash = "sha256:fc6c24b9aef18d0cd57157c9c47e95833b9b0bdc599652639acf0bdb61dc7d5f"}, - {file = "notebook-7.1.2.tar.gz", hash = "sha256:efc2c80043909e0faa17fce9e9b37c059c03af0ec99a4d4db84cb21d9d2e936a"}, + {file = "notebook-7.2.1-py3-none-any.whl", hash = "sha256:f45489a3995746f2195a137e0773e2130960b51c9ac3ce257dbc2705aab3a6ca"}, + {file = "notebook-7.2.1.tar.gz", hash = "sha256:4287b6da59740b32173d01d641f763d292f49c30e7a51b89c46ba8473126341e"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.1.1,<4.2" -jupyterlab-server = ">=2.22.1,<3" +jupyterlab = ">=4.2.0,<4.3" +jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" [package.extras] dev = ["hatch", "pre-commit"] docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] [[package]] name = "notebook-shim" @@ -2180,60 +2181,60 @@ files = [ [[package]] name = "packaging" -version = "24.0" +version = "24.1" description = "Core utilities for Python packages" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] name = "pandas" -version = "2.2.1" +version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, - {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, - {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, - {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, - {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be"}, - {file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab"}, - {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, ] [package.dependencies] numpy = [ - {version = ">=1.22.4,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0,<2", markers = "python_version >= \"3.12\""}, + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2278,19 +2279,19 @@ files = [ [[package]] name = "parso" -version = "0.8.3" +version = "0.8.4" description = "A Python Parser" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, ] [package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["docopt", "pytest (<6.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] [[package]] name = "pexpect" @@ -2309,84 +2310,96 @@ ptyprocess = ">=0.5" [[package]] name = "pillow" -version = "10.2.0" +version = "10.4.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, - {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, - {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, - {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, - {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, - {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, - {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, - {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, - {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, - {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, - {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, - {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, - {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, - {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, - {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, - {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, - {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, - {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] + {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, + {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, + {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, + {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, + {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, + {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, + {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, + {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, + {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, + {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, + {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, + {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, + {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, + {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, + {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, + {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, + {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, + {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, + {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, + {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] @@ -2395,30 +2408,31 @@ xmp = ["defusedxml"] [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "plotly" -version = "5.20.0" +version = "5.23.0" description = "An open-source, interactive data visualization library for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "plotly-5.20.0-py3-none-any.whl", hash = "sha256:837a9c8aa90f2c0a2f0d747b82544d014dc2a2bdde967b5bb1da25b53932d1a9"}, - {file = "plotly-5.20.0.tar.gz", hash = "sha256:bf901c805d22032cfa534b2ff7c5aa6b0659e037f19ec1e0cca7f585918b5c89"}, + {file = "plotly-5.23.0-py3-none-any.whl", hash = "sha256:76cbe78f75eddc10c56f5a4ee3e7ccaade7c0a57465546f02098c0caed6c2d1a"}, + {file = "plotly-5.23.0.tar.gz", hash = "sha256:89e57d003a116303a34de6700862391367dd564222ab71f8531df70279fc0193"}, ] [package.dependencies] @@ -2427,14 +2441,14 @@ tenacity = ">=6.2.0" [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -2473,14 +2487,14 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.43" +version = "3.0.47" description = "Library for building powerful interactive command lines in Python" category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, - {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, ] [package.dependencies] @@ -2488,28 +2502,29 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.8" +version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, ] [package.extras] @@ -2529,14 +2544,14 @@ files = [ [[package]] name = "pure-eval" -version = "0.2.2" +version = "0.2.3" description = "Safely evaluate AST nodes without side effects" category = "main" optional = false python-versions = "*" files = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, ] [package.extras] @@ -2556,18 +2571,17 @@ files = [ [[package]] name = "pygments" -version = "2.17.2" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] @@ -2641,14 +2655,14 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "8.1.1" +version = "8.3.2" description = "pytest: simple powerful testing with Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, - {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, + {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, + {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, ] [package.dependencies] @@ -2656,11 +2670,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.4,<2.0" +pluggy = ">=1.5,<2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -2823,105 +2837,121 @@ files = [ [[package]] name = "pyzmq" -version = "25.1.2" +version = "26.1.0" description = "Python bindings for 0MQ" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4"}, - {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08"}, - {file = "pyzmq-25.1.2-cp310-cp310-win32.whl", hash = "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886"}, - {file = "pyzmq-25.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6"}, - {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c"}, - {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3"}, - {file = "pyzmq-25.1.2-cp311-cp311-win32.whl", hash = "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097"}, - {file = "pyzmq-25.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9"}, - {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a"}, - {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737"}, - {file = "pyzmq-25.1.2-cp312-cp312-win32.whl", hash = "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d"}, - {file = "pyzmq-25.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7"}, - {file = "pyzmq-25.1.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16"}, - {file = "pyzmq-25.1.2-cp36-cp36m-win32.whl", hash = "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc"}, - {file = "pyzmq-25.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68"}, - {file = "pyzmq-25.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b"}, - {file = "pyzmq-25.1.2-cp37-cp37m-win32.whl", hash = "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7"}, - {file = "pyzmq-25.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd"}, - {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41"}, - {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755"}, - {file = "pyzmq-25.1.2-cp38-cp38-win32.whl", hash = "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07"}, - {file = "pyzmq-25.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088"}, - {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6"}, - {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2"}, - {file = "pyzmq-25.1.2-cp39-cp39-win32.whl", hash = "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289"}, - {file = "pyzmq-25.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314"}, - {file = "pyzmq-25.1.2.tar.gz", hash = "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"}, + {file = "pyzmq-26.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:263cf1e36862310bf5becfbc488e18d5d698941858860c5a8c079d1511b3b18e"}, + {file = "pyzmq-26.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d5c8b17f6e8f29138678834cf8518049e740385eb2dbf736e8f07fc6587ec682"}, + {file = "pyzmq-26.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75a95c2358fcfdef3374cb8baf57f1064d73246d55e41683aaffb6cfe6862917"}, + {file = "pyzmq-26.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f99de52b8fbdb2a8f5301ae5fc0f9e6b3ba30d1d5fc0421956967edcc6914242"}, + {file = "pyzmq-26.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bcbfbab4e1895d58ab7da1b5ce9a327764f0366911ba5b95406c9104bceacb0"}, + {file = "pyzmq-26.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:77ce6a332c7e362cb59b63f5edf730e83590d0ab4e59c2aa5bd79419a42e3449"}, + {file = "pyzmq-26.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba0a31d00e8616149a5ab440d058ec2da621e05d744914774c4dde6837e1f545"}, + {file = "pyzmq-26.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8b88641384e84a258b740801cd4dbc45c75f148ee674bec3149999adda4a8598"}, + {file = "pyzmq-26.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2fa76ebcebe555cce90f16246edc3ad83ab65bb7b3d4ce408cf6bc67740c4f88"}, + {file = "pyzmq-26.1.0-cp310-cp310-win32.whl", hash = "sha256:fbf558551cf415586e91160d69ca6416f3fce0b86175b64e4293644a7416b81b"}, + {file = "pyzmq-26.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:a7b8aab50e5a288c9724d260feae25eda69582be84e97c012c80e1a5e7e03fb2"}, + {file = "pyzmq-26.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:08f74904cb066e1178c1ec706dfdb5c6c680cd7a8ed9efebeac923d84c1f13b1"}, + {file = "pyzmq-26.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:46d6800b45015f96b9d92ece229d92f2aef137d82906577d55fadeb9cf5fcb71"}, + {file = "pyzmq-26.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5bc2431167adc50ba42ea3e5e5f5cd70d93e18ab7b2f95e724dd8e1bd2c38120"}, + {file = "pyzmq-26.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3bb34bebaa1b78e562931a1687ff663d298013f78f972a534f36c523311a84d"}, + {file = "pyzmq-26.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3f6329340cef1c7ba9611bd038f2d523cea79f09f9c8f6b0553caba59ec562"}, + {file = "pyzmq-26.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:471880c4c14e5a056a96cd224f5e71211997d40b4bf5e9fdded55dafab1f98f2"}, + {file = "pyzmq-26.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ce6f2b66799971cbae5d6547acefa7231458289e0ad481d0be0740535da38d8b"}, + {file = "pyzmq-26.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a1f6ea5b1d6cdbb8cfa0536f0d470f12b4b41ad83625012e575f0e3ecfe97f0"}, + {file = "pyzmq-26.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b45e6445ac95ecb7d728604bae6538f40ccf4449b132b5428c09918523abc96d"}, + {file = "pyzmq-26.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:94c4262626424683feea0f3c34951d39d49d354722db2745c42aa6bb50ecd93b"}, + {file = "pyzmq-26.1.0-cp311-cp311-win32.whl", hash = "sha256:a0f0ab9df66eb34d58205913f4540e2ad17a175b05d81b0b7197bc57d000e829"}, + {file = "pyzmq-26.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:8efb782f5a6c450589dbab4cb0f66f3a9026286333fe8f3a084399149af52f29"}, + {file = "pyzmq-26.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f133d05aaf623519f45e16ab77526e1e70d4e1308e084c2fb4cedb1a0c764bbb"}, + {file = "pyzmq-26.1.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:3d3146b1c3dcc8a1539e7cc094700b2be1e605a76f7c8f0979b6d3bde5ad4072"}, + {file = "pyzmq-26.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d9270fbf038bf34ffca4855bcda6e082e2c7f906b9eb8d9a8ce82691166060f7"}, + {file = "pyzmq-26.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:995301f6740a421afc863a713fe62c0aaf564708d4aa057dfdf0f0f56525294b"}, + {file = "pyzmq-26.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7eca8b89e56fb8c6c26dd3e09bd41b24789022acf1cf13358e96f1cafd8cae3"}, + {file = "pyzmq-26.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d4feb2e83dfe9ace6374a847e98ee9d1246ebadcc0cb765482e272c34e5820"}, + {file = "pyzmq-26.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d4fafc2eb5d83f4647331267808c7e0c5722c25a729a614dc2b90479cafa78bd"}, + {file = "pyzmq-26.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:58c33dc0e185dd97a9ac0288b3188d1be12b756eda67490e6ed6a75cf9491d79"}, + {file = "pyzmq-26.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:68a0a1d83d33d8367ddddb3e6bb4afbb0f92bd1dac2c72cd5e5ddc86bdafd3eb"}, + {file = "pyzmq-26.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ae7c57e22ad881af78075e0cea10a4c778e67234adc65c404391b417a4dda83"}, + {file = "pyzmq-26.1.0-cp312-cp312-win32.whl", hash = "sha256:347e84fc88cc4cb646597f6d3a7ea0998f887ee8dc31c08587e9c3fd7b5ccef3"}, + {file = "pyzmq-26.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:9f136a6e964830230912f75b5a116a21fe8e34128dcfd82285aa0ef07cb2c7bd"}, + {file = "pyzmq-26.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:a4b7a989c8f5a72ab1b2bbfa58105578753ae77b71ba33e7383a31ff75a504c4"}, + {file = "pyzmq-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d416f2088ac8f12daacffbc2e8918ef4d6be8568e9d7155c83b7cebed49d2322"}, + {file = "pyzmq-26.1.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:ecb6c88d7946166d783a635efc89f9a1ff11c33d680a20df9657b6902a1d133b"}, + {file = "pyzmq-26.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:471312a7375571857a089342beccc1a63584315188560c7c0da7e0a23afd8a5c"}, + {file = "pyzmq-26.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e6cea102ffa16b737d11932c426f1dc14b5938cf7bc12e17269559c458ac334"}, + {file = "pyzmq-26.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec7248673ffc7104b54e4957cee38b2f3075a13442348c8d651777bf41aa45ee"}, + {file = "pyzmq-26.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:0614aed6f87d550b5cecb03d795f4ddbb1544b78d02a4bd5eecf644ec98a39f6"}, + {file = "pyzmq-26.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:e8746ce968be22a8a1801bf4a23e565f9687088580c3ed07af5846580dd97f76"}, + {file = "pyzmq-26.1.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:7688653574392d2eaeef75ddcd0b2de5b232d8730af29af56c5adf1df9ef8d6f"}, + {file = "pyzmq-26.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8d4dac7d97f15c653a5fedcafa82626bd6cee1450ccdaf84ffed7ea14f2b07a4"}, + {file = "pyzmq-26.1.0-cp313-cp313-win32.whl", hash = "sha256:ccb42ca0a4a46232d716779421bbebbcad23c08d37c980f02cc3a6bd115ad277"}, + {file = "pyzmq-26.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e1e5d0a25aea8b691a00d6b54b28ac514c8cc0d8646d05f7ca6cb64b97358250"}, + {file = "pyzmq-26.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:fc82269d24860cfa859b676d18850cbb8e312dcd7eada09e7d5b007e2f3d9eb1"}, + {file = "pyzmq-26.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:416ac51cabd54f587995c2b05421324700b22e98d3d0aa2cfaec985524d16f1d"}, + {file = "pyzmq-26.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:ff832cce719edd11266ca32bc74a626b814fff236824aa1aeaad399b69fe6eae"}, + {file = "pyzmq-26.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:393daac1bcf81b2a23e696b7b638eedc965e9e3d2112961a072b6cd8179ad2eb"}, + {file = "pyzmq-26.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9869fa984c8670c8ab899a719eb7b516860a29bc26300a84d24d8c1b71eae3ec"}, + {file = "pyzmq-26.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b3b8e36fd4c32c0825b4461372949ecd1585d326802b1321f8b6dc1d7e9318c"}, + {file = "pyzmq-26.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:3ee647d84b83509b7271457bb428cc347037f437ead4b0b6e43b5eba35fec0aa"}, + {file = "pyzmq-26.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:45cb1a70eb00405ce3893041099655265fabcd9c4e1e50c330026e82257892c1"}, + {file = "pyzmq-26.1.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:5cca7b4adb86d7470e0fc96037771981d740f0b4cb99776d5cb59cd0e6684a73"}, + {file = "pyzmq-26.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:91d1a20bdaf3b25f3173ff44e54b1cfbc05f94c9e8133314eb2962a89e05d6e3"}, + {file = "pyzmq-26.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c0665d85535192098420428c779361b8823d3d7ec4848c6af3abb93bc5c915bf"}, + {file = "pyzmq-26.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:96d7c1d35ee4a495df56c50c83df7af1c9688cce2e9e0edffdbf50889c167595"}, + {file = "pyzmq-26.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b281b5ff5fcc9dcbfe941ac5c7fcd4b6c065adad12d850f95c9d6f23c2652384"}, + {file = "pyzmq-26.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5384c527a9a004445c5074f1e20db83086c8ff1682a626676229aafd9cf9f7d1"}, + {file = "pyzmq-26.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:754c99a9840839375ee251b38ac5964c0f369306eddb56804a073b6efdc0cd88"}, + {file = "pyzmq-26.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9bdfcb74b469b592972ed881bad57d22e2c0acc89f5e8c146782d0d90fb9f4bf"}, + {file = "pyzmq-26.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bd13f0231f4788db619347b971ca5f319c5b7ebee151afc7c14632068c6261d3"}, + {file = "pyzmq-26.1.0-cp37-cp37m-win32.whl", hash = "sha256:c5668dac86a869349828db5fc928ee3f58d450dce2c85607067d581f745e4fb1"}, + {file = "pyzmq-26.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad875277844cfaeca7fe299ddf8c8d8bfe271c3dc1caf14d454faa5cdbf2fa7a"}, + {file = "pyzmq-26.1.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:65c6e03cc0222eaf6aad57ff4ecc0a070451e23232bb48db4322cc45602cede0"}, + {file = "pyzmq-26.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:038ae4ffb63e3991f386e7fda85a9baab7d6617fe85b74a8f9cab190d73adb2b"}, + {file = "pyzmq-26.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bdeb2c61611293f64ac1073f4bf6723b67d291905308a7de9bb2ca87464e3273"}, + {file = "pyzmq-26.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:61dfa5ee9d7df297c859ac82b1226d8fefaf9c5113dc25c2c00ecad6feeeb04f"}, + {file = "pyzmq-26.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3292d384537b9918010769b82ab3e79fca8b23d74f56fc69a679106a3e2c2cf"}, + {file = "pyzmq-26.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f9499c70c19ff0fbe1007043acb5ad15c1dec7d8e84ab429bca8c87138e8f85c"}, + {file = "pyzmq-26.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d3dd5523ed258ad58fed7e364c92a9360d1af8a9371e0822bd0146bdf017ef4c"}, + {file = "pyzmq-26.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baba2fd199b098c5544ef2536b2499d2e2155392973ad32687024bd8572a7d1c"}, + {file = "pyzmq-26.1.0-cp38-cp38-win32.whl", hash = "sha256:ddbb2b386128d8eca92bd9ca74e80f73fe263bcca7aa419f5b4cbc1661e19741"}, + {file = "pyzmq-26.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:79e45a4096ec8388cdeb04a9fa5e9371583bcb826964d55b8b66cbffe7b33c86"}, + {file = "pyzmq-26.1.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:add52c78a12196bc0fda2de087ba6c876ea677cbda2e3eba63546b26e8bf177b"}, + {file = "pyzmq-26.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98c03bd7f3339ff47de7ea9ac94a2b34580a8d4df69b50128bb6669e1191a895"}, + {file = "pyzmq-26.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dcc37d9d708784726fafc9c5e1232de655a009dbf97946f117aefa38d5985a0f"}, + {file = "pyzmq-26.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a6ed52f0b9bf8dcc64cc82cce0607a3dfed1dbb7e8c6f282adfccc7be9781de"}, + {file = "pyzmq-26.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:451e16ae8bea3d95649317b463c9f95cd9022641ec884e3d63fc67841ae86dfe"}, + {file = "pyzmq-26.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:906e532c814e1d579138177a00ae835cd6becbf104d45ed9093a3aaf658f6a6a"}, + {file = "pyzmq-26.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:05bacc4f94af468cc82808ae3293390278d5f3375bb20fef21e2034bb9a505b6"}, + {file = "pyzmq-26.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:57bb2acba798dc3740e913ffadd56b1fcef96f111e66f09e2a8db3050f1f12c8"}, + {file = "pyzmq-26.1.0-cp39-cp39-win32.whl", hash = "sha256:f774841bb0e8588505002962c02da420bcfb4c5056e87a139c6e45e745c0e2e2"}, + {file = "pyzmq-26.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:359c533bedc62c56415a1f5fcfd8279bc93453afdb0803307375ecf81c962402"}, + {file = "pyzmq-26.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:7907419d150b19962138ecec81a17d4892ea440c184949dc29b358bc730caf69"}, + {file = "pyzmq-26.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b24079a14c9596846bf7516fe75d1e2188d4a528364494859106a33d8b48be38"}, + {file = "pyzmq-26.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59d0acd2976e1064f1b398a00e2c3e77ed0a157529779e23087d4c2fb8aaa416"}, + {file = "pyzmq-26.1.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:911c43a4117915203c4cc8755e0f888e16c4676a82f61caee2f21b0c00e5b894"}, + {file = "pyzmq-26.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b10163e586cc609f5f85c9b233195554d77b1e9a0801388907441aaeb22841c5"}, + {file = "pyzmq-26.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:28a8b2abb76042f5fd7bd720f7fea48c0fd3e82e9de0a1bf2c0de3812ce44a42"}, + {file = "pyzmq-26.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bef24d3e4ae2c985034439f449e3f9e06bf579974ce0e53d8a507a1577d5b2ab"}, + {file = "pyzmq-26.1.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2cd0f4d314f4a2518e8970b6f299ae18cff7c44d4a1fc06fc713f791c3a9e3ea"}, + {file = "pyzmq-26.1.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fa25a620eed2a419acc2cf10135b995f8f0ce78ad00534d729aa761e4adcef8a"}, + {file = "pyzmq-26.1.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef3b048822dca6d231d8a8ba21069844ae38f5d83889b9b690bf17d2acc7d099"}, + {file = "pyzmq-26.1.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:9a6847c92d9851b59b9f33f968c68e9e441f9a0f8fc972c5580c5cd7cbc6ee24"}, + {file = "pyzmq-26.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9b9305004d7e4e6a824f4f19b6d8f32b3578aad6f19fc1122aaf320cbe3dc83"}, + {file = "pyzmq-26.1.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:63c1d3a65acb2f9c92dce03c4e1758cc552f1ae5c78d79a44e3bb88d2fa71f3a"}, + {file = "pyzmq-26.1.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d36b8fffe8b248a1b961c86fbdfa0129dfce878731d169ede7fa2631447331be"}, + {file = "pyzmq-26.1.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67976d12ebfd61a3bc7d77b71a9589b4d61d0422282596cf58c62c3866916544"}, + {file = "pyzmq-26.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:998444debc8816b5d8d15f966e42751032d0f4c55300c48cc337f2b3e4f17d03"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5c88b2f13bcf55fee78ea83567b9fe079ba1a4bef8b35c376043440040f7edb"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d906d43e1592be4b25a587b7d96527cb67277542a5611e8ea9e996182fae410"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80b0c9942430d731c786545da6be96d824a41a51742e3e374fedd9018ea43106"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:314d11564c00b77f6224d12eb3ddebe926c301e86b648a1835c5b28176c83eab"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:093a1a3cae2496233f14b57f4b485da01b4ff764582c854c0f42c6dd2be37f3d"}, + {file = "pyzmq-26.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c397b1b450f749a7e974d74c06d69bd22dd362142f370ef2bd32a684d6b480c"}, + {file = "pyzmq-26.1.0.tar.gz", hash = "sha256:6c5aeea71f018ebd3b9115c7cb13863dd850e98ca6b9258509de1246461a7e7f"}, ] [package.dependencies] @@ -2929,14 +2959,14 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.5.1" +version = "5.5.2" description = "Jupyter Qt console" category = "main" optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"}, - {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"}, + {file = "qtconsole-5.5.2-py3-none-any.whl", hash = "sha256:42d745f3d05d36240244a04e1e1ec2a86d5d9b6edb16dbdef582ccb629e87e0b"}, + {file = "qtconsole-5.5.2.tar.gz", hash = "sha256:6b5fb11274b297463706af84dcbbd5c92273b1f619e6d25d08874b0a88516989"}, ] [package.dependencies] @@ -2973,14 +3003,14 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "referencing" -version = "0.34.0" +version = "0.35.1" description = "JSON Referencing + Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, - {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, ] [package.dependencies] @@ -2989,14 +3019,14 @@ rpds-py = ">=0.7.0" [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -3038,166 +3068,170 @@ files = [ [[package]] name = "rpds-py" -version = "0.18.0" +version = "0.19.1" description = "Python bindings to Rust's persistent data structures (rpds)" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, - {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, - {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, - {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, - {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, - {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, - {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, - {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, - {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, - {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, - {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, - {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, - {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, + {file = "rpds_py-0.19.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:aaf71f95b21f9dc708123335df22e5a2fef6307e3e6f9ed773b2e0938cc4d491"}, + {file = "rpds_py-0.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca0dda0c5715efe2ab35bb83f813f681ebcd2840d8b1b92bfc6fe3ab382fae4a"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81db2e7282cc0487f500d4db203edc57da81acde9e35f061d69ed983228ffe3b"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1a8dfa125b60ec00c7c9baef945bb04abf8ac772d8ebefd79dae2a5f316d7850"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271accf41b02687cef26367c775ab220372ee0f4925591c6796e7c148c50cab5"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9bc4161bd3b970cd6a6fcda70583ad4afd10f2750609fb1f3ca9505050d4ef3"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0cf2a0dbb5987da4bd92a7ca727eadb225581dd9681365beba9accbe5308f7d"}, + {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b5e28e56143750808c1c79c70a16519e9bc0a68b623197b96292b21b62d6055c"}, + {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c7af6f7b80f687b33a4cdb0a785a5d4de1fb027a44c9a049d8eb67d5bfe8a687"}, + {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e429fc517a1c5e2a70d576077231538a98d59a45dfc552d1ac45a132844e6dfb"}, + {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d2dbd8f4990d4788cb122f63bf000357533f34860d269c1a8e90ae362090ff3a"}, + {file = "rpds_py-0.19.1-cp310-none-win32.whl", hash = "sha256:e0f9d268b19e8f61bf42a1da48276bcd05f7ab5560311f541d22557f8227b866"}, + {file = "rpds_py-0.19.1-cp310-none-win_amd64.whl", hash = "sha256:df7c841813f6265e636fe548a49664c77af31ddfa0085515326342a751a6ba51"}, + {file = "rpds_py-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:902cf4739458852fe917104365ec0efbea7d29a15e4276c96a8d33e6ed8ec137"}, + {file = "rpds_py-0.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3d73022990ab0c8b172cce57c69fd9a89c24fd473a5e79cbce92df87e3d9c48"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3837c63dd6918a24de6c526277910e3766d8c2b1627c500b155f3eecad8fad65"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cdb7eb3cf3deb3dd9e7b8749323b5d970052711f9e1e9f36364163627f96da58"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26ab43b6d65d25b1a333c8d1b1c2f8399385ff683a35ab5e274ba7b8bb7dc61c"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75130df05aae7a7ac171b3b5b24714cffeabd054ad2ebc18870b3aa4526eba23"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c34f751bf67cab69638564eee34023909380ba3e0d8ee7f6fe473079bf93f09b"}, + {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2671cb47e50a97f419a02cd1e0c339b31de017b033186358db92f4d8e2e17d8"}, + {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c73254c256081704dba0a333457e2fb815364018788f9b501efe7c5e0ada401"}, + {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4383beb4a29935b8fa28aca8fa84c956bf545cb0c46307b091b8d312a9150e6a"}, + {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dbceedcf4a9329cc665452db1aaf0845b85c666e4885b92ee0cddb1dbf7e052a"}, + {file = "rpds_py-0.19.1-cp311-none-win32.whl", hash = "sha256:f0a6d4a93d2a05daec7cb885157c97bbb0be4da739d6f9dfb02e101eb40921cd"}, + {file = "rpds_py-0.19.1-cp311-none-win_amd64.whl", hash = "sha256:c149a652aeac4902ecff2dd93c3b2681c608bd5208c793c4a99404b3e1afc87c"}, + {file = "rpds_py-0.19.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:56313be667a837ff1ea3508cebb1ef6681d418fa2913a0635386cf29cff35165"}, + {file = "rpds_py-0.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d1d7539043b2b31307f2c6c72957a97c839a88b2629a348ebabe5aa8b626d6b"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1dc59a5e7bc7f44bd0c048681f5e05356e479c50be4f2c1a7089103f1621d5"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8f78398e67a7227aefa95f876481485403eb974b29e9dc38b307bb6eb2315ea"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef07a0a1d254eeb16455d839cef6e8c2ed127f47f014bbda64a58b5482b6c836"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8124101e92c56827bebef084ff106e8ea11c743256149a95b9fd860d3a4f331f"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08ce9c95a0b093b7aec75676b356a27879901488abc27e9d029273d280438505"}, + {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b02dd77a2de6e49078c8937aadabe933ceac04b41c5dde5eca13a69f3cf144e"}, + {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4dd02e29c8cbed21a1875330b07246b71121a1c08e29f0ee3db5b4cfe16980c4"}, + {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9c7042488165f7251dc7894cd533a875d2875af6d3b0e09eda9c4b334627ad1c"}, + {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f809a17cc78bd331e137caa25262b507225854073fd319e987bd216bed911b7c"}, + {file = "rpds_py-0.19.1-cp312-none-win32.whl", hash = "sha256:3ddab996807c6b4227967fe1587febade4e48ac47bb0e2d3e7858bc621b1cace"}, + {file = "rpds_py-0.19.1-cp312-none-win_amd64.whl", hash = "sha256:32e0db3d6e4f45601b58e4ac75c6f24afbf99818c647cc2066f3e4b192dabb1f"}, + {file = "rpds_py-0.19.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:747251e428406b05fc86fee3904ee19550c4d2d19258cef274e2151f31ae9d38"}, + {file = "rpds_py-0.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dc733d35f861f8d78abfaf54035461e10423422999b360966bf1c443cbc42705"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbda75f245caecff8faa7e32ee94dfaa8312a3367397975527f29654cd17a6ed"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd04d8cab16cab5b0a9ffc7d10f0779cf1120ab16c3925404428f74a0a43205a"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2d66eb41ffca6cc3c91d8387509d27ba73ad28371ef90255c50cb51f8953301"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdf4890cda3b59170009d012fca3294c00140e7f2abe1910e6a730809d0f3f9b"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1fa67ef839bad3815124f5f57e48cd50ff392f4911a9f3cf449d66fa3df62a5"}, + {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b82c9514c6d74b89a370c4060bdb80d2299bc6857e462e4a215b4ef7aa7b090e"}, + {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c7b07959866a6afb019abb9564d8a55046feb7a84506c74a6f197cbcdf8a208e"}, + {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4f580ae79d0b861dfd912494ab9d477bea535bfb4756a2269130b6607a21802e"}, + {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c6d20c8896c00775e6f62d8373aba32956aa0b850d02b5ec493f486c88e12859"}, + {file = "rpds_py-0.19.1-cp313-none-win32.whl", hash = "sha256:afedc35fe4b9e30ab240b208bb9dc8938cb4afe9187589e8d8d085e1aacb8309"}, + {file = "rpds_py-0.19.1-cp313-none-win_amd64.whl", hash = "sha256:1d4af2eb520d759f48f1073ad3caef997d1bfd910dc34e41261a595d3f038a94"}, + {file = "rpds_py-0.19.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:34bca66e2e3eabc8a19e9afe0d3e77789733c702c7c43cd008e953d5d1463fde"}, + {file = "rpds_py-0.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:24f8ae92c7fae7c28d0fae9b52829235df83f34847aa8160a47eb229d9666c7b"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71157f9db7f6bc6599a852852f3389343bea34315b4e6f109e5cbc97c1fb2963"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d494887d40dc4dd0d5a71e9d07324e5c09c4383d93942d391727e7a40ff810b"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3661e6d4ba63a094138032c1356d557de5b3ea6fd3cca62a195f623e381c76"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97fbb77eaeb97591efdc654b8b5f3ccc066406ccfb3175b41382f221ecc216e8"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cc4bc73e53af8e7a42c8fd7923bbe35babacfa7394ae9240b3430b5dcf16b2a"}, + {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:35af5e4d5448fa179fd7fff0bba0fba51f876cd55212f96c8bbcecc5c684ae5c"}, + {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3511f6baf8438326e351097cecd137eb45c5f019944fe0fd0ae2fea2fd26be39"}, + {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:57863d16187995c10fe9cf911b897ed443ac68189179541734502353af33e693"}, + {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9e318e6786b1e750a62f90c6f7fa8b542102bdcf97c7c4de2a48b50b61bd36ec"}, + {file = "rpds_py-0.19.1-cp38-none-win32.whl", hash = "sha256:53dbc35808c6faa2ce3e48571f8f74ef70802218554884787b86a30947842a14"}, + {file = "rpds_py-0.19.1-cp38-none-win_amd64.whl", hash = "sha256:8df1c283e57c9cb4d271fdc1875f4a58a143a2d1698eb0d6b7c0d7d5f49c53a1"}, + {file = "rpds_py-0.19.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e76c902d229a3aa9d5ceb813e1cbcc69bf5bda44c80d574ff1ac1fa3136dea71"}, + {file = "rpds_py-0.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de1f7cd5b6b351e1afd7568bdab94934d656abe273d66cda0ceea43bbc02a0c2"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fc5a84777cb61692d17988989690d6f34f7f95968ac81398d67c0d0994a897"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:74129d5ffc4cde992d89d345f7f7d6758320e5d44a369d74d83493429dad2de5"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e360188b72f8080fefa3adfdcf3618604cc8173651c9754f189fece068d2a45"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13e6d4840897d4e4e6b2aa1443e3a8eca92b0402182aafc5f4ca1f5e24f9270a"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f09529d2332264a902688031a83c19de8fda5eb5881e44233286b9c9ec91856d"}, + {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0d4b52811dcbc1aba08fd88d475f75b4f6db0984ba12275d9bed1a04b2cae9b5"}, + {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd635c2c4043222d80d80ca1ac4530a633102a9f2ad12252183bcf338c1b9474"}, + {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f35b34a5184d5e0cc360b61664c1c06e866aab077b5a7c538a3e20c8fcdbf90b"}, + {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d4ec0046facab83012d821b33cead742a35b54575c4edfb7ed7445f63441835f"}, + {file = "rpds_py-0.19.1-cp39-none-win32.whl", hash = "sha256:f5b8353ea1a4d7dfb59a7f45c04df66ecfd363bb5b35f33b11ea579111d4655f"}, + {file = "rpds_py-0.19.1-cp39-none-win_amd64.whl", hash = "sha256:1fb93d3486f793d54a094e2bfd9cd97031f63fcb5bc18faeb3dd4b49a1c06523"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7d5c7e32f3ee42f77d8ff1a10384b5cdcc2d37035e2e3320ded909aa192d32c3"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:89cc8921a4a5028d6dd388c399fcd2eef232e7040345af3d5b16c04b91cf3c7e"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca34e913d27401bda2a6f390d0614049f5a95b3b11cd8eff80fe4ec340a1208"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5953391af1405f968eb5701ebbb577ebc5ced8d0041406f9052638bafe52209d"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:840e18c38098221ea6201f091fc5d4de6128961d2930fbbc96806fb43f69aec1"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d8b735c4d162dc7d86a9cf3d717f14b6c73637a1f9cd57fe7e61002d9cb1972"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce757c7c90d35719b38fa3d4ca55654a76a40716ee299b0865f2de21c146801c"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9421b23c85f361a133aa7c5e8ec757668f70343f4ed8fdb5a4a14abd5437244"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3b823be829407393d84ee56dc849dbe3b31b6a326f388e171555b262e8456cc1"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:5e58b61dcbb483a442c6239c3836696b79f2cd8e7eec11e12155d3f6f2d886d1"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39d67896f7235b2c886fb1ee77b1491b77049dcef6fbf0f401e7b4cbed86bbd4"}, + {file = "rpds_py-0.19.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8b32cd4ab6db50c875001ba4f5a6b30c0f42151aa1fbf9c2e7e3674893fb1dc4"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1c32e41de995f39b6b315d66c27dea3ef7f7c937c06caab4c6a79a5e09e2c415"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a129c02b42d46758c87faeea21a9f574e1c858b9f358b6dd0bbd71d17713175"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:346557f5b1d8fd9966059b7a748fd79ac59f5752cd0e9498d6a40e3ac1c1875f"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31e450840f2f27699d014cfc8865cc747184286b26d945bcea6042bb6aa4d26e"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01227f8b3e6c8961490d869aa65c99653df80d2f0a7fde8c64ebddab2b9b02fd"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69084fd29bfeff14816666c93a466e85414fe6b7d236cfc108a9c11afa6f7301"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d2b88efe65544a7d5121b0c3b003ebba92bfede2ea3577ce548b69c5235185"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ea961a674172ed2235d990d7edf85d15d8dfa23ab8575e48306371c070cda67"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5beffdbe766cfe4fb04f30644d822a1080b5359df7db3a63d30fa928375b2720"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:720f3108fb1bfa32e51db58b832898372eb5891e8472a8093008010911e324c5"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c2087dbb76a87ec2c619253e021e4fb20d1a72580feeaa6892b0b3d955175a71"}, + {file = "rpds_py-0.19.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ddd50f18ebc05ec29a0d9271e9dbe93997536da3546677f8ca00b76d477680c"}, + {file = "rpds_py-0.19.1.tar.gz", hash = "sha256:31dd5794837f00b46f4096aa8ccaa5972f73a938982e32ed817bb520c465e520"}, ] [[package]] name = "scipy" -version = "1.12.0" +version = "1.13.1" description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, - {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, - {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, - {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, - {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, - {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, - {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, - {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, - {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, - {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, - {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, -] - -[package.dependencies] -numpy = ">=1.22.4,<1.29.0" - -[package.extras] -dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "send2trash" -version = "1.8.2" +version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, - {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, ] [package.extras] @@ -3205,6 +3239,23 @@ nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] +[[package]] +name = "setuptools" +version = "72.1.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-72.1.0-py3-none-any.whl", hash = "sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1"}, + {file = "setuptools-72.1.0.tar.gz", hash = "sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec"}, +] + +[package.extras] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (>=1.11.0,<1.12.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "six" version = "1.16.0" @@ -3255,21 +3306,21 @@ files = [ [[package]] name = "sphinx" -version = "7.2.6" +version = "7.3.7" description = "Python documentation generator" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, - {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, + {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, + {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, ] [package.dependencies] -alabaster = ">=0.7,<0.8" +alabaster = ">=0.7.14,<0.8.0" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.21" +docutils = ">=0.18.1,<0.22" imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" @@ -3283,11 +3334,12 @@ sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" sphinxcontrib-serializinghtml = ">=1.1.9" +tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] +lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] [[package]] name = "sphinx-copybutton" @@ -3330,52 +3382,52 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.8" +version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, - {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, + {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, + {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.6" +version = "2.0.0" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, - {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, + {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, + {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.5" +version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, - {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, + {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, + {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] @@ -3427,35 +3479,35 @@ six = ">=1.5.2" [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.7" +version = "2.0.0" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, - {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, + {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, + {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] -test = ["pytest"] +test = ["defusedxml (>=0.7.1)", "pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.10" +version = "2.0.0" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, - {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, + {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, + {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, ] [package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] @@ -3481,18 +3533,19 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "tenacity" -version = "8.2.3" +version = "9.0.0" description = "Retry code until it succeeds" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tenacity-8.2.3-py3-none-any.whl", hash = "sha256:ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c"}, - {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, ] [package.extras] -doc = ["reno", "sphinx", "tornado (>=4.5)"] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] [[package]] name = "terminado" @@ -3518,14 +3571,14 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] [[package]] name = "tinycss2" -version = "1.2.1" +version = "1.3.0" description = "A tiny CSS parser" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, - {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, ] [package.dependencies] @@ -3533,7 +3586,7 @@ webencodings = ">=0.4" [package.extras] doc = ["sphinx", "sphinx_rtd_theme"] -test = ["flake8", "isort", "pytest"] +test = ["pytest", "ruff"] [[package]] name = "tomli" @@ -3549,47 +3602,47 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.4" +version = "0.13.0" description = "Style preserving TOML library" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomlkit-0.12.4-py3-none-any.whl", hash = "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b"}, - {file = "tomlkit-0.12.4.tar.gz", hash = "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3"}, + {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, + {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, ] [[package]] name = "tornado" -version = "6.4" +version = "6.4.1" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "main" optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, - {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, - {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, - {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, - {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, ] [[package]] name = "tqdm" -version = "4.66.2" +version = "4.66.5" description = "Fast, Extensible Progress Meter" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, - {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, + {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"}, + {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"}, ] [package.dependencies] @@ -3603,19 +3656,19 @@ telegram = ["requests"] [[package]] name = "traitlets" -version = "5.14.2" +version = "5.14.3" description = "Traitlets Python configuration system" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, - {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.1)", "pytest-mock", "pytest-mypy-testing"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "types-python-dateutil" @@ -3631,14 +3684,14 @@ files = [ [[package]] name = "typing-extensions" -version = "4.10.0" +version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, - {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -3686,14 +3739,14 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] @@ -3716,19 +3769,19 @@ files = [ [[package]] name = "webcolors" -version = "1.13" +version = "24.6.0" description = "A library for working with the color formats defined by HTML and CSS." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, - {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, + {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, + {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, ] [package.extras] docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["pytest", "pytest-cov"] +tests = ["coverage[toml]"] [[package]] name = "webencodings" @@ -3744,31 +3797,31 @@ files = [ [[package]] name = "websocket-client" -version = "1.7.0" +version = "1.8.0" description = "WebSocket client for Python with low level API options" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"}, - {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, ] [package.extras] -docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.10" +version = "4.0.11" description = "Jupyter interactive widgets for Jupyter Notebook" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, - {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, + {file = "widgetsnbextension-4.0.11-py3-none-any.whl", hash = "sha256:55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36"}, + {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, ] [[package]] @@ -3853,44 +3906,44 @@ files = [ [[package]] name = "xarray" -version = "2024.3.0" +version = "2024.7.0" description = "N-D labeled arrays and datasets in Python" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "xarray-2024.3.0-py3-none-any.whl", hash = "sha256:ca2bc4da2bf2e7879e15862a7a7c3fc76ad19f6a08931d030220cef39a29118d"}, - {file = "xarray-2024.3.0.tar.gz", hash = "sha256:5c1db19efdde61db7faedad8fc944f4e29698fb6fbd578d352668b63598bd1d8"}, + {file = "xarray-2024.7.0-py3-none-any.whl", hash = "sha256:1b0fd51ec408474aa1f4a355d75c00cc1c02bd425d97b2c2e551fd21810e7f64"}, + {file = "xarray-2024.7.0.tar.gz", hash = "sha256:4cae512d121a8522d41e66d942fb06c526bc1fd32c2c181d5fe62fe65b671638"}, ] [package.dependencies] numpy = ">=1.23" -packaging = ">=22" -pandas = ">=1.5" +packaging = ">=23.1" +pandas = ">=2.0" [package.extras] accel = ["bottleneck", "flox", "numbagg", "opt-einsum", "scipy"] complete = ["xarray[accel,dev,io,parallel,viz]"] -dev = ["hypothesis", "pre-commit", "pytest", "pytest-cov", "pytest-env", "pytest-timeout", "pytest-xdist", "ruff", "xarray[complete]"] +dev = ["hypothesis", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-env", "pytest-timeout", "pytest-xdist", "ruff", "xarray[complete]"] io = ["cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "scipy", "zarr"] parallel = ["dask[complete]"] viz = ["matplotlib", "nc-time-axis", "seaborn"] [[package]] name = "zipp" -version = "3.18.1" +version = "3.19.2" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, - {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" diff --git a/requirements.txt b/requirements.txt index a9c18835..553b916c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,134 +1,132 @@ -anyio==4.3.0 ; python_version >= "3.8" and python_version < "3.13" -appnope==0.1.4 ; python_version >= "3.8" and python_version < "3.13" and (platform_system == "Darwin" or sys_platform == "darwin") -argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_version < "3.13" -argon2-cffi==23.1.0 ; python_version >= "3.8" and python_version < "3.13" -arrow==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -asttokens==2.4.1 ; python_version >= "3.8" and python_version < "3.13" -async-lru==2.0.4 ; python_version >= "3.8" and python_version < "3.13" -attrs==23.2.0 ; python_version >= "3.8" and python_version < "3.13" -babel==2.14.0 ; python_version >= "3.8" and python_version < "3.13" -backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.13" -beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.13" -bleach==6.1.0 ; python_version >= "3.8" and python_version < "3.13" -certifi==2024.2.2 ; python_version >= "3.8" and python_version < "3.13" -cffi==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "win32" -comm==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -contourpy==1.1.1 ; python_version >= "3.8" and python_version < "3.13" -cycler==0.12.1 ; python_version >= "3.8" and python_version < "3.13" -debugpy==1.8.1 ; python_version >= "3.8" and python_version < "3.13" -decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.13" -defusedxml==0.7.1 ; python_version >= "3.8" and python_version < "3.13" -exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" -executing==2.0.1 ; python_version >= "3.8" and python_version < "3.13" -fastjsonschema==2.19.1 ; python_version >= "3.8" and python_version < "3.13" -fonttools==4.50.0 ; python_version >= "3.8" and python_version < "3.13" -fqdn==1.5.1 ; python_version >= "3.8" and python_version < "3.13" -georinex==1.16.1 ; python_version >= "3.8" and python_version < "3.13" -h11==0.14.0 ; python_version >= "3.8" and python_version < "3.13" -hatanaka==2.8.1 ; python_version >= "3.8" and python_version < "3.13" -httpcore==1.0.5 ; python_version >= "3.8" and python_version < "3.13" -httpx==0.27.0 ; python_version >= "3.8" and python_version < "3.13" -idna==3.6 ; python_version >= "3.8" and python_version < "3.13" -importlib-metadata==7.1.0 ; python_version >= "3.8" and python_version < "3.10" -importlib-resources==6.4.0 ; python_version >= "3.8" and python_version < "3.13" -iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.13" -ipykernel==6.29.4 ; python_version >= "3.8" and python_version < "3.13" -ipython==8.12.3 ; python_version >= "3.8" and python_version < "3.13" -ipywidgets==8.1.2 ; python_version >= "3.8" and python_version < "3.13" -isoduration==20.11.0 ; python_version >= "3.8" and python_version < "3.13" -jedi==0.19.1 ; python_version >= "3.8" and python_version < "3.13" -jinja2==3.1.3 ; python_version >= "3.8" and python_version < "3.13" -json5==0.9.24 ; python_version >= "3.8" and python_version < "3.13" -jsonpointer==2.4 ; python_version >= "3.8" and python_version < "3.13" -jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema==4.21.1 ; python_version >= "3.8" and python_version < "3.13" -jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.8" and python_version < "3.13" -jupyter-client==8.6.1 ; python_version >= "3.8" and python_version < "3.13" -jupyter-console==6.6.3 ; python_version >= "3.8" and python_version < "3.13" -jupyter-core==5.7.2 ; python_version >= "3.8" and python_version < "3.13" -jupyter-events==0.10.0 ; python_version >= "3.8" and python_version < "3.13" -jupyter-lsp==2.2.4 ; python_version >= "3.8" and python_version < "3.13" -jupyter-server-terminals==0.5.3 ; python_version >= "3.8" and python_version < "3.13" -jupyter-server==2.13.0 ; python_version >= "3.8" and python_version < "3.13" -jupyter==1.0.0 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-pygments==0.3.0 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-server==2.25.4 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab-widgets==3.0.10 ; python_version >= "3.8" and python_version < "3.13" -jupyterlab==4.1.5 ; python_version >= "3.8" and python_version < "3.13" -kaleido==0.2.1 ; python_version >= "3.8" and python_version < "3.13" -kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "3.13" -markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.13" -matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_version < "3.13" -matplotlib==3.7.5 ; python_version >= "3.8" and python_version < "3.13" -mistune==3.0.2 ; python_version >= "3.8" and python_version < "3.13" -nbclient==0.10.0 ; python_version >= "3.8" and python_version < "3.13" -nbconvert==7.16.3 ; python_version >= "3.8" and python_version < "3.13" -nbformat==5.10.3 ; python_version >= "3.8" and python_version < "3.13" -ncompress==1.0.2 ; python_version >= "3.8" and python_version < "3.13" -nest-asyncio==1.6.0 ; python_version >= "3.8" and python_version < "3.13" -notebook-shim==0.2.4 ; python_version >= "3.8" and python_version < "3.13" -notebook==7.1.2 ; python_version >= "3.8" and python_version < "3.13" -numpy==1.24.4 ; python_version >= "3.8" and python_version < "3.13" -overrides==7.7.0 ; python_version >= "3.8" and python_version < "3.13" -packaging==24.0 ; python_version >= "3.8" and python_version < "3.13" -pandas==2.0.3 ; python_version >= "3.8" and python_version < "3.13" -pandocfilters==1.5.1 ; python_version >= "3.8" and python_version < "3.13" -parso==0.8.3 ; python_version >= "3.8" and python_version < "3.13" -pexpect==4.9.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" -pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.13" -pillow==10.2.0 ; python_version >= "3.8" and python_version < "3.13" -pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.2.0 ; python_version >= "3.8" and python_version < "3.13" -plotly==5.20.0 ; python_version >= "3.8" and python_version < "3.13" -pluggy==1.4.0 ; python_version >= "3.8" and python_version < "3.13" -prometheus-client==0.20.0 ; python_version >= "3.8" and python_version < "3.13" -prompt-toolkit==3.0.43 ; python_version >= "3.8" and python_version < "3.13" -psutil==5.9.8 ; python_version >= "3.8" and python_version < "3.13" -ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") -pure-eval==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -pycparser==2.22 ; python_version >= "3.8" and python_version < "3.13" -pygments==2.17.2 ; python_version >= "3.8" and python_version < "3.13" -pynmea2==1.19.0 ; python_version >= "3.8" and python_version < "3.13" -pyparsing==3.1.2 ; python_version >= "3.8" and python_version < "3.13" -pytest==8.1.1 ; python_version >= "3.8" and python_version < "3.13" -python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.13" -python-json-logger==2.0.7 ; python_version >= "3.8" and python_version < "3.13" -pytz==2024.1 ; python_version >= "3.8" and python_version < "3.13" -pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "3.13" -pywinpty==2.0.13 ; python_version >= "3.8" and python_version < "3.13" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "3.13" -pyzmq==25.1.2 ; python_version >= "3.8" and python_version < "3.13" -qtconsole==5.5.1 ; python_version >= "3.8" and python_version < "3.13" -qtpy==2.4.1 ; python_version >= "3.8" and python_version < "3.13" -referencing==0.34.0 ; python_version >= "3.8" and python_version < "3.13" -requests==2.31.0 ; python_version >= "3.8" and python_version < "3.13" -rfc3339-validator==0.1.4 ; python_version >= "3.8" and python_version < "3.13" -rfc3986-validator==0.1.1 ; python_version >= "3.8" and python_version < "3.13" -rpds-py==0.18.0 ; python_version >= "3.8" and python_version < "3.13" -scipy==1.9.3 ; python_version >= "3.8" and python_version < "3.13" -send2trash==1.8.2 ; python_version >= "3.8" and python_version < "3.13" -six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" -sniffio==1.3.1 ; python_version >= "3.8" and python_version < "3.13" -soupsieve==2.5 ; python_version >= "3.8" and python_version < "3.13" -stack-data==0.6.3 ; python_version >= "3.8" and python_version < "3.13" -tenacity==8.2.3 ; python_version >= "3.8" and python_version < "3.13" -terminado==0.18.1 ; python_version >= "3.8" and python_version < "3.13" -tinycss2==1.2.1 ; python_version >= "3.8" and python_version < "3.13" -tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11" -tornado==6.4 ; python_version >= "3.8" and python_version < "3.13" -traitlets==5.14.2 ; python_version >= "3.8" and python_version < "3.13" -types-python-dateutil==2.9.0.20240316 ; python_version >= "3.8" and python_version < "3.13" -typing-extensions==4.10.0 ; python_version >= "3.8" and python_version < "3.11" -tzdata==2024.1 ; python_version >= "3.8" and python_version < "3.13" -unlzw3==0.2.2 ; python_version >= "3.8" and python_version < "3.13" -uri-template==1.3.0 ; python_version >= "3.8" and python_version < "3.13" -urllib3==2.2.1 ; python_version >= "3.8" and python_version < "3.13" -wcwidth==0.2.13 ; python_version >= "3.8" and python_version < "3.13" -webcolors==1.13 ; python_version >= "3.8" and python_version < "3.13" -webencodings==0.5.1 ; python_version >= "3.8" and python_version < "3.13" -websocket-client==1.7.0 ; python_version >= "3.8" and python_version < "3.13" -widgetsnbextension==4.0.10 ; python_version >= "3.8" and python_version < "3.13" -xarray==2023.1.0 ; python_version >= "3.8" and python_version < "3.13" -zipp==3.18.1 ; python_version >= "3.8" and python_version < "3.10" +anyio==4.4.0 ; python_version >= "3.9" and python_version < "3.13" +appnope==0.1.4 ; python_version >= "3.9" and python_version < "3.13" and platform_system == "Darwin" +argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.13" +argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.13" +arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" +async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" +attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" +babel==2.15.0 ; python_version >= "3.9" and python_version < "3.13" +beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.13" +bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" +certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" +cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" +comm==0.2.2 ; python_version >= "3.9" and python_version < "3.13" +contourpy==1.2.1 ; python_version >= "3.9" and python_version < "3.13" +cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" +debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" +defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" +exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" +executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" +fastjsonschema==2.20.0 ; python_version >= "3.9" and python_version < "3.13" +fonttools==4.53.1 ; python_version >= "3.9" and python_version < "3.13" +fqdn==1.5.1 ; python_version >= "3.9" and python_version < "3.13" +georinex==1.16.1 ; python_version >= "3.9" and python_version < "3.13" +h11==0.14.0 ; python_version >= "3.9" and python_version < "3.13" +hatanaka==2.8.1 ; python_version >= "3.9" and python_version < "3.13" +httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.13" +httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" +idna==3.7 ; python_version >= "3.9" and python_version < "3.13" +importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.13" +iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" +ipython==8.18.1 ; python_version >= "3.9" and python_version < "3.13" +ipywidgets==8.1.3 ; python_version >= "3.9" and python_version < "3.13" +isoduration==20.11.0 ; python_version >= "3.9" and python_version < "3.13" +jedi==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +jinja2==3.1.4 ; python_version >= "3.9" and python_version < "3.13" +json5==0.9.25 ; python_version >= "3.9" and python_version < "3.13" +jsonpointer==3.0.0 ; python_version >= "3.9" and python_version < "3.13" +jsonschema-specifications==2023.12.1 ; python_version >= "3.9" and python_version < "3.13" +jsonschema==4.23.0 ; python_version >= "3.9" and python_version < "3.13" +jsonschema[format-nongpl]==4.23.0 ; python_version >= "3.9" and python_version < "3.13" +jupyter-client==8.6.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter-console==6.6.3 ; python_version >= "3.9" and python_version < "3.13" +jupyter-core==5.7.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter-events==0.10.0 ; python_version >= "3.9" and python_version < "3.13" +jupyter-lsp==2.2.5 ; python_version >= "3.9" and python_version < "3.13" +jupyter-server-terminals==0.5.3 ; python_version >= "3.9" and python_version < "3.13" +jupyter-server==2.14.2 ; python_version >= "3.9" and python_version < "3.13" +jupyter==1.0.0 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-pygments==0.3.0 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-server==2.27.3 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab-widgets==3.0.11 ; python_version >= "3.9" and python_version < "3.13" +jupyterlab==4.2.4 ; python_version >= "3.9" and python_version < "3.13" +kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" +kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" +markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" +matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.9.1 ; python_version >= "3.9" and python_version < "3.13" +mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" +nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" +nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" +nbformat==5.10.4 ; python_version >= "3.9" and python_version < "3.13" +ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" +nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" +notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" +notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" +numpy==1.26.4 ; python_version < "3.13" and python_version >= "3.9" +overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" +packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" +pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" +pandocfilters==1.5.1 ; python_version >= "3.9" and python_version < "3.13" +parso==0.8.4 ; python_version >= "3.9" and python_version < "3.13" +pexpect==4.9.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +pillow==10.4.0 ; python_version >= "3.9" and python_version < "3.13" +platformdirs==4.2.2 ; python_version >= "3.9" and python_version < "3.13" +plotly==5.23.0 ; python_version >= "3.9" and python_version < "3.13" +pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" +prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "3.13" +psutil==6.0.0 ; python_version >= "3.9" and python_version < "3.13" +ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and os_name != "nt" or python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" +pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" +pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" +pynmea2==1.19.0 ; python_version >= "3.9" and python_version < "3.13" +pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "3.13" +pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" +python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" +pytz==2024.1 ; python_version >= "3.9" and python_version < "3.13" +pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.13" +pywinpty==2.0.13 ; python_version >= "3.9" and python_version < "3.13" and os_name == "nt" +pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" +pyzmq==26.1.0 ; python_version >= "3.9" and python_version < "3.13" +qtconsole==5.5.2 ; python_version >= "3.9" and python_version < "3.13" +qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.13" +referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" +requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" +rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.13" +rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.13" +rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.13" +send2trash==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +setuptools==72.1.0 ; python_version >= "3.9" and python_version < "3.13" +six==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" +soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" +stack-data==0.6.3 ; python_version >= "3.9" and python_version < "3.13" +tenacity==9.0.0 ; python_version >= "3.9" and python_version < "3.13" +terminado==0.18.1 ; python_version >= "3.9" and python_version < "3.13" +tinycss2==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +tomli==2.0.1 ; python_version >= "3.9" and python_version < "3.11" +tornado==6.4.1 ; python_version >= "3.9" and python_version < "3.13" +traitlets==5.14.3 ; python_version >= "3.9" and python_version < "3.13" +types-python-dateutil==2.9.0.20240316 ; python_version >= "3.9" and python_version < "3.13" +typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "3.11" +tzdata==2024.1 ; python_version >= "3.9" and python_version < "3.13" +unlzw3==0.2.2 ; python_version >= "3.9" and python_version < "3.13" +uri-template==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +urllib3==2.2.2 ; python_version >= "3.9" and python_version < "3.13" +wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.13" +webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" +webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" +websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" +widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" +xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" +zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" From eab5de810c9de0e6e014d985e3ef4cffd293f0a4 Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 15:28:29 -0700 Subject: [PATCH 26/40] update dependencies in pyproject --- docs/source/requirements.txt | 14 +- poetry.lock | 260 ++++++++++------------------------- pyproject.toml | 14 +- requirements.txt | 2 +- tests/utils/test_dop.py | 2 + 5 files changed, 85 insertions(+), 207 deletions(-) diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index d22cf49a..351c6201 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -4,7 +4,7 @@ appnope==0.1.4 ; python_version >= "3.9" and python_version < "3.13" and platfor argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.13" argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.13" arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" -astroid==2.15.8 ; python_version >= "3.9" and python_version < "3.13" +astroid==3.2.4 ; python_version >= "3.9" and python_version < "3.13" asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" @@ -22,7 +22,7 @@ cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" -dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" +dill==0.3.8 ; python_version < "3.13" and python_version >= "3.9" docutils==0.18.1 ; python_version >= "3.9" and python_version < "3.13" exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" @@ -65,7 +65,6 @@ jupyterlab-widgets==3.0.11 ; python_version >= "3.9" and python_version < "3.13" jupyterlab==4.2.4 ; python_version >= "3.9" and python_version < "3.13" kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" -lazy-object-proxy==1.10.0 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" matplotlib==3.9.1 ; python_version >= "3.9" and python_version < "3.13" @@ -80,7 +79,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==1.26.4 ; python_version < "3.13" and python_version >= "3.9" +numpy==2.0.1 ; python_version < "3.13" and python_version >= "3.9" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" @@ -100,10 +99,10 @@ pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" pylint-exit==1.2.0 ; python_version >= "3.9" and python_version < "3.13" -pylint==2.17.7 ; python_version >= "3.9" and python_version < "3.13" +pylint==3.2.6 ; python_version >= "3.9" and python_version < "3.13" pynmea2==1.19.0 ; python_version >= "3.9" and python_version < "3.13" pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "3.13" -pytest-cov==4.1.0 ; python_version >= "3.9" and python_version < "3.13" +pytest-cov==5.0.0 ; python_version >= "3.9" and python_version < "3.13" pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" @@ -127,7 +126,7 @@ sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "3.13" -sphinx-rtd-theme==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +sphinx-rtd-theme==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinx==7.3.7 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-applehelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-devhelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" @@ -157,6 +156,5 @@ webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" -wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.13" xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" diff --git a/poetry.lock b/poetry.lock index 2354b313..be74baf2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -128,23 +128,18 @@ test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "py [[package]] name = "astroid" -version = "2.15.8" +version = "3.2.4" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, - {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, + {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, + {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, ] [package.dependencies] -lazy-object-proxy = ">=1.4.0" typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} -wrapt = [ - {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, -] [[package]] name = "asttokens" @@ -1649,53 +1644,6 @@ files = [ {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, ] -[[package]] -name = "lazy-object-proxy" -version = "1.10.0" -description = "A fast and thorough lazy object proxy." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, - {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, -] - [[package]] name = "markupsafe" version = "2.1.5" @@ -2123,48 +2071,57 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.26.4" +version = "2.0.1" description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101"}, + {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9"}, + {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015"}, + {file = "numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87"}, + {file = "numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82"}, + {file = "numpy-2.0.1-cp310-cp310-win32.whl", hash = "sha256:7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1"}, + {file = "numpy-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b"}, + {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe"}, + {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67"}, + {file = "numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7"}, + {file = "numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55"}, + {file = "numpy-2.0.1-cp311-cp311-win32.whl", hash = "sha256:36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4"}, + {file = "numpy-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587"}, + {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8"}, + {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a"}, + {file = "numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7"}, + {file = "numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b"}, + {file = "numpy-2.0.1-cp312-cp312-win32.whl", hash = "sha256:173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf"}, + {file = "numpy-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c"}, + {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59"}, + {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26"}, + {file = "numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018"}, + {file = "numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c"}, + {file = "numpy-2.0.1-cp39-cp39-win32.whl", hash = "sha256:f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4"}, + {file = "numpy-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f"}, + {file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"}, ] [[package]] @@ -2586,24 +2543,25 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylint" -version = "2.17.7" +version = "3.2.6" description = "python code static checker" category = "dev" optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, - {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, + {file = "pylint-3.2.6-py3-none-any.whl", hash = "sha256:03c8e3baa1d9fb995b12c1dbe00aa6c4bcef210c2a2634374aedeb22fb4a8f8f"}, + {file = "pylint-3.2.6.tar.gz", hash = "sha256:a5d01678349454806cff6d886fb072294f56a58c4761278c97fb557d708e1eb3"}, ] [package.dependencies] -astroid = ">=2.15.8,<=2.17.0-dev0" +astroid = ">=3.2.4,<=3.3.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, + {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, ] -isort = ">=4.2.5,<6" +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -2678,14 +2636,14 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments [[package]] name = "pytest-cov" -version = "4.1.0" +version = "5.0.0" description = "Pytest plugin for measuring coverage." category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] @@ -2693,7 +2651,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "python-dateutil" @@ -3362,19 +3320,19 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] [[package]] name = "sphinx-rtd-theme" -version = "1.3.0" +version = "2.0.0" description = "Read the Docs theme for Sphinx" category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.6" files = [ - {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, - {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, + {file = "sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586"}, + {file = "sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"}, ] [package.dependencies] -docutils = "<0.19" -sphinx = ">=1.6,<8" +docutils = "<0.21" +sphinx = ">=5,<8" sphinxcontrib-jquery = ">=4,<5" [package.extras] @@ -3824,86 +3782,6 @@ files = [ {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, ] -[[package]] -name = "wrapt" -version = "1.16.0" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, -] - [[package]] name = "xarray" version = "2024.7.0" @@ -3948,4 +3826,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9, < 3.13" -content-hash = "68be6f0bc6e5c869cdf3c6e2e41fafda0c0d71f4ca89a913ee9e4990551d6642" +content-hash = "8180866db5430e97e9720552c003e025160826cb57f8df9693ce34f163c7660d" diff --git a/pyproject.toml b/pyproject.toml index 6d52d956..7c6cef67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,31 +18,31 @@ classifiers = [ [tool.poetry.dependencies] python = ">=3.9, < 3.13" -numpy = "^1.21.0" +numpy = "^2.0.1" pandas = "^2.2.0" georinex = "<=1.16.1" unlzw3 = "^0.2.1" pynmea2 = "^1.18.0" -pytest = ">=7.2" +pytest = "^8.3" scipy = "^1.7.3" jupyter = "^1.0.0" notebook = "^7.0.0" ipykernel = "^6.0.3" -matplotlib = "^3.5.1" +matplotlib = "^3.8" plotly = "^5.8.0" kaleido = "0.2.1" -requests = "^2.29.0" +requests = "^2.32.3" [tool.poetry.group.dev.dependencies] Sphinx = "^7.0.0" -sphinx-rtd-theme = "^1.0.0" +sphinx-rtd-theme = "^2.0.0" sphinxcontrib-napoleon = "^0.7" pylint-exit = "^1.2.0" nbsphinx = "^0.8.9" nbsphinx-link = "^1.3.0" tqdm = "^4.65.0" -pylint = "^2.11.1" -pytest-cov = "^4.0.0" +pylint = "^3.2" +pytest-cov = "^5.0.0" sphinx-copybutton = "^0.5.2" [build-system] diff --git a/requirements.txt b/requirements.txt index 553b916c..3d410579 100644 --- a/requirements.txt +++ b/requirements.txt @@ -69,7 +69,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==1.26.4 ; python_version < "3.13" and python_version >= "3.9" +numpy==2.0.1 ; python_version < "3.13" and python_version >= "3.9" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" diff --git a/tests/utils/test_dop.py b/tests/utils/test_dop.py index ffe9fbf2..9d89cfe4 100644 --- a/tests/utils/test_dop.py +++ b/tests/utils/test_dop.py @@ -413,6 +413,7 @@ def test_singularity_dop(navdata): # Note: we use np.any() since we can get small values in the DOP matrix # even if singular (i.e., in the off-diagonal entries). for _, val in dop_dict.items(): + print("1:",val) assert np.any(np.isnan(val)) or np.any(np.abs(val) > 1e6) except np.linalg.LinAlgError: @@ -422,6 +423,7 @@ def test_singularity_dop(navdata): # Now check that we get all NaNs for the DOP values when we have a # singularity for _, val in dop_dict.items(): + print("2:",val) assert np.all(np.isnan(val)) From e9f1e112094586661b3aadb0523ef46b706966ea Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 15:34:18 -0700 Subject: [PATCH 27/40] use latest action versions --- .github/workflows/build.yml | 12 ++++++------ .github/workflows/build_new_version.yml | 12 ++++++------ .github/workflows/pip-install.yml | 4 ++-- .github/workflows/pylint.yml | 6 +++--- .github/workflows/pypi-release.yml | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bcaa54c5..ecc762be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,10 +28,10 @@ jobs: shell: bash steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry @@ -43,7 +43,7 @@ jobs: # Load cached environment, if it exists - name: Load cached poetry environment id: cached-poetry-dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .venv key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} @@ -68,7 +68,7 @@ jobs: source $VENV poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml - name: Upload coverage report to code-cov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos @@ -79,13 +79,13 @@ jobs: runs-on: ubuntu-latest name: Check if index.rst and README.md weren't changed together steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get changed files since last remote commit id: changed-files - uses: tj-actions/changed-files@v41 + uses: tj-actions/changed-files@v44 - name: Check if index.rst changed when README.md file changes if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') diff --git a/.github/workflows/build_new_version.yml b/.github/workflows/build_new_version.yml index 1b687c5c..b4d4feac 100644 --- a/.github/workflows/build_new_version.yml +++ b/.github/workflows/build_new_version.yml @@ -26,10 +26,10 @@ jobs: shell: bash steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry @@ -41,7 +41,7 @@ jobs: # Load cached environment, if it exists - name: Load cached poetry environment id: cached-poetry-dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .venv key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} @@ -66,7 +66,7 @@ jobs: source $VENV poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml - name: Upload coverage report to code-cov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos @@ -77,13 +77,13 @@ jobs: runs-on: ubuntu-latest name: Check if index.rst and README.md weren't changed together steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get changed files since last remote commit id: changed-files - uses: tj-actions/changed-files@v34 + uses: tj-actions/changed-files@v44 - name: Check if index.rst changed when README.md file changes if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') diff --git a/.github/workflows/pip-install.yml b/.github/workflows/pip-install.yml index f51eb721..c5988d9e 100644 --- a/.github/workflows/pip-install.yml +++ b/.github/workflows/pip-install.yml @@ -18,9 +18,9 @@ jobs: os: [ubuntu-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install using pip diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 3565b881..8d3e57fb 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -15,10 +15,10 @@ jobs: matrix: python-version: ["3.9"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry @@ -29,7 +29,7 @@ jobs: installer-parallel: true # default option selected currently - name: Load cached poetry environment id: cached-poetry-dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .venv key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 4ff7c69e..8be71010 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -15,9 +15,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" From 24aa4f5b380a4223d153ca99232c6e12a752257c Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 15:57:44 -0700 Subject: [PATCH 28/40] deprecate matplotlib, update poetry --- docs/source/requirements.txt | 14 +- poetry.lock | 286 ++++++++--------------------------- pyproject.toml | 2 +- requirements.txt | 6 +- 4 files changed, 75 insertions(+), 233 deletions(-) diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 351c6201..7b878e56 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -14,7 +14,7 @@ bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" or python_version >= "3.9" and python_version < "3.13" and platform_system == "Windows" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") comm==0.2.2 ; python_version >= "3.9" and python_version < "3.13" contourpy==1.2.1 ; python_version >= "3.9" and python_version < "3.13" coverage[toml]==7.6.1 ; python_version >= "3.9" and python_version < "3.13" @@ -22,8 +22,8 @@ cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" -dill==0.3.8 ; python_version < "3.13" and python_version >= "3.9" -docutils==0.18.1 ; python_version >= "3.9" and python_version < "3.13" +dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" +docutils==0.20.1 ; python_version >= "3.9" and python_version < "3.13" exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" fastjsonschema==2.20.0 ; python_version >= "3.9" and python_version < "3.13" @@ -67,7 +67,7 @@ kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" -matplotlib==3.9.1 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" @@ -79,7 +79,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==2.0.1 ; python_version < "3.13" and python_version >= "3.9" +numpy==2.0.1 ; python_version >= "3.9" and python_version < "3.13" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" @@ -94,7 +94,7 @@ pockets==0.9.1 ; python_version >= "3.9" and python_version < "3.13" prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "3.13" psutil==6.0.0 ; python_version >= "3.9" and python_version < "3.13" -ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and os_name != "nt" or python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" @@ -127,7 +127,7 @@ snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "3.13" sphinx-rtd-theme==2.0.0 ; python_version >= "3.9" and python_version < "3.13" -sphinx==7.3.7 ; python_version >= "3.9" and python_version < "3.13" +sphinx==7.4.7 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-applehelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-devhelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.9" and python_version < "3.13" diff --git a/poetry.lock b/poetry.lock index be74baf2..07514773 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.16" description = "A light, configurable Sphinx theme" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -16,7 +15,6 @@ files = [ name = "anyio" version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -39,7 +37,6 @@ trio = ["trio (>=0.23)"] name = "appnope" version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -51,7 +48,6 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -72,7 +68,6 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -110,7 +105,6 @@ tests = ["pytest"] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -124,13 +118,12 @@ types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] [[package]] name = "astroid" version = "3.2.4" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -145,7 +138,6 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "asttokens" version = "2.4.1" description = "Annotate AST trees with source code positions" -category = "main" optional = false python-versions = "*" files = [ @@ -164,7 +156,6 @@ test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -179,7 +170,6 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "attrs" version = "24.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -199,7 +189,6 @@ tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] name = "babel" version = "2.15.0" description = "Internationalization utilities" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -214,7 +203,6 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] name = "beautifulsoup4" version = "4.12.3" description = "Screen-scraping library" -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -236,7 +224,6 @@ lxml = ["lxml"] name = "bleach" version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -255,7 +242,6 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] name = "certifi" version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -267,7 +253,6 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -332,7 +317,6 @@ pycparser = "*" name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -432,7 +416,6 @@ files = [ name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -444,7 +427,6 @@ files = [ name = "comm" version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -462,7 +444,6 @@ test = ["pytest"] name = "contourpy" version = "1.2.1" description = "Python library for calculating contours of 2D quadrilateral grids" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -526,7 +507,6 @@ test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] name = "coverage" version = "7.6.1" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -614,7 +594,6 @@ toml = ["tomli"] name = "cycler" version = "0.12.1" description = "Composable style cycles" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -630,7 +609,6 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] name = "debugpy" version = "1.8.3" description = "An implementation of the Debug Adapter Protocol for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -642,7 +620,6 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -654,7 +631,6 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -666,7 +642,6 @@ files = [ name = "dill" version = "0.3.8" description = "serialize all of Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -680,21 +655,19 @@ profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "docutils" -version = "0.18.1" +version = "0.20.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" files = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, ] [[package]] name = "exceptiongroup" version = "1.2.2" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -709,7 +682,6 @@ test = ["pytest (>=6)"] name = "executing" version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -724,7 +696,6 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth name = "fastjsonschema" version = "2.20.0" description = "Fastest Python implementation of JSON schema" -category = "main" optional = false python-versions = "*" files = [ @@ -739,7 +710,6 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "fonttools" version = "4.53.1" description = "Tools to manipulate font files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -805,7 +775,6 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" -category = "main" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -817,7 +786,6 @@ files = [ name = "georinex" version = "1.16.1" description = "Python RINEX 2/3 NAV/OBS reader with speed and simplicity." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -841,7 +809,6 @@ tests = ["pytest (>=3.9)", "pytest-timeout"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -853,7 +820,6 @@ files = [ name = "hatanaka" version = "2.8.1" description = "Effortlessly compress / decompress any RINEX file" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -888,7 +854,6 @@ tests = ["pytest"] name = "httpcore" version = "1.0.5" description = "A minimal low-level HTTP client." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -903,14 +868,13 @@ h11 = ">=0.13,<0.15" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" version = "0.27.0" description = "The next generation HTTP client." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -921,21 +885,20 @@ files = [ [package.dependencies] anyio = "*" certifi = "*" -httpcore = ">=1.0.0,<2.0.0" +httpcore = "==1.*" idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "idna" version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -947,7 +910,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -959,7 +921,6 @@ files = [ name = "importlib-metadata" version = "8.2.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -979,7 +940,6 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p name = "importlib-resources" version = "6.4.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -998,7 +958,6 @@ testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "p name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1010,7 +969,6 @@ files = [ name = "ipykernel" version = "6.29.5" description = "IPython Kernel for Jupyter" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1024,7 +982,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1044,7 +1002,6 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio name = "ipython" version = "8.18.1" description = "IPython: Productive Interactive Computing" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1082,7 +1039,6 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa name = "ipywidgets" version = "8.1.3" description = "Jupyter interactive widgets" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1104,7 +1060,6 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1119,7 +1074,6 @@ arrow = ">=0.15.0" name = "isort" version = "5.13.2" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -1134,7 +1088,6 @@ colors = ["colorama (>=0.4.6)"] name = "jedi" version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1154,7 +1107,6 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.4" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1172,7 +1124,6 @@ i18n = ["Babel (>=2.7)"] name = "json5" version = "0.9.25" description = "A Python implementation of the JSON5 data format." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1184,7 +1135,6 @@ files = [ name = "jsonpointer" version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1196,7 +1146,6 @@ files = [ name = "jsonschema" version = "4.23.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1226,7 +1175,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.12.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1241,7 +1189,6 @@ referencing = ">=0.31.0" name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." -category = "main" optional = false python-versions = "*" files = [ @@ -1262,7 +1209,6 @@ qtconsole = "*" name = "jupyter-client" version = "8.6.2" description = "Jupyter protocol implementation and client libraries" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1272,7 +1218,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1286,7 +1232,6 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1298,7 +1243,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -1311,7 +1256,6 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1332,7 +1276,6 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout" name = "jupyter-events" version = "0.10.0" description = "Jupyter Event System library" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1358,7 +1301,6 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.5" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1374,7 +1316,6 @@ jupyter-server = ">=1.1.2" name = "jupyter-server" version = "2.14.2" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1387,7 +1328,7 @@ anyio = ">=3.1.0" argon2-cffi = ">=21.1" jinja2 = ">=3.0.3" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" jupyter-events = ">=0.9.0" jupyter-server-terminals = ">=0.4.4" nbconvert = ">=6.4.4" @@ -1411,7 +1352,6 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console name = "jupyter-server-terminals" version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1431,7 +1371,6 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> name = "jupyterlab" version = "4.2.4" description = "JupyterLab computational environment" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1467,7 +1406,6 @@ upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)" name = "jupyterlab-pygments" version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1479,7 +1417,6 @@ files = [ name = "jupyterlab-server" version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1506,7 +1443,6 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v name = "jupyterlab-widgets" version = "3.0.11" description = "Jupyter interactive widgets for JupyterLab" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1518,7 +1454,6 @@ files = [ name = "kaleido" version = "0.2.1" description = "Static image export for web-based visualization libraries with zero dependencies" -category = "main" optional = false python-versions = "*" files = [ @@ -1534,7 +1469,6 @@ files = [ name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1648,7 +1582,6 @@ files = [ name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1716,36 +1649,39 @@ files = [ [[package]] name = "matplotlib" -version = "3.9.1" +version = "3.8.4" description = "Python plotting package" -category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.9.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7ccd6270066feb9a9d8e0705aa027f1ff39f354c72a87efe8fa07632f30fc6bb"}, - {file = "matplotlib-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:591d3a88903a30a6d23b040c1e44d1afdd0d778758d07110eb7596f811f31842"}, - {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2a59ff4b83d33bca3b5ec58203cc65985367812cb8c257f3e101632be86d92"}, - {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fc001516ffcf1a221beb51198b194d9230199d6842c540108e4ce109ac05cc0"}, - {file = "matplotlib-3.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:83c6a792f1465d174c86d06f3ae85a8fe36e6f5964633ae8106312ec0921fdf5"}, - {file = "matplotlib-3.9.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b3fce58971b465e01b5c538f9d44915640c20ec5ff31346e963c9e1cd66fa812"}, - {file = "matplotlib-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a973c53ad0668c53e0ed76b27d2eeeae8799836fd0d0caaa4ecc66bf4e6676c0"}, - {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cd5acf8f3ef43f7532c2f230249720f5dc5dd40ecafaf1c60ac8200d46d7eb"}, - {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab38a4f3772523179b2f772103d8030215b318fef6360cb40558f585bf3d017f"}, - {file = "matplotlib-3.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2315837485ca6188a4b632c5199900e28d33b481eb083663f6a44cfc8987ded3"}, - {file = "matplotlib-3.9.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:565d572efea2b94f264dd86ef27919515aa6d629252a169b42ce5f570db7f37b"}, - {file = "matplotlib-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d397fd8ccc64af2ec0af1f0efc3bacd745ebfb9d507f3f552e8adb689ed730a"}, - {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26040c8f5121cd1ad712abffcd4b5222a8aec3a0fe40bc8542c94331deb8780d"}, - {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12cb1837cffaac087ad6b44399d5e22b78c729de3cdae4629e252067b705e2b"}, - {file = "matplotlib-3.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0e835c6988edc3d2d08794f73c323cc62483e13df0194719ecb0723b564e0b5c"}, - {file = "matplotlib-3.9.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0c584210c755ae921283d21d01f03a49ef46d1afa184134dd0f95b0202ee6f03"}, - {file = "matplotlib-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11fed08f34fa682c2b792942f8902e7aefeed400da71f9e5816bea40a7ce28fe"}, - {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0000354e32efcfd86bda75729716b92f5c2edd5b947200be9881f0a671565c33"}, - {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db17fea0ae3aceb8e9ac69c7e3051bae0b3d083bfec932240f9bf5d0197a049"}, - {file = "matplotlib-3.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:208cbce658b72bf6a8e675058fbbf59f67814057ae78165d8a2f87c45b48d0ff"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3fda72d4d472e2ccd1be0e9ccb6bf0d2eaf635e7f8f51d737ed7e465ac020cb3"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:84b3ba8429935a444f1fdc80ed930babbe06725bcf09fbeb5c8757a2cd74af04"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b918770bf3e07845408716e5bbda17eadfc3fcbd9307dc67f37d6cf834bb3d98"}, - {file = "matplotlib-3.9.1.tar.gz", hash = "sha256:de06b19b8db95dd33d0dc17c926c7c9ebed9f572074b6fac4f65068a6814d010"}, + {file = "matplotlib-3.8.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:abc9d838f93583650c35eca41cfcec65b2e7cb50fd486da6f0c49b5e1ed23014"}, + {file = "matplotlib-3.8.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f65c9f002d281a6e904976007b2d46a1ee2bcea3a68a8c12dda24709ddc9106"}, + {file = "matplotlib-3.8.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce1edd9f5383b504dbc26eeea404ed0a00656c526638129028b758fd43fc5f10"}, + {file = "matplotlib-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecd79298550cba13a43c340581a3ec9c707bd895a6a061a78fa2524660482fc0"}, + {file = "matplotlib-3.8.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:90df07db7b599fe7035d2f74ab7e438b656528c68ba6bb59b7dc46af39ee48ef"}, + {file = "matplotlib-3.8.4-cp310-cp310-win_amd64.whl", hash = "sha256:ac24233e8f2939ac4fd2919eed1e9c0871eac8057666070e94cbf0b33dd9c338"}, + {file = "matplotlib-3.8.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:72f9322712e4562e792b2961971891b9fbbb0e525011e09ea0d1f416c4645661"}, + {file = "matplotlib-3.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:232ce322bfd020a434caaffbd9a95333f7c2491e59cfc014041d95e38ab90d1c"}, + {file = "matplotlib-3.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6addbd5b488aedb7f9bc19f91cd87ea476206f45d7116fcfe3d31416702a82fa"}, + {file = "matplotlib-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc4ccdc64e3039fc303defd119658148f2349239871db72cd74e2eeaa9b80b71"}, + {file = "matplotlib-3.8.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b7a2a253d3b36d90c8993b4620183b55665a429da8357a4f621e78cd48b2b30b"}, + {file = "matplotlib-3.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:8080d5081a86e690d7688ffa542532e87f224c38a6ed71f8fbed34dd1d9fedae"}, + {file = "matplotlib-3.8.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6485ac1f2e84676cff22e693eaa4fbed50ef5dc37173ce1f023daef4687df616"}, + {file = "matplotlib-3.8.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c89ee9314ef48c72fe92ce55c4e95f2f39d70208f9f1d9db4e64079420d8d732"}, + {file = "matplotlib-3.8.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50bac6e4d77e4262c4340d7a985c30912054745ec99756ce213bfbc3cb3808eb"}, + {file = "matplotlib-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f51c4c869d4b60d769f7b4406eec39596648d9d70246428745a681c327a8ad30"}, + {file = "matplotlib-3.8.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b12ba985837e4899b762b81f5b2845bd1a28f4fdd1a126d9ace64e9c4eb2fb25"}, + {file = "matplotlib-3.8.4-cp312-cp312-win_amd64.whl", hash = "sha256:7a6769f58ce51791b4cb8b4d7642489df347697cd3e23d88266aaaee93b41d9a"}, + {file = "matplotlib-3.8.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:843cbde2f0946dadd8c5c11c6d91847abd18ec76859dc319362a0964493f0ba6"}, + {file = "matplotlib-3.8.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c13f041a7178f9780fb61cc3a2b10423d5e125480e4be51beaf62b172413b67"}, + {file = "matplotlib-3.8.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb44f53af0a62dc80bba4443d9b27f2fde6acfdac281d95bc872dc148a6509cc"}, + {file = "matplotlib-3.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:606e3b90897554c989b1e38a258c626d46c873523de432b1462f295db13de6f9"}, + {file = "matplotlib-3.8.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9bb0189011785ea794ee827b68777db3ca3f93f3e339ea4d920315a0e5a78d54"}, + {file = "matplotlib-3.8.4-cp39-cp39-win_amd64.whl", hash = "sha256:6209e5c9aaccc056e63b547a8152661324404dd92340a6e479b3a7f24b42a5d0"}, + {file = "matplotlib-3.8.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c7064120a59ce6f64103c9cefba8ffe6fba87f2c61d67c401186423c9a20fd35"}, + {file = "matplotlib-3.8.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e47eda4eb2614300fc7bb4657fced3e83d6334d03da2173b09e447418d499f"}, + {file = "matplotlib-3.8.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:493e9f6aa5819156b58fce42b296ea31969f2aab71c5b680b4ea7a3cb5c07d94"}, + {file = "matplotlib-3.8.4.tar.gz", hash = "sha256:8aac397d5e9ec158960e31c381c5ffc52ddd52bd9a47717e2a694038167dffea"}, ] [package.dependencies] @@ -1754,20 +1690,16 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.3.1" -numpy = ">=1.23" +numpy = ">=1.21" packaging = ">=20.0" pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" -[package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] - [[package]] name = "matplotlib-inline" version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1782,7 +1714,6 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1794,7 +1725,6 @@ files = [ name = "mistune" version = "3.0.2" description = "A sane and fast Markdown parser with useful plugins and renderers" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1806,7 +1736,6 @@ files = [ name = "nbclient" version = "0.10.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -category = "main" optional = false python-versions = ">=3.8.0" files = [ @@ -1816,7 +1745,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -1829,7 +1758,6 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.16.4" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1868,7 +1796,6 @@ webpdf = ["playwright"] name = "nbformat" version = "5.10.4" description = "The Jupyter Notebook format" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1879,7 +1806,7 @@ files = [ [package.dependencies] fastjsonschema = ">=2.15" jsonschema = ">=2.6" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" traitlets = ">=5.1" [package.extras] @@ -1890,7 +1817,6 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nbsphinx" version = "0.8.12" description = "Jupyter Notebook Tools for Sphinx" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1910,7 +1836,6 @@ traitlets = ">=5" name = "nbsphinx-link" version = "1.3.0" description = "A sphinx extension for including notebook files outside sphinx source root" -category = "dev" optional = false python-versions = "*" files = [ @@ -1926,7 +1851,6 @@ sphinx = ">=1.8" name = "ncompress" version = "1.0.2" description = "LZW compression and decompression" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2019,7 +1943,6 @@ tests = ["pytest"] name = "nest-asyncio" version = "1.6.0" description = "Patch asyncio to allow nested event loops" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2031,7 +1954,6 @@ files = [ name = "notebook" version = "7.2.1" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2055,7 +1977,6 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.4" description = "A shim layer for notebook traits and config" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2073,7 +1994,6 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" name = "numpy" version = "2.0.1" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -2128,7 +2048,6 @@ files = [ name = "overrides" version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2140,7 +2059,6 @@ files = [ name = "packaging" version = "24.1" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2152,7 +2070,6 @@ files = [ name = "pandas" version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -2190,8 +2107,8 @@ files = [ [package.dependencies] numpy = [ {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2226,7 +2143,6 @@ xml = ["lxml (>=4.9.2)"] name = "pandocfilters" version = "1.5.1" description = "Utilities for writing pandoc filters in python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2238,7 +2154,6 @@ files = [ name = "parso" version = "0.8.4" description = "A Python Parser" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2254,7 +2169,6 @@ testing = ["docopt", "pytest"] name = "pexpect" version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." -category = "main" optional = false python-versions = "*" files = [ @@ -2269,7 +2183,6 @@ ptyprocess = ">=0.5" name = "pillow" version = "10.4.0" description = "Python Imaging Library (Fork)" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2367,7 +2280,6 @@ xmp = ["defusedxml"] name = "platformdirs" version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2384,7 +2296,6 @@ type = ["mypy (>=1.8)"] name = "plotly" version = "5.23.0" description = "An open-source, interactive data visualization library for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2400,7 +2311,6 @@ tenacity = ">=6.2.0" name = "pluggy" version = "1.5.0" description = "plugin and hook calling mechanisms for python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2416,7 +2326,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pockets" version = "0.9.1" description = "A collection of helpful Python tools!" -category = "dev" optional = false python-versions = "*" files = [ @@ -2431,7 +2340,6 @@ six = ">=1.5.2" name = "prometheus-client" version = "0.20.0" description = "Python client for the Prometheus monitoring system." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2446,7 +2354,6 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.47" description = "Library for building powerful interactive command lines in Python" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -2461,7 +2368,6 @@ wcwidth = "*" name = "psutil" version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2491,7 +2397,6 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "main" optional = false python-versions = "*" files = [ @@ -2503,7 +2408,6 @@ files = [ name = "pure-eval" version = "0.2.3" description = "Safely evaluate AST nodes without side effects" -category = "main" optional = false python-versions = "*" files = [ @@ -2518,7 +2422,6 @@ tests = ["pytest"] name = "pycparser" version = "2.22" description = "C parser in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2530,7 +2433,6 @@ files = [ name = "pygments" version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2545,7 +2447,6 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pylint" version = "3.2.6" description = "python code static checker" -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -2558,8 +2459,8 @@ astroid = ">=3.2.4,<=3.3.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" @@ -2576,7 +2477,6 @@ testutils = ["gitpython (>3)"] name = "pylint-exit" version = "1.2.0" description = "Exit code handler for pylint command line utility." -category = "dev" optional = false python-versions = "*" files = [ @@ -2588,7 +2488,6 @@ files = [ name = "pynmea2" version = "1.19.0" description = "Python library for the NMEA 0183 protcol" -category = "main" optional = false python-versions = "*" files = [ @@ -2600,7 +2499,6 @@ files = [ name = "pyparsing" version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -2615,7 +2513,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pytest" version = "8.3.2" description = "pytest: simple powerful testing with Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2638,7 +2535,6 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments name = "pytest-cov" version = "5.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2657,7 +2553,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2672,7 +2567,6 @@ six = ">=1.5" name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2684,7 +2578,6 @@ files = [ name = "pytz" version = "2024.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -2696,7 +2589,6 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" -category = "main" optional = false python-versions = "*" files = [ @@ -2720,7 +2612,6 @@ files = [ name = "pywinpty" version = "2.0.13" description = "Pseudo terminal support for Windows from Python." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2736,7 +2627,6 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2797,7 +2687,6 @@ files = [ name = "pyzmq" version = "26.1.0" description = "Python bindings for 0MQ" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2919,7 +2808,6 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qtconsole" version = "5.5.2" description = "Jupyter Qt console" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2945,7 +2833,6 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2963,7 +2850,6 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "referencing" version = "0.35.1" description = "JSON Referencing + Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2979,7 +2865,6 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.32.3" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3001,7 +2886,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3016,7 +2900,6 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3028,7 +2911,6 @@ files = [ name = "rpds-py" version = "0.19.1" description = "Python bindings to Rust's persistent data structures (rpds)" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3141,7 +3023,6 @@ files = [ name = "scipy" version = "1.13.1" description = "Fundamental algorithms for scientific computing in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3184,7 +3065,6 @@ test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "po name = "send2trash" version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3201,7 +3081,6 @@ win32 = ["pywin32"] name = "setuptools" version = "72.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3212,13 +3091,12 @@ files = [ [package.extras] core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (>=1.11.0,<1.12.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3230,7 +3108,6 @@ files = [ name = "sniffio" version = "1.3.1" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3242,7 +3119,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -3254,7 +3130,6 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3264,28 +3139,27 @@ files = [ [[package]] name = "sphinx" -version = "7.3.7" +version = "7.4.7" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, - {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, + {file = "sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239"}, + {file = "sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe"}, ] [package.dependencies] alabaster = ">=0.7.14,<0.8.0" -babel = ">=2.9" -colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.22" +babel = ">=2.13" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +docutils = ">=0.20,<0.22" imagesize = ">=1.3" -importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} -Jinja2 = ">=3.0" -packaging = ">=21.0" -Pygments = ">=2.14" -requests = ">=2.25.0" -snowballstemmer = ">=2.0" +importlib-metadata = {version = ">=6.0", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.1" +packaging = ">=23.0" +Pygments = ">=2.17" +requests = ">=2.30.0" +snowballstemmer = ">=2.2" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" @@ -3296,14 +3170,13 @@ tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] +lint = ["flake8 (>=6.0)", "importlib-metadata (>=6.0)", "mypy (==1.10.1)", "pytest (>=6.0)", "ruff (==0.5.2)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-docutils (==0.21.0.20240711)", "types-requests (>=2.30.0)"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] [[package]] name = "sphinx-copybutton" version = "0.5.2" description = "Add a copy button to each of your code cells." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3322,7 +3195,6 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] name = "sphinx-rtd-theme" version = "2.0.0" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3342,7 +3214,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -3359,7 +3230,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "2.0.0" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -3376,7 +3246,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -3393,7 +3262,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -3408,7 +3276,6 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3423,7 +3290,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-napoleon" version = "0.7" description = "Sphinx \"napoleon\" extension." -category = "dev" optional = false python-versions = "*" files = [ @@ -3439,7 +3305,6 @@ six = ">=1.5.2" name = "sphinxcontrib-qthelp" version = "2.0.0" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -3456,7 +3321,6 @@ test = ["defusedxml (>=0.7.1)", "pytest"] name = "sphinxcontrib-serializinghtml" version = "2.0.0" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -3473,7 +3337,6 @@ test = ["pytest"] name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" -category = "main" optional = false python-versions = "*" files = [ @@ -3493,7 +3356,6 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "tenacity" version = "9.0.0" description = "Retry code until it succeeds" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3509,7 +3371,6 @@ test = ["pytest", "tornado (>=4.5)", "typeguard"] name = "terminado" version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3531,7 +3392,6 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] name = "tinycss2" version = "1.3.0" description = "A tiny CSS parser" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3550,7 +3410,6 @@ test = ["pytest", "ruff"] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3562,7 +3421,6 @@ files = [ name = "tomlkit" version = "0.13.0" description = "Style preserving TOML library" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3574,7 +3432,6 @@ files = [ name = "tornado" version = "6.4.1" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3595,7 +3452,6 @@ files = [ name = "tqdm" version = "4.66.5" description = "Fast, Extensible Progress Meter" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3616,7 +3472,6 @@ telegram = ["requests"] name = "traitlets" version = "5.14.3" description = "Traitlets Python configuration system" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3632,7 +3487,6 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, name = "types-python-dateutil" version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3644,7 +3498,6 @@ files = [ name = "typing-extensions" version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3656,7 +3509,6 @@ files = [ name = "tzdata" version = "2024.1" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -3668,7 +3520,6 @@ files = [ name = "unlzw3" version = "0.2.2" description = "Pure Python decompression module for .Z files compressed using Unix compress utility" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3684,7 +3535,6 @@ tests = ["pytest"] name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3699,7 +3549,6 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3717,7 +3566,6 @@ zstd = ["zstandard (>=0.18.0)"] name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" -category = "main" optional = false python-versions = "*" files = [ @@ -3729,7 +3577,6 @@ files = [ name = "webcolors" version = "24.6.0" description = "A library for working with the color formats defined by HTML and CSS." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3745,7 +3592,6 @@ tests = ["coverage[toml]"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" -category = "main" optional = false python-versions = "*" files = [ @@ -3757,7 +3603,6 @@ files = [ name = "websocket-client" version = "1.8.0" description = "WebSocket client for Python with low level API options" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3774,7 +3619,6 @@ test = ["websockets"] name = "widgetsnbextension" version = "4.0.11" description = "Jupyter interactive widgets for Jupyter Notebook" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3786,7 +3630,6 @@ files = [ name = "xarray" version = "2024.7.0" description = "N-D labeled arrays and datasets in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3811,7 +3654,6 @@ viz = ["matplotlib", "nc-time-axis", "seaborn"] name = "zipp" version = "3.19.2" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3826,4 +3668,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9, < 3.13" -content-hash = "8180866db5430e97e9720552c003e025160826cb57f8df9693ce34f163c7660d" +content-hash = "7a0c5b387ac825e1a4b42969f51713f8ce8ab42541ed0da2cbb2e710c13f96c9" diff --git a/pyproject.toml b/pyproject.toml index 7c6cef67..396c0ef6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ scipy = "^1.7.3" jupyter = "^1.0.0" notebook = "^7.0.0" ipykernel = "^6.0.3" -matplotlib = "^3.8" +matplotlib = "~3.8" plotly = "^5.8.0" kaleido = "0.2.1" requests = "^2.32.3" diff --git a/requirements.txt b/requirements.txt index 3d410579..abc2d519 100644 --- a/requirements.txt +++ b/requirements.txt @@ -60,7 +60,7 @@ kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" -matplotlib==3.9.1 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" @@ -69,7 +69,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==2.0.1 ; python_version < "3.13" and python_version >= "3.9" +numpy==2.0.1 ; python_version >= "3.9" and python_version < "3.13" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" @@ -83,7 +83,7 @@ pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.13" prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "3.13" psutil==6.0.0 ; python_version >= "3.9" and python_version < "3.13" -ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and os_name != "nt" or python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" From 845a559eab3be0fc19c2904c5c2680ea9dcd52ac Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 17:37:10 -0700 Subject: [PATCH 29/40] update docs --- build_docs.sh | 1 + docs/source/requirements.txt | 37 +- docs/source/tutorials/tutorials.rst | 19 +- poetry.lock | 728 +++++++++++++++++++++++++++- pyproject.toml | 1 + 5 files changed, 765 insertions(+), 21 deletions(-) diff --git a/build_docs.sh b/build_docs.sh index 785b3156..9a78e1c2 100755 --- a/build_docs.sh +++ b/build_docs.sh @@ -1,5 +1,6 @@ #!/bin/bash # export requirements.txt for buildings docs +poetry config warnings.export false poetry export -f requirements.txt --output ./docs/source/requirements.txt --with dev --without-hashes # export requirements.txt for Conda environment setup poetry export -f requirements.txt --output ./requirements.txt --without-hashes diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 7b878e56..d7a36232 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -11,22 +11,30 @@ attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" babel==2.15.0 ; python_version >= "3.9" and python_version < "3.13" beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.13" bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" +build==1.2.1 ; python_version >= "3.9" and python_version < "3.13" +cachecontrol[filecache]==0.14.0 ; python_version >= "3.9" and python_version < "3.13" certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" -colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") +cleo==2.1.0 ; python_version >= "3.9" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows" or os_name == "nt") comm==0.2.2 ; python_version >= "3.9" and python_version < "3.13" contourpy==1.2.1 ; python_version >= "3.9" and python_version < "3.13" coverage[toml]==7.6.1 ; python_version >= "3.9" and python_version < "3.13" +crashtest==0.4.1 ; python_version >= "3.9" and python_version < "3.13" +cryptography==43.0.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "linux" cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" +distlib==0.3.8 ; python_version >= "3.9" and python_version < "3.13" docutils==0.20.1 ; python_version >= "3.9" and python_version < "3.13" +dulwich==0.21.7 ; python_version >= "3.9" and python_version < "3.13" exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" fastjsonschema==2.20.0 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.15.4 ; python_version >= "3.9" and python_version < "3.13" fonttools==4.53.1 ; python_version >= "3.9" and python_version < "3.13" fqdn==1.5.1 ; python_version >= "3.9" and python_version < "3.13" georinex==1.16.1 ; python_version >= "3.9" and python_version < "3.13" @@ -36,15 +44,18 @@ httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.13" httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" imagesize==1.4.1 ; python_version >= "3.9" and python_version < "3.13" -importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10" +importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.12" importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.13" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" +installer==0.7.0 ; python_version >= "3.9" and python_version < "3.13" ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" ipython==8.18.1 ; python_version >= "3.9" and python_version < "3.13" ipywidgets==8.1.3 ; python_version >= "3.9" and python_version < "3.13" isoduration==20.11.0 ; python_version >= "3.9" and python_version < "3.13" isort==5.13.2 ; python_version >= "3.9" and python_version < "3.13" +jaraco-classes==3.4.0 ; python_version >= "3.9" and python_version < "3.13" jedi==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +jeepney==0.8.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "linux" jinja2==3.1.4 ; python_version >= "3.9" and python_version < "3.13" json5==0.9.25 ; python_version >= "3.9" and python_version < "3.13" jsonpointer==3.0.0 ; python_version >= "3.9" and python_version < "3.13" @@ -64,12 +75,15 @@ jupyterlab-server==2.27.3 ; python_version >= "3.9" and python_version < "3.13" jupyterlab-widgets==3.0.11 ; python_version >= "3.9" and python_version < "3.13" jupyterlab==4.2.4 ; python_version >= "3.9" and python_version < "3.13" kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" +keyring==24.3.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" +more-itertools==10.3.0 ; python_version >= "3.9" and python_version < "3.13" +msgpack==1.0.8 ; python_version >= "3.9" and python_version < "3.13" nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" nbformat==5.10.4 ; python_version >= "3.9" and python_version < "3.13" @@ -85,16 +99,20 @@ packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" pandocfilters==1.5.1 ; python_version >= "3.9" and python_version < "3.13" parso==0.8.4 ; python_version >= "3.9" and python_version < "3.13" -pexpect==4.9.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform != "win32" +pexpect==4.9.0 ; python_version >= "3.9" and python_version < "3.13" pillow==10.4.0 ; python_version >= "3.9" and python_version < "3.13" +pkginfo==1.11.1 ; python_version >= "3.9" and python_version < "3.13" platformdirs==4.2.2 ; python_version >= "3.9" and python_version < "3.13" plotly==5.23.0 ; python_version >= "3.9" and python_version < "3.13" pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.13" pockets==0.9.1 ; python_version >= "3.9" and python_version < "3.13" +poetry-core==1.9.0 ; python_version >= "3.9" and python_version < "3.13" +poetry-plugin-export==1.8.0 ; python_version >= "3.9" and python_version < "3.13" +poetry==1.8.3 ; python_version >= "3.9" and python_version < "3.13" prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "3.13" psutil==6.0.0 ; python_version >= "3.9" and python_version < "3.13" -ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" and (os_name != "nt" or sys_platform != "win32") +ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "3.13" pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" @@ -102,25 +120,31 @@ pylint-exit==1.2.0 ; python_version >= "3.9" and python_version < "3.13" pylint==3.2.6 ; python_version >= "3.9" and python_version < "3.13" pynmea2==1.19.0 ; python_version >= "3.9" and python_version < "3.13" pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "3.13" +pyproject-hooks==1.1.0 ; python_version >= "3.9" and python_version < "3.13" pytest-cov==5.0.0 ; python_version >= "3.9" and python_version < "3.13" pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" pytz==2024.1 ; python_version >= "3.9" and python_version < "3.13" +pywin32-ctypes==0.2.2 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.13" pywinpty==2.0.13 ; python_version >= "3.9" and python_version < "3.13" and os_name == "nt" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" pyzmq==26.1.0 ; python_version >= "3.9" and python_version < "3.13" qtconsole==5.5.2 ; python_version >= "3.9" and python_version < "3.13" qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.13" +rapidfuzz==3.9.5 ; python_version >= "3.9" and python_version < "3.13" referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" +requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "3.13" requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.13" rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.13" rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.13" +secretstorage==3.3.3 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "linux" send2trash==1.8.3 ; python_version >= "3.9" and python_version < "3.13" setuptools==72.1.0 ; python_version >= "3.9" and python_version < "3.13" +shellingham==1.5.4 ; python_version >= "3.9" and python_version < "3.13" six==1.16.0 ; python_version >= "3.9" and python_version < "3.13" sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" @@ -145,16 +169,19 @@ tomlkit==0.13.0 ; python_version >= "3.9" and python_version < "3.13" tornado==6.4.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.5 ; python_version >= "3.9" and python_version < "3.13" traitlets==5.14.3 ; python_version >= "3.9" and python_version < "3.13" +trove-classifiers==2024.7.2 ; python_version >= "3.9" and python_version < "3.13" types-python-dateutil==2.9.0.20240316 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "3.11" tzdata==2024.1 ; python_version >= "3.9" and python_version < "3.13" unlzw3==0.2.2 ; python_version >= "3.9" and python_version < "3.13" uri-template==1.3.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.2 ; python_version >= "3.9" and python_version < "3.13" +virtualenv==20.26.3 ; python_version >= "3.9" and python_version < "3.13" wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.13" webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" -zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" +xattr==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "darwin" +zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.12" diff --git a/docs/source/tutorials/tutorials.rst b/docs/source/tutorials/tutorials.rst index de687a38..547938ff 100644 --- a/docs/source/tutorials/tutorials.rst +++ b/docs/source/tutorials/tutorials.rst @@ -39,24 +39,12 @@ class and its corresponding operations. navdata/tutorials_navdata_notebook navdata/tutorials_operations_notebook -Creating a New Parser ---------------------- - -The parsers tutorials also contain a tutorial on how to create a new -parser that inherits from :code:`NavData` to handle new measurement types -and/or files. - -.. toctree:: - :maxdepth: 2 - - parsers/tutorials_new_parsers_notebook - - Parser Tutorials ---------------- -These tutorials explain existing parsers and how to create a new parser -if necessary. +These tutorials explain existing parsers and how to create a new +parser that inherits from :code:`NavData` to handle new measurement types +and/or files. .. toctree:: :maxdepth: 2 @@ -69,6 +57,7 @@ if necessary. parsers/tutorials_rinex_obs_notebook parsers/tutorials_smartloc_notebook parsers/tutorials_sp3_notebook + parsers/tutorials_new_parsers_notebook Algorithm Tutorials ------------------- diff --git a/poetry.lock b/poetry.lock index 07514773..f3aa0dd9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -238,6 +238,52 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.3)"] +[[package]] +name = "build" +version = "1.2.1" +description = "A simple, correct Python build frontend" +optional = false +python-versions = ">=3.8" +files = [ + {file = "build-1.2.1-py3-none-any.whl", hash = "sha256:75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4"}, + {file = "build-1.2.1.tar.gz", hash = "sha256:526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "os_name == \"nt\""} +importlib-metadata = {version = ">=4.6", markers = "python_full_version < \"3.10.2\""} +packaging = ">=19.1" +pyproject_hooks = "*" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["furo (>=2023.08.17)", "sphinx (>=7.0,<8.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)", "sphinx-issues (>=3.0.0)"] +test = ["build[uv,virtualenv]", "filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "setuptools (>=56.0.0)", "setuptools (>=67.8.0)", "wheel (>=0.36.0)"] +typing = ["build[uv]", "importlib-metadata (>=5.1)", "mypy (>=1.9.0,<1.10.0)", "tomli", "typing-extensions (>=3.7.4.3)"] +uv = ["uv (>=0.1.18)"] +virtualenv = ["virtualenv (>=20.0.35)"] + +[[package]] +name = "cachecontrol" +version = "0.14.0" +description = "httplib2 caching for requests" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachecontrol-0.14.0-py3-none-any.whl", hash = "sha256:f5bf3f0620c38db2e5122c0726bdebb0d16869de966ea6a2befe92470b740ea0"}, + {file = "cachecontrol-0.14.0.tar.gz", hash = "sha256:7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938"}, +] + +[package.dependencies] +filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""} +msgpack = ">=0.5.2,<2.0.0" +requests = ">=2.16.0" + +[package.extras] +dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "furo", "mypy", "pytest", "pytest-cov", "sphinx", "sphinx-copybutton", "tox", "types-redis", "types-requests"] +filecache = ["filelock (>=3.8.0)"] +redis = ["redis (>=2.10.5)"] + [[package]] name = "certifi" version = "2024.7.4" @@ -412,6 +458,21 @@ files = [ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] +[[package]] +name = "cleo" +version = "2.1.0" +description = "Cleo allows you to create beautiful and testable command-line interfaces." +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "cleo-2.1.0-py3-none-any.whl", hash = "sha256:4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e"}, + {file = "cleo-2.1.0.tar.gz", hash = "sha256:0b2c880b5d13660a7ea651001fb4acb527696c01f15c9ee650f377aa543fd523"}, +] + +[package.dependencies] +crashtest = ">=0.4.1,<0.5.0" +rapidfuzz = ">=3.0.0,<4.0.0" + [[package]] name = "colorama" version = "0.4.6" @@ -590,6 +651,66 @@ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.1 [package.extras] toml = ["tomli"] +[[package]] +name = "crashtest" +version = "0.4.1" +description = "Manage Python errors with ease" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"}, + {file = "crashtest-0.4.1.tar.gz", hash = "sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce"}, +] + +[[package]] +name = "cryptography" +version = "43.0.0" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, + {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, + {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, + {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, + {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, + {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, + {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + [[package]] name = "cycler" version = "0.12.1" @@ -653,6 +774,17 @@ files = [ graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + [[package]] name = "docutils" version = "0.20.1" @@ -664,6 +796,93 @@ files = [ {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, ] +[[package]] +name = "dulwich" +version = "0.21.7" +description = "Python Git Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d4c0110798099bb7d36a110090f2688050703065448895c4f53ade808d889dd3"}, + {file = "dulwich-0.21.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2bc12697f0918bee324c18836053644035362bb3983dc1b210318f2fed1d7132"}, + {file = "dulwich-0.21.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:471305af74790827fcbafe330fc2e8bdcee4fb56ca1177c8c481b1c8f806c4a4"}, + {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54c9d0e845be26f65f954dff13a1cd3f2b9739820c19064257b8fd7435ab263"}, + {file = "dulwich-0.21.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12d61334a575474e707614f2e93d6ed4cdae9eb47214f9277076d9e5615171d3"}, + {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e274cebaf345f0b1e3b70197f2651de92b652386b68020cfd3bf61bc30f6eaaa"}, + {file = "dulwich-0.21.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:817822f970e196e757ae01281ecbf21369383285b9f4a83496312204cf889b8c"}, + {file = "dulwich-0.21.7-cp310-cp310-win32.whl", hash = "sha256:7836da3f4110ce684dcd53489015fb7fa94ed33c5276e3318b8b1cbcb5b71e08"}, + {file = "dulwich-0.21.7-cp310-cp310-win_amd64.whl", hash = "sha256:4a043b90958cec866b4edc6aef5fe3c2c96a664d0b357e1682a46f6c477273c4"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ce8db196e79c1f381469410d26fb1d8b89c6b87a4e7f00ff418c22a35121405c"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:62bfb26bdce869cd40be443dfd93143caea7089b165d2dcc33de40f6ac9d812a"}, + {file = "dulwich-0.21.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c01a735b9a171dcb634a97a3cec1b174cfbfa8e840156870384b633da0460f18"}, + {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa4d14767cf7a49c9231c2e52cb2a3e90d0c83f843eb6a2ca2b5d81d254cf6b9"}, + {file = "dulwich-0.21.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bca4b86e96d6ef18c5bc39828ea349efb5be2f9b1f6ac9863f90589bac1084d"}, + {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a7b5624b02ef808cdc62dabd47eb10cd4ac15e8ac6df9e2e88b6ac6b40133673"}, + {file = "dulwich-0.21.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c3a539b4696a42fbdb7412cb7b66a4d4d332761299d3613d90a642923c7560e1"}, + {file = "dulwich-0.21.7-cp311-cp311-win32.whl", hash = "sha256:675a612ce913081beb0f37b286891e795d905691dfccfb9bf73721dca6757cde"}, + {file = "dulwich-0.21.7-cp311-cp311-win_amd64.whl", hash = "sha256:460ba74bdb19f8d498786ae7776745875059b1178066208c0fd509792d7f7bfc"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4c51058ec4c0b45dc5189225b9e0c671b96ca9713c1daf71d622c13b0ab07681"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4bc4c5366eaf26dda3fdffe160a3b515666ed27c2419f1d483da285ac1411de0"}, + {file = "dulwich-0.21.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a0650ec77d89cb947e3e4bbd4841c96f74e52b4650830112c3057a8ca891dc2f"}, + {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f18f0a311fb7734b033a3101292b932158cade54b74d1c44db519e42825e5a2"}, + {file = "dulwich-0.21.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c589468e5c0cd84e97eb7ec209ab005a2cb69399e8c5861c3edfe38989ac3a8"}, + {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d62446797163317a397a10080c6397ffaaca51a7804c0120b334f8165736c56a"}, + {file = "dulwich-0.21.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e84cc606b1f581733df4350ca4070e6a8b30be3662bbb81a590b177d0c996c91"}, + {file = "dulwich-0.21.7-cp312-cp312-win32.whl", hash = "sha256:c3d1685f320907a52c40fd5890627945c51f3a5fa4bcfe10edb24fec79caadec"}, + {file = "dulwich-0.21.7-cp312-cp312-win_amd64.whl", hash = "sha256:6bd69921fdd813b7469a3c77bc75c1783cc1d8d72ab15a406598e5a3ba1a1503"}, + {file = "dulwich-0.21.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d8ab29c660125db52106775caa1f8f7f77a69ed1fe8bc4b42bdf115731a25bf"}, + {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0d2e4485b98695bf95350ce9d38b1bb0aaac2c34ad00a0df789aa33c934469b"}, + {file = "dulwich-0.21.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e138d516baa6b5bafbe8f030eccc544d0d486d6819b82387fc0e285e62ef5261"}, + {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f34bf9b9fa9308376263fd9ac43143c7c09da9bc75037bb75c6c2423a151b92c"}, + {file = "dulwich-0.21.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2e2c66888207b71cd1daa2acb06d3984a6bc13787b837397a64117aa9fc5936a"}, + {file = "dulwich-0.21.7-cp37-cp37m-win32.whl", hash = "sha256:10893105c6566fc95bc2a67b61df7cc1e8f9126d02a1df6a8b2b82eb59db8ab9"}, + {file = "dulwich-0.21.7-cp37-cp37m-win_amd64.whl", hash = "sha256:460b3849d5c3d3818a80743b4f7a0094c893c559f678e56a02fff570b49a644a"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:74700e4c7d532877355743336c36f51b414d01e92ba7d304c4f8d9a5946dbc81"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c92e72c43c9e9e936b01a57167e0ea77d3fd2d82416edf9489faa87278a1cdf7"}, + {file = "dulwich-0.21.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d097e963eb6b9fa53266146471531ad9c6765bf390849230311514546ed64db2"}, + {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:808e8b9cc0aa9ac74870b49db4f9f39a52fb61694573f84b9c0613c928d4caf8"}, + {file = "dulwich-0.21.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1957b65f96e36c301e419d7adaadcff47647c30eb072468901bb683b1000bc5"}, + {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4b09bc3a64fb70132ec14326ecbe6e0555381108caff3496898962c4136a48c6"}, + {file = "dulwich-0.21.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5882e70b74ac3c736a42d3fdd4f5f2e6570637f59ad5d3e684760290b58f041"}, + {file = "dulwich-0.21.7-cp38-cp38-win32.whl", hash = "sha256:29bb5c1d70eba155ded41ed8a62be2f72edbb3c77b08f65b89c03976292f6d1b"}, + {file = "dulwich-0.21.7-cp38-cp38-win_amd64.whl", hash = "sha256:25c3ab8fb2e201ad2031ddd32e4c68b7c03cb34b24a5ff477b7a7dcef86372f5"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8929c37986c83deb4eb500c766ee28b6670285b512402647ee02a857320e377c"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cc1e11be527ac06316539b57a7688bcb1b6a3e53933bc2f844397bc50734e9ae"}, + {file = "dulwich-0.21.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0fc3078a1ba04c588fabb0969d3530efd5cd1ce2cf248eefb6baf7cbc15fc285"}, + {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dcbd29ba30ba2c5bfbab07a61a5f20095541d5ac66d813056c122244df4ac0"}, + {file = "dulwich-0.21.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8869fc8ec3dda743e03d06d698ad489b3705775fe62825e00fa95aa158097fc0"}, + {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d96ca5e0dde49376fbcb44f10eddb6c30284a87bd03bb577c59bb0a1f63903fa"}, + {file = "dulwich-0.21.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e0064363bd5e814359657ae32517fa8001e8573d9d040bd997908d488ab886ed"}, + {file = "dulwich-0.21.7-cp39-cp39-win32.whl", hash = "sha256:869eb7be48243e695673b07905d18b73d1054a85e1f6e298fe63ba2843bb2ca1"}, + {file = "dulwich-0.21.7-cp39-cp39-win_amd64.whl", hash = "sha256:404b8edeb3c3a86c47c0a498699fc064c93fa1f8bab2ffe919e8ab03eafaaad3"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e598d743c6c0548ebcd2baf94aa9c8bfacb787ea671eeeb5828cfbd7d56b552f"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4a2d76c96426e791556836ef43542b639def81be4f1d6d4322cd886c115eae1"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6c88acb60a1f4d31bd6d13bfba465853b3df940ee4a0f2a3d6c7a0778c705b7"}, + {file = "dulwich-0.21.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ecd315847dea406a4decfa39d388a2521e4e31acde3bd9c2609c989e817c6d62"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d05d3c781bc74e2c2a2a8f4e4e2ed693540fbe88e6ac36df81deac574a6dad99"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6de6f8de4a453fdbae8062a6faa652255d22a3d8bce0cd6d2d6701305c75f2b3"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e25953c7acbbe4e19650d0225af1c0c0e6882f8bddd2056f75c1cc2b109b88ad"}, + {file = "dulwich-0.21.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4637cbd8ed1012f67e1068aaed19fcc8b649bcf3e9e26649826a303298c89b9d"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:858842b30ad6486aacaa607d60bab9c9a29e7c59dc2d9cb77ae5a94053878c08"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739b191f61e1c4ce18ac7d520e7a7cbda00e182c3489552408237200ce8411ad"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:274c18ec3599a92a9b67abaf110e4f181a4f779ee1aaab9e23a72e89d71b2bd9"}, + {file = "dulwich-0.21.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2590e9b431efa94fc356ae33b38f5e64f1834ec3a94a6ac3a64283b206d07aa3"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed60d1f610ef6437586f7768254c2a93820ccbd4cfdac7d182cf2d6e615969bb"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8278835e168dd097089f9e53088c7a69c6ca0841aef580d9603eafe9aea8c358"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffc27fb063f740712e02b4d2f826aee8bbed737ed799962fef625e2ce56e2d29"}, + {file = "dulwich-0.21.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61e3451bd3d3844f2dca53f131982553be4d1b1e1ebd9db701843dd76c4dba31"}, + {file = "dulwich-0.21.7.tar.gz", hash = "sha256:a9e9c66833cea580c3ac12927e4b9711985d76afca98da971405d414de60e968"}, +] + +[package.dependencies] +urllib3 = ">=1.25" + +[package.extras] +fastimport = ["fastimport"] +https = ["urllib3 (>=1.24.1)"] +paramiko = ["paramiko"] +pgp = ["gpg"] + [[package]] name = "exceptiongroup" version = "1.2.2" @@ -706,6 +925,22 @@ files = [ [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +[[package]] +name = "filelock" +version = "3.15.4" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] +typing = ["typing-extensions (>=4.8)"] + [[package]] name = "fonttools" version = "4.53.1" @@ -965,6 +1200,17 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "installer" +version = "0.7.0" +description = "A library for installing Python wheels." +optional = false +python-versions = ">=3.7" +files = [ + {file = "installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53"}, + {file = "installer-0.7.0.tar.gz", hash = "sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"}, +] + [[package]] name = "ipykernel" version = "6.29.5" @@ -1084,6 +1330,24 @@ files = [ [package.extras] colors = ["colorama (>=0.4.6)"] +[[package]] +name = "jaraco-classes" +version = "3.4.0" +description = "Utility functions for Python class constructs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790"}, + {file = "jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + [[package]] name = "jedi" version = "0.19.1" @@ -1103,6 +1367,21 @@ docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alab qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +[[package]] +name = "jeepney" +version = "0.8.0" +description = "Low-level, pure Python DBus protocol wrapper." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, + {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, +] + +[package.extras] +test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"] +trio = ["async_generator", "trio"] + [[package]] name = "jinja2" version = "3.1.4" @@ -1465,6 +1744,29 @@ files = [ {file = "kaleido-0.2.1-py2.py3-none-win_amd64.whl", hash = "sha256:4670985f28913c2d063c5734d125ecc28e40810141bdb0a46f15b76c1d45f23c"}, ] +[[package]] +name = "keyring" +version = "24.3.1" +description = "Store and access your passwords safely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "keyring-24.3.1-py3-none-any.whl", hash = "sha256:df38a4d7419a6a60fea5cef1e45a948a3e8430dd12ad88b0f423c5c143906218"}, + {file = "keyring-24.3.1.tar.gz", hash = "sha256:c3327b6ffafc0e8befbdb597cacdb4928ffe5c1212f7645f186e6d9957a898db"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} +"jaraco.classes" = "*" +jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} +pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} +SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} + +[package.extras] +completion = ["shtab (>=1.1.0)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + [[package]] name = "kiwisolver" version = "1.4.5" @@ -1732,6 +2034,82 @@ files = [ {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, ] +[[package]] +name = "more-itertools" +version = "10.3.0" +description = "More routines for operating on iterables, beyond itertools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "more-itertools-10.3.0.tar.gz", hash = "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463"}, + {file = "more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"}, +] + +[[package]] +name = "msgpack" +version = "1.0.8" +description = "MessagePack serializer" +optional = false +python-versions = ">=3.8" +files = [ + {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, + {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, + {file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653"}, + {file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693"}, + {file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce"}, + {file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305"}, + {file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543"}, + {file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c"}, + {file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a"}, + {file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c"}, + {file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, + {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, + {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, + {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, +] + [[package]] name = "nbclient" version = "0.10.0" @@ -2276,6 +2654,20 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa typing = ["typing-extensions"] xmp = ["defusedxml"] +[[package]] +name = "pkginfo" +version = "1.11.1" +description = "Query metadata from sdists / bdists / installed packages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pkginfo-1.11.1-py3-none-any.whl", hash = "sha256:bfa76a714fdfc18a045fcd684dbfc3816b603d9d075febef17cb6582bea29573"}, + {file = "pkginfo-1.11.1.tar.gz", hash = "sha256:2e0dca1cf4c8e39644eed32408ea9966ee15e0d324c62ba899a393b3c6b467aa"}, +] + +[package.extras] +testing = ["pytest", "pytest-cov", "wheel"] + [[package]] name = "platformdirs" version = "4.2.2" @@ -2336,6 +2728,69 @@ files = [ [package.dependencies] six = ">=1.5.2" +[[package]] +name = "poetry" +version = "1.8.3" +description = "Python dependency management and packaging made easy." +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "poetry-1.8.3-py3-none-any.whl", hash = "sha256:88191c69b08d06f9db671b793d68f40048e8904c0718404b63dcc2b5aec62d13"}, + {file = "poetry-1.8.3.tar.gz", hash = "sha256:67f4eb68288eab41e841cc71a00d26cf6bdda9533022d0189a145a34d0a35f48"}, +] + +[package.dependencies] +build = ">=1.0.3,<2.0.0" +cachecontrol = {version = ">=0.14.0,<0.15.0", extras = ["filecache"]} +cleo = ">=2.1.0,<3.0.0" +crashtest = ">=0.4.1,<0.5.0" +dulwich = ">=0.21.2,<0.22.0" +fastjsonschema = ">=2.18.0,<3.0.0" +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} +installer = ">=0.7.0,<0.8.0" +keyring = ">=24.0.0,<25.0.0" +packaging = ">=23.1" +pexpect = ">=4.7.0,<5.0.0" +pkginfo = ">=1.10,<2.0" +platformdirs = ">=3.0.0,<5" +poetry-core = "1.9.0" +poetry-plugin-export = ">=1.6.0,<2.0.0" +pyproject-hooks = ">=1.0.0,<2.0.0" +requests = ">=2.26,<3.0" +requests-toolbelt = ">=1.0.0,<2.0.0" +shellingham = ">=1.5,<2.0" +tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.11.4,<1.0.0" +trove-classifiers = ">=2022.5.19" +virtualenv = ">=20.23.0,<21.0.0" +xattr = {version = ">=1.0.0,<2.0.0", markers = "sys_platform == \"darwin\""} + +[[package]] +name = "poetry-core" +version = "1.9.0" +description = "Poetry PEP 517 Build Backend" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "poetry_core-1.9.0-py3-none-any.whl", hash = "sha256:4e0c9c6ad8cf89956f03b308736d84ea6ddb44089d16f2adc94050108ec1f5a1"}, + {file = "poetry_core-1.9.0.tar.gz", hash = "sha256:fa7a4001eae8aa572ee84f35feb510b321bd652e5cf9293249d62853e1f935a2"}, +] + +[[package]] +name = "poetry-plugin-export" +version = "1.8.0" +description = "Poetry plugin to export the dependencies to various formats" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "poetry_plugin_export-1.8.0-py3-none-any.whl", hash = "sha256:adbe232cfa0cc04991ea3680c865cf748bff27593b9abcb1f35fb50ed7ba2c22"}, + {file = "poetry_plugin_export-1.8.0.tar.gz", hash = "sha256:1fa6168a85d59395d835ca564bc19862a7c76061e60c3e7dfaec70d50937fc61"}, +] + +[package.dependencies] +poetry = ">=1.8.0,<3.0.0" +poetry-core = ">=1.7.0,<3.0.0" + [[package]] name = "prometheus-client" version = "0.20.0" @@ -2509,6 +2964,17 @@ files = [ [package.extras] diagrams = ["jinja2", "railroad-diagrams"] +[[package]] +name = "pyproject-hooks" +version = "1.1.0" +description = "Wrappers to call pyproject.toml-based build backend hooks." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyproject_hooks-1.1.0-py3-none-any.whl", hash = "sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2"}, + {file = "pyproject_hooks-1.1.0.tar.gz", hash = "sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965"}, +] + [[package]] name = "pytest" version = "8.3.2" @@ -2608,6 +3074,17 @@ files = [ {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, ] +[[package]] +name = "pywin32-ctypes" +version = "0.2.2" +description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, + {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, +] + [[package]] name = "pywinpty" version = "2.0.13" @@ -2846,6 +3323,111 @@ packaging = "*" [package.extras] test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] +[[package]] +name = "rapidfuzz" +version = "3.9.5" +description = "rapid fuzzy string matching" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rapidfuzz-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7659058863d84a2c36c5a76c28bc8713d33eab03e677e67260d9e1cca43fc3bb"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:802a018776bd3cb7c5d23ba38ebbb1663a9f742be1d58e73b62d8c7cace6e607"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da71e8fdb0d1a21f4b58b2c84bcbc2b89a472c073c5f7bdb9339f4cb3122c0e3"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9433cb12731167b358fbcff9828d2294429986a03222031f6d14308eb643c77"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e33e1d185206730b916b3e7d9bce1941c65b2a1488cdd0457ae21be385a7912"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:758719e9613c47a274768f1926460955223fe0a03e7eda264f2b78b1b97a4743"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7981cc6240d01d4480795d758ea2ee748257771f68127d630045e58fe1b5545a"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b6cdca86120c3f9aa069f8d4e1c5422e92f833d705d719a2ba7082412f4c933b"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ffa533acb1a9dcb6e26c4467fdc1347995fb168ec9f794b97545f6b72dee733c"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:13eeaeb0d5fe00fa99336f73fb5ab65c46109c7121cf87659b9601908b8b6178"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d7b1922b1403ccb3583218e8cd931b08e04c5442ca03dbaf6ea4fcf574ee2b24"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b0189f691cea4dc9fe074ea6b97da30a91d0882fa69724b4b34b51d2c1983473"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-win32.whl", hash = "sha256:72e466e5de12a327a09ed6d0116f024759b5146b335645c32241da84134a7f34"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:345011cfcafaa3674c46673baad67d2394eb58285530d8333e65c3c9a143b4f4"}, + {file = "rapidfuzz-3.9.5-cp310-cp310-win_arm64.whl", hash = "sha256:5dc19c8222475e4f7f528b94d2fa28e7979355c5cf7c6e73902d2abb2be96522"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c741972d64031535cfd76d89cf47259e590e822353be57ec2f5d56758c98296"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a7452d079800cf70a7314f73044f03cbcbd90a651d9dec39443d2a8a2b63ab53"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f06f163a0341bad162e972590b73e17f9cea2ed8ee27b193875ccbc3dd6eca2f"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:529e2cf441746bd492f6c36a38bf9fa6a418df95b9c003f8e92a55d8a979bd9c"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9811a741aa1350ad36689d675ded8b34e423e68b396bd30bff751a9c582f586e"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e36c4640a789b8c922b69a548968939d1c0433fa7aac83cb08e1334d4e5d7de"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53fb2f32f14c921d2f673c5b7cd58d4cc626c574a28c0791f283880d8e57022c"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:031806eb035a6f09f4ff23b9d971d50b30b5e93aa3ee620c920bee1dc32827e7"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f6dbe1df0b9334e3cf07445d810c81734ae23d137b5efc69e1d676ff55691351"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:24345826b50aafcea26e2e4be5c103d96fe9d7fc549ac9190641300290958f3b"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bfd3b66ee1f0ebb40c672a7a7e5bda00fb763fa9bca082058084175151f8e685"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a6f1df5b0e602e94199cccb5e241bbc2319644003e34f077741ebf48aea7ed1a"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-win32.whl", hash = "sha256:f080d6709f51a8335e73826b96af9b4e3657631eca6c69e1ac501868dcc84b7f"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:bf9ed6988da6a2c1f8df367cb5d6be26a3d8543646c8eba79741ac9e764fbc59"}, + {file = "rapidfuzz-3.9.5-cp311-cp311-win_arm64.whl", hash = "sha256:599714790dfac0a23a473134e6677d0a103690a4e21ba189cfc826e322cdc8d5"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9729852038fb2de096e249899f8a9bee90fb1f92e10b6ccc539d5bb798c703bc"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9dc39435476fb3b3b3c24ab2c08c726056b2b487aa7ee450aee698b808c808ac"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6ceea632b0eb97dac54411c29feb190054e91fd0571f585b56e4a9159c55ab0"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cadd66e6ef9901909dc1b11db91048f1bf4613ba7d773386f922e28b1e1df4da"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63e34fb3586431589a5e1cd7fc61c6f057576c6c6804c1c673bac3de0516dee7"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:181073256faec68e6b8ab3329a36cfa1360f7906aa70d9aee4a39cb70889f73f"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8419c18bbbd67058ca1312f35acda2e4e4592650f105cfd166569a2ebccd01f1"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:191d1057cca56641f7b919fe712cb7e48cd226342e097a78136127f8bde32caa"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fe5a11eefd0ae90d32d9ff706a894498b4efb4b0c263ad9d1e6401050863504d"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b024d9d69bb83e125adee4162991f2764f16acc3fb1ed0f0fc1ad5aeb7e394"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d5a34b8388ae99bdbd5a3646f45ac318f4c870105bdbe42a2f4c85e5b347761"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0e09abc0d397019bba61c8e6dfe2ec863d4dfb1762f51c9197ce0af5d5fd9adb"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-win32.whl", hash = "sha256:e3c4be3057472c79ba6f4eab35daa9f12908cb697c472d05fbbd47949a87aec6"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:0d9fdb74df87018dd4146f3d00df9fca2c27f060936a9e8d3015e7bfb9cb69e4"}, + {file = "rapidfuzz-3.9.5-cp312-cp312-win_arm64.whl", hash = "sha256:491d3d425b5fe3f61f3b9a70abfd498ce9139d94956db7a8551e537e017c0e57"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:518dec750a30f115ba1299ef2547cf468a69f310581a030c8a875257de747c5f"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:252dc3d1c3d613b8db1b59d13381937e420c99f8a351ffa0e78c2f54746e107f"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd17688b75b6fa983e8586cad30f36eb9736b860946cc8b633b9442c9481831"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8032492021b0aa55a623d6f6e739a5d4aaabc32af379c2a5656bf1e9e178bf1"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73362eb1c3d02f32e4c7f0d77eb284e9a13f278cff224f71e8f60e2aff5b6a5d"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a42d1f7b8988f50013e703ed27b5e216ef8a725b2f4ac53754ad0476020b26f4"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4f2e985172bb76c9179e11fb67d9c9ecbee4933740eca2977797094df02498d"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e943c5cbd10e15369be1f371ef303cb413c1008f64d93bd13762ea06ca84d59"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:0d34b0e8e29f80cb2ac8afe8fb7b01a542b136ffbf7e2b9983d11bce49398f68"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:62b8f9f58e9dffaa86fef84db2705457a58e191a962124f2b815026ba79d9aba"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:ebf682bdb0f01b6b1f9a9ffe918aa3ac84fbdadb998ffbfcd5f9b12bd280170f"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3ed0c17e5b6fdd2ac3230bdefa908579971377c36aa4a2f132700fa8145040db"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-win32.whl", hash = "sha256:ac460d89b9759e37eef23fed05184179654882a241f6b2363df194f8940cc55f"}, + {file = "rapidfuzz-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:cf9aceb4227fd09f9a20e505f78487b2089d6420ce232d288522ea0a78b986b9"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:14587df847d0d50bd10cde0a198b5d64eedb7484c72b825f5c2ead6e6ff16eee"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fd94d952299ec73ea63a0fa4b699a2750785b6bb82aa56fd886d9023b86f90ab"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:733bf3d7876bf6d8167e6436f99d6ea16a218ec2c8eb9da6048f20b9cc8733e2"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb28f2b7173ed3678b4630b0c8b21503087d1cd082bae200dc2519ca38b26686"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a4c8a2c5ae4b133fec6b5db1af9a4126ffa6eca18a558fe5b6ab8e330d3d78"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5feb75e905281e5c669e21c98d594acc3b222a8694d9342f17df988766d83748"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d047b01637a31d9bf776b66438f574fd1db856ad14cf296c1f48bb6bef8a5aff"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d9e0a656274ac75ec24499a06c0bc5eee67bcd8276c6061da7c05d549f1b1a61"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:16c982dd3cdd33cf4aac91027a263a081d1a8050dc33a27470367a391a8d1576"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:9a0c878d0980508e90e973a9cbfb591acc370085f2301c6aacadbd8362d52a36"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1d9bcfec5efd55b6268328cccd12956d833582d8da6385231a5c6c6201a1156a"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8171fc6e4645e636161a9ef5b44b20605adbefe23cd990b68d72cae0b9c12509"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-win32.whl", hash = "sha256:35088e759b083398ab3c4154517476e116653b7403604677af9a894179f1042f"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:6d8cc7e6e5c6fbcacdfe3cf7a86b60dcaf216216d86e6879ff52d488e5b11e27"}, + {file = "rapidfuzz-3.9.5-cp39-cp39-win_arm64.whl", hash = "sha256:506547889f18db0acca787ffb9f287757cbfe9f0fadddd4e07c64ce0bd924e13"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f4e0122603af2119579e9f94e172c6e460860fdcdb713164332c1951c13df999"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:e46cd486289d1d8e3dab779c725f5dde77b286185d32e7b874bfc3d161e3a927"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e2c0c8bbe4f4525009e3ad9b94a39cdff5d6378233e754d0b13c29cdfaa75fc"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb47513a17c935f6ee606dcae0ea9d20a3fb0fe9ca597758472ea08be62dc54"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:976ed1105a76935b6a4d2bbc7d577be1b97b43997bcec2f29a0ab48ff6f5d6b1"}, + {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9cf2028edb9ccd21d1d5aaacef2fe3e14bee4343df1c2c0f7373ef6e81013bef"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:926701c8e61319ee2e4888619143f58ddcc0e3e886668269b8e053f2d68c1e92"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:99eaa8dd8a44664813e0bef014775993ef75a134a863bc54cd855a60622203fd"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7508ef727ef4891141dd3ac7a39a2327384ece070521ac9c58f06c27d57c72d5"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f33d05db5bba1d076446c51347a6d93ff24d8f9d01b0b8b15ca8ec8b1ef382"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7252666b85c931d51a59d5308bb6827a67434917ef510747d3ce7e88ec17e7f2"}, + {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d26f7299e2872d18fb7df1bc043e53aa94fc5a4a2a6a9537ad8707579fcb1668"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2b17ecc17322b659962234799e90054e420911b8ca510a7869c2f4419f9f3ecb"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f3e037b9ec621dec0157d81566e7d47a91405e379335cf8f4ed3c20d61db91d8"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c4d1ba2647c8d2a82313c4dde332de750c936b94f016308339e762c2e5e53d"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:876e663b11d9067e1096ea76a2de87227c7b513aff2b60667b20417da74183e4"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adee55488490375c1604b878fbc1eb1a51fe5e6f5bd05047df2f8c6505a48728"}, + {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:abb1ac683671000bd4ec215a494aba687d75a198db72188408154a19ea313ff4"}, + {file = "rapidfuzz-3.9.5.tar.gz", hash = "sha256:257f2406a671371bafd99a2a2c57f991783446bc2176b93a83d1d833e35d36df"}, +] + +[package.extras] +full = ["numpy"] + [[package]] name = "referencing" version = "0.35.1" @@ -2882,6 +3464,20 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +description = "A utility belt for advanced users of python-requests" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, + {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, +] + +[package.dependencies] +requests = ">=2.0.1,<3.0.0" + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -3061,6 +3657,21 @@ dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pyde doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +[[package]] +name = "secretstorage" +version = "3.3.3" +description = "Python bindings to FreeDesktop.org Secret Service API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, + {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, +] + +[package.dependencies] +cryptography = ">=2.0" +jeepney = ">=0.6" + [[package]] name = "send2trash" version = "1.8.3" @@ -3093,6 +3704,17 @@ core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.te doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + [[package]] name = "six" version = "1.16.0" @@ -3483,6 +4105,17 @@ files = [ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] +[[package]] +name = "trove-classifiers" +version = "2024.7.2" +description = "Canonical source for classifiers on PyPI (pypi.org)." +optional = false +python-versions = "*" +files = [ + {file = "trove_classifiers-2024.7.2-py3-none-any.whl", hash = "sha256:ccc57a33717644df4daca018e7ec3ef57a835c48e96a1e71fc07eb7edac67af6"}, + {file = "trove_classifiers-2024.7.2.tar.gz", hash = "sha256:8328f2ac2ce3fd773cbb37c765a0ed7a83f89dc564c7d452f039b69249d0ac35"}, +] + [[package]] name = "types-python-dateutil" version = "2.9.0.20240316" @@ -3562,6 +4195,26 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "virtualenv" +version = "20.26.3" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, + {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + [[package]] name = "wcwidth" version = "0.2.13" @@ -3650,6 +4303,79 @@ io = ["cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "scipy", "zar parallel = ["dask[complete]"] viz = ["matplotlib", "nc-time-axis", "seaborn"] +[[package]] +name = "xattr" +version = "1.1.0" +description = "Python wrapper for extended filesystem attributes" +optional = false +python-versions = ">=3.8" +files = [ + {file = "xattr-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef2fa0f85458736178fd3dcfeb09c3cf423f0843313e25391db2cfd1acec8888"}, + {file = "xattr-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ccab735d0632fe71f7d72e72adf886f45c18b7787430467ce0070207882cfe25"}, + {file = "xattr-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9013f290387f1ac90bccbb1926555ca9aef75651271098d99217284d9e010f7c"}, + {file = "xattr-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcd5dfbcee73c7be057676ecb900cabb46c691aff4397bf48c579ffb30bb963"}, + {file = "xattr-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6480589c1dac7785d1f851347a32c4a97305937bf7b488b857fe8b28a25de9e9"}, + {file = "xattr-1.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08f61cbed52dc6f7c181455826a9ff1e375ad86f67dd9d5eb7663574abb32451"}, + {file = "xattr-1.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:918e1f83f2e8a072da2671eac710871ee5af337e9bf8554b5ce7f20cdb113186"}, + {file = "xattr-1.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0f06e0c1e4d06b4e0e49aaa1184b6f0e81c3758c2e8365597918054890763b53"}, + {file = "xattr-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46a641ac038a9f53d2f696716147ca4dbd6a01998dc9cd4bc628801bc0df7f4d"}, + {file = "xattr-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7e4ca0956fd11679bb2e0c0d6b9cdc0f25470cc00d8da173bb7656cc9a9cf104"}, + {file = "xattr-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6881b120f9a4b36ccd8a28d933bc0f6e1de67218b6ce6e66874e0280fc006844"}, + {file = "xattr-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dab29d9288aa28e68a6f355ddfc3f0a7342b40c9012798829f3e7bd765e85c2c"}, + {file = "xattr-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0c80bbf55339c93770fc294b4b6586b5bf8e85ec00a4c2d585c33dbd84b5006"}, + {file = "xattr-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1418705f253b6b6a7224b69773842cac83fcbcd12870354b6e11dd1cd54630f"}, + {file = "xattr-1.1.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687e7d18611ef8d84a6ecd8f4d1ab6757500c1302f4c2046ce0aa3585e13da3f"}, + {file = "xattr-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b6ceb9efe0657a982ccb8b8a2efe96b690891779584c901d2f920784e5d20ae3"}, + {file = "xattr-1.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b489b7916f239100956ea0b39c504f3c3a00258ba65677e4c8ba1bd0b5513446"}, + {file = "xattr-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0a9c431b0e66516a078125e9a273251d4b8e5ba84fe644b619f2725050d688a0"}, + {file = "xattr-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1a5921ea3313cc1c57f2f53b63ea8ca9a91e48f4cc7ebec057d2447ec82c7efe"}, + {file = "xattr-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6ad2a7bd5e6cf71d4a862413234a067cf158ca0ae94a40d4b87b98b62808498"}, + {file = "xattr-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0683dae7609f7280b0c89774d00b5957e6ffcb181c6019c46632b389706b77e6"}, + {file = "xattr-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54cb15cd94e5ef8a0ef02309f1bf973ba0e13c11e87686e983f371948cfee6af"}, + {file = "xattr-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff6223a854229055e803c2ad0c0ea9a6da50c6be30d92c198cf5f9f28819a921"}, + {file = "xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d44e8f955218638c9ab222eed21e9bd9ab430d296caf2176fb37abe69a714e5c"}, + {file = "xattr-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:caab2c2986c30f92301f12e9c50415d324412e8e6a739a52a603c3e6a54b3610"}, + {file = "xattr-1.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d6eb7d5f281014cd44e2d847a9107491af1bf3087f5afeded75ed3e37ec87239"}, + {file = "xattr-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:47a3bdfe034b4fdb70e5941d97037405e3904accc28e10dbef6d1c9061fb6fd7"}, + {file = "xattr-1.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00d2b415cf9d6a24112d019e721aa2a85652f7bbc9f3b9574b2d1cd8668eb491"}, + {file = "xattr-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:78b377832dd0ee408f9f121a354082c6346960f7b6b1480483ed0618b1912120"}, + {file = "xattr-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6461a43b585e5f2e049b39bcbfcb6391bfef3c5118231f1b15d10bdb89ef17fe"}, + {file = "xattr-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24d97f0d28f63695e3344ffdabca9fcc30c33e5c8ccc198c7524361a98d526f2"}, + {file = "xattr-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ad47d89968c9097900607457a0c89160b4771601d813e769f68263755516065"}, + {file = "xattr-1.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc53cab265f6e8449bd683d5ee3bc5a191e6dd940736f3de1a188e6da66b0653"}, + {file = "xattr-1.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cd11e917f5b89f2a0ad639d9875943806c6c9309a3dd02da5a3e8ef92db7bed9"}, + {file = "xattr-1.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9c5a78c7558989492c4cb7242e490ffb03482437bf782967dfff114e44242343"}, + {file = "xattr-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cebcf8a303a44fbc439b68321408af7267507c0d8643229dbb107f6c132d389c"}, + {file = "xattr-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b0d73150f2f9655b4da01c2369eb33a294b7f9d56eccb089819eafdbeb99f896"}, + {file = "xattr-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:793c01deaadac50926c0e1481702133260c7cb5e62116762f6fe1543d07b826f"}, + {file = "xattr-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e189e440bcd04ccaad0474720abee6ee64890823ec0db361fb0a4fb5e843a1bf"}, + {file = "xattr-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afacebbc1fa519f41728f8746a92da891c7755e6745164bd0d5739face318e86"}, + {file = "xattr-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9b1664edf003153ac8d1911e83a0fc60db1b1b374ee8ac943f215f93754a1102"}, + {file = "xattr-1.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda2684228798e937a7c29b0e1c7ef3d70e2b85390a69b42a1c61b2039ba81de"}, + {file = "xattr-1.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b735ac2625a4fc2c9343b19f806793db6494336338537d2911c8ee4c390dda46"}, + {file = "xattr-1.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:fa6a7af7a4ada43f15ccc58b6f9adcdbff4c36ba040013d2681e589e07ae280a"}, + {file = "xattr-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1059b2f726e2702c8bbf9bbf369acfc042202a4cc576c2dec6791234ad5e948"}, + {file = "xattr-1.1.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e2255f36ebf2cb2dbf772a7437ad870836b7396e60517211834cf66ce678b595"}, + {file = "xattr-1.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba4f80b9855cc98513ddf22b7ad8551bc448c70d3147799ea4f6c0b758fb466"}, + {file = "xattr-1.1.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb70c16e7c3ae6ba0ab6c6835c8448c61d8caf43ea63b813af1f4dbe83dd156"}, + {file = "xattr-1.1.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83652910ef6a368b77b00825ad67815e5c92bfab551a848ca66e9981d14a7519"}, + {file = "xattr-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7a92aff66c43fa3e44cbeab7cbeee66266c91178a0f595e044bf3ce51485743b"}, + {file = "xattr-1.1.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d4f71b673339aeaae1f6ea9ef8ea6c9643c8cd0df5003b9a0eaa75403e2e06c"}, + {file = "xattr-1.1.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a20de1c47b5cd7b47da61799a3b34e11e5815d716299351f82a88627a43f9a96"}, + {file = "xattr-1.1.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23705c7079b05761ff2fa778ad17396e7599c8759401abc05b312dfb3bc99f69"}, + {file = "xattr-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:27272afeba8422f2a9d27e1080a9a7b807394e88cce73db9ed8d2dde3afcfb87"}, + {file = "xattr-1.1.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd43978966de3baf4aea367c99ffa102b289d6c2ea5f3d9ce34a203dc2f2ab73"}, + {file = "xattr-1.1.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ded771eaf27bb4eb3c64c0d09866460ee8801d81dc21097269cf495b3cac8657"}, + {file = "xattr-1.1.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ca300c0acca4f0cddd2332bb860ef58e1465d376364f0e72a1823fdd58e90d"}, + {file = "xattr-1.1.0.tar.gz", hash = "sha256:fecbf3b05043ed3487a28190dec3e4c4d879b2fcec0e30bafd8ec5d4b6043630"}, +] + +[package.dependencies] +cffi = ">=1.16.0" + +[package.extras] +test = ["pytest"] + [[package]] name = "zipp" version = "3.19.2" @@ -3668,4 +4394,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9, < 3.13" -content-hash = "7a0c5b387ac825e1a4b42969f51713f8ce8ab42541ed0da2cbb2e710c13f96c9" +content-hash = "211fe282713cbb6d9121a161189124f5598cedc725eeb0c196f181292f8dba92" diff --git a/pyproject.toml b/pyproject.toml index 396c0ef6..56850480 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,7 @@ tqdm = "^4.65.0" pylint = "^3.2" pytest-cov = "^5.0.0" sphinx-copybutton = "^0.5.2" +poetry-plugin-export = "^1.8.0" [build-system] requires = ["poetry-core>=1.0.0"] From f112a8ebbb695a3b0c1bfdcb87986f157573b64b Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 18:41:45 -0700 Subject: [PATCH 30/40] update deprecated functions --- gnss_lib_py/parsers/nmea.py | 14 +++++++------- gnss_lib_py/utils/coordinates.py | 14 ++++++-------- gnss_lib_py/utils/ephemeris_downloader.py | 18 +++++++++--------- tests/parsers/test_google_decimeter.py | 10 +++++----- tests/utils/test_ephemeris_downloader.py | 6 +++--- 5 files changed, 30 insertions(+), 32 deletions(-) diff --git a/gnss_lib_py/parsers/nmea.py b/gnss_lib_py/parsers/nmea.py index 8d003ac2..68c2857a 100644 --- a/gnss_lib_py/parsers/nmea.py +++ b/gnss_lib_py/parsers/nmea.py @@ -139,19 +139,19 @@ def __init__(self, input_path, msg_types=None, # As per `gnss_lib_py` standards, convert the heading from degrees # to radians pd_df['true_course_rad'] = (np.pi/180.)*pd_df['true_course']\ - .replace("",np.nan)\ - .fillna(method='bfill')\ - .fillna(method='ffill')\ + .replace("",pd.NA)\ + .bfill()\ + .ffill()\ .astype(float) # Convert the given altitude value to float based on the given units # Assuming that altitude units are always meters - pd_df['altitude'] = pd_df['altitude'].replace("",np.nan)\ - .fillna(method='bfill')\ - .fillna(method='ffill')\ + pd_df['altitude'] = pd_df['altitude'].replace("",pd.NA)\ + .bfill()\ + .ffill()\ .astype(float) pd_df["num_sats"] = pd_df["num_sats"].fillna(value=0).astype('int64') - pd_df = pd_df.fillna(value=np.nan).replace("",np.nan) + pd_df = pd_df.fillna(value=np.nan).replace("",pd.NA) convert_dict={ 'num_sats' : np.int64, 'gps_qual' : np.int64, diff --git a/gnss_lib_py/utils/coordinates.py b/gnss_lib_py/utils/coordinates.py index bebac57e..b8931628 100644 --- a/gnss_lib_py/utils/coordinates.py +++ b/gnss_lib_py/utils/coordinates.py @@ -143,7 +143,7 @@ def ecef_to_geodetic(ecef, radians=False): # stack the new columns and return to the original shape geodetic = np.column_stack((lat, lon, h)) if input_shape[0]==3: - geodetic = np.row_stack((lat, lon, h)) + geodetic = np.vstack((lat, lon, h)) return geodetic class LocalCoord(object): @@ -575,15 +575,15 @@ def wrap_0_to_2pi(angles): def el_az_to_enu_unit_vector(el_deg, az_deg): """ Convert elevation and azimuth to ENU unit vectors. - + Parameters ---------- el_deg : np.ndarray Elevation angle in degrees. - + az_deg : np.ndarray Azimuth angle in degrees. - + Returns ------- unit_dir_mat : np.ndarray @@ -591,13 +591,11 @@ def el_az_to_enu_unit_vector(el_deg, az_deg): """ el_rad = np.deg2rad(el_deg) az_rad = np.deg2rad(az_deg) - + unit_dir_mat = np.vstack( (np.atleast_2d(np.cos(el_rad) * np.sin(az_rad)), np.atleast_2d(np.cos(el_rad) * np.cos(az_rad)), np.atleast_2d(np.sin(el_rad)) )).T - - return unit_dir_mat - + return unit_dir_mat diff --git a/gnss_lib_py/utils/ephemeris_downloader.py b/gnss_lib_py/utils/ephemeris_downloader.py index 87cc6cfc..8efad767 100644 --- a/gnss_lib_py/utils/ephemeris_downloader.py +++ b/gnss_lib_py/utils/ephemeris_downloader.py @@ -122,7 +122,7 @@ import gzip import ftplib from ftplib import FTP_TLS, FTP -from datetime import datetime, timezone, timedelta, time +from datetime import datetime, timezone, timedelta, time, UTC import unlzw3 import numpy as np @@ -280,7 +280,7 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download rinex nav files for "\ + "times before Jan 1, 2013") - if datetime.utcnow().date() == date: + if datetime.now(UTC).date() == date: possible_types = ["rinex_nav_today"] else: if constellations is not None and list(constellations) == ["gps"]: @@ -290,8 +290,8 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, # download from day's stream if too early in the day # that combined file is not yet uploaded to CDDIS. - if datetime.utcnow() < datetime.combine(date+timedelta(days=1), - time(12)): # pragma: no cover + if datetime.now(UTC) < datetime.combine(date+timedelta(days=1), + time(12)).astimezone(timezone.utc): # pragma: no cover possible_types += ["rinex_nav_today"] else: if date < datetime(2019, 11, 25).date(): @@ -304,9 +304,9 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download sp3 files for "\ + "times before May 25, 2012") - if datetime.utcnow().date() - timedelta(days=3) < date: + if datetime.now(UTC).date() - timedelta(days=3) < date: possible_types += ["sp3_rapid_CODE"] - elif datetime.utcnow().date() - timedelta(days=14) < date: + elif datetime.now(UTC).date() - timedelta(days=14) < date: possible_types += ["sp3_rapid_GFZ"] elif date >= datetime(2017, 8, 13).date(): possible_types += ["sp3_final_CODE"] @@ -318,9 +318,9 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download clk files for "\ + "times before Oct 14, 2012") - if datetime.utcnow().date() - timedelta(days=3) < date: + if datetime.now(UTC).date() - timedelta(days=3) < date: possible_types += ["clk_rapid_CODE"] - elif datetime.utcnow().date() - timedelta(days=14) < date: + elif datetime.now(UTC).date() - timedelta(days=14) < date: possible_types += ["clk_rapid_GFZ"] elif date >= datetime(2020, 7, 5).date(): possible_types += ["clk_final_CODE"] @@ -430,7 +430,7 @@ def _extract_ephemeris_dates(file_type, dt_timestamps): needed_dates.update({dt.date() + timedelta(days=1) for dt in dt_timestamps if ((dt >= datetime.combine(dt.date(), time(22,tzinfo=timezone.utc))) & - (dt.date() != datetime.utcnow().date())) + (dt.date() != datetime.now(UTC).date())) }) else: diff --git a/tests/parsers/test_google_decimeter.py b/tests/parsers/test_google_decimeter.py index 1a5781bd..19743099 100644 --- a/tests/parsers/test_google_decimeter.py +++ b/tests/parsers/test_google_decimeter.py @@ -135,11 +135,11 @@ def test_derived_df_equivalence(derived_path_2021, pd_df, derived_row_map): derived = google_decimeter.AndroidDerived2021(derived_path_2021, remove_timing_outliers=False) measure_df = derived.pandas_df() - gnss_id_map = {"gps":1, - "glonass":3, - "galileo":6, + gnss_id_map = {"gps":"1", + "glonass":"3", + "galileo":"6", } - measure_df['gnss_id'] = measure_df['gnss_id'].replace(gnss_id_map) + measure_df['gnss_id'] = measure_df['gnss_id'].replace(gnss_id_map).astype(int) signal_map = {"GPS_L1" : "l1", "GPS_L5" : "l5", "GAL_E1" : "e1", @@ -158,7 +158,7 @@ def test_derived_df_equivalence(derived_path_2021, pd_df, derived_row_map): derived_timestamps = pd_df['millisSinceGpsEpoch'].unique() mapper = dict(zip(derived_timestamps[1:],derived_timestamps[:-1])) pd_df = pd_df[pd_df['millisSinceGpsEpoch'] != pd_df.loc[0,'millisSinceGpsEpoch']] - pd_df["millisSinceGpsEpoch"] = pd_df["millisSinceGpsEpoch"].replace(mapper) + pd_df.loc[:,"millisSinceGpsEpoch"] = pd_df["millisSinceGpsEpoch"].replace(mapper) pd_df.reset_index(drop=True, inplace=True) pd.testing.assert_frame_equal(pd_df.sort_index(axis=1), measure_df.sort_index(axis=1), diff --git a/tests/utils/test_ephemeris_downloader.py b/tests/utils/test_ephemeris_downloader.py index 43abaadd..f94630b0 100644 --- a/tests/utils/test_ephemeris_downloader.py +++ b/tests/utils/test_ephemeris_downloader.py @@ -7,7 +7,7 @@ import os import ftplib -from datetime import datetime, timezone, timedelta, time +from datetime import datetime, timezone, timedelta, time, UTC import pytest import requests @@ -347,10 +347,10 @@ def test_extract_ephemeris_dates(): datetime(2023, 7, 27).date()] # check don't add next day if after 10pm on current day - ten_pm_utc_today = datetime.combine(datetime.utcnow().date(), + ten_pm_utc_today = datetime.combine(datetime.now(UTC).date(), time(22,tzinfo=timezone.utc)) dates = ed._extract_ephemeris_dates("rinex_nav", np.array([ten_pm_utc_today])) - assert dates == [datetime.utcnow().date()] + assert dates == [datetime.now(UTC).date()] # check that across multiple days there aren't duplicates dates = ed._extract_ephemeris_dates("rinex_nav", np.array([noon_utc, From ab6038dab39c139b45d49686bb4b8961487e23ee Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 18:42:34 -0700 Subject: [PATCH 31/40] remove duplicate workflow --- .github/workflows/build_new_version.yml | 98 ------------------------- 1 file changed, 98 deletions(-) delete mode 100644 .github/workflows/build_new_version.yml diff --git a/.github/workflows/build_new_version.yml b/.github/workflows/build_new_version.yml deleted file mode 100644 index b4d4feac..00000000 --- a/.github/workflows/build_new_version.yml +++ /dev/null @@ -1,98 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: build-python-12 - -on: - push: - branches: - - daniel/git_actions_py_version - pull_request: - branches: - - daniel/git_actions_py_version - workflow_dispatch: - -jobs: - build: - name: Python ${{ matrix.python-version }}, OS ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - python-version: ["3.9", "3.11", "3.12"] - os: [ubuntu-latest, macos-latest, windows-latest] - fail-fast : false - defaults: - run: - shell: bash - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - id: setup-python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install Poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - installer-parallel: true # default option selected currently - # Load cached environment, if it exists - - name: Load cached poetry environment - id: cached-poetry-dependencies - uses: actions/cache@v4 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Install dependencies and root package - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: | - poetry install --no-interaction --no-root - poetry install --no-interaction - # Install pandoc for building docs - - name: Install pandoc for Ubuntu - if: matrix.os == 'ubuntu-latest' - run: sudo apt install pandoc - - name: Install pandoc for Windows - if: matrix.os == 'windows-latest' - run: choco install pandoc --no-progress - - name: Install pandoc for MacOS - if: matrix.os == 'macos-latest' - run: brew install pandoc - - - name: Test with pytest - run: | - source $VENV - poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml - - name: Upload coverage report to code-cov - uses: codecov/codecov-action@v4 - with: - fail_ci_if_error: true - token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos - - name: Test if docs are building - run: | - ./build_docs.sh - readme: - runs-on: ubuntu-latest - name: Check if index.rst and README.md weren't changed together - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Get changed files since last remote commit - id: changed-files - uses: tj-actions/changed-files@v44 - - - name: Check if index.rst changed when README.md file changes - if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') - run: | - echo "README.md has changed but index.rst has not!" - exit 1 - - - name: Check if README.md changed when index.rst file changes - if: contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst') && !contains(steps.changed-files.outputs.modified_files, 'README.md') - run: | - echo "index.rst has changed but README.md has not!" - exit 1 From 38708b95d3fde95be9344c5f86874eec4d3e342f Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 18:58:24 -0700 Subject: [PATCH 32/40] use datetime.timezone.utc rather than datetime.UTC --- .github/workflows/build.yml | 2 +- gnss_lib_py/utils/ephemeris_downloader.py | 16 ++++++++-------- tests/utils/test_ephemeris_downloader.py | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecc762be..7cc1abc6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.9", "3.12"] + python-version: ["3.9","3.10","3.11","3.12"] os: [ubuntu-latest, macos-latest, windows-latest] fail-fast : false defaults: diff --git a/gnss_lib_py/utils/ephemeris_downloader.py b/gnss_lib_py/utils/ephemeris_downloader.py index 8efad767..c9b1ec25 100644 --- a/gnss_lib_py/utils/ephemeris_downloader.py +++ b/gnss_lib_py/utils/ephemeris_downloader.py @@ -122,7 +122,7 @@ import gzip import ftplib from ftplib import FTP_TLS, FTP -from datetime import datetime, timezone, timedelta, time, UTC +from datetime import datetime, timezone, timedelta, time import unlzw3 import numpy as np @@ -280,7 +280,7 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download rinex nav files for "\ + "times before Jan 1, 2013") - if datetime.now(UTC).date() == date: + if datetime.now(timezone.utc).date() == date: possible_types = ["rinex_nav_today"] else: if constellations is not None and list(constellations) == ["gps"]: @@ -290,7 +290,7 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, # download from day's stream if too early in the day # that combined file is not yet uploaded to CDDIS. - if datetime.now(UTC) < datetime.combine(date+timedelta(days=1), + if datetime.now(timezone.utc) < datetime.combine(date+timedelta(days=1), time(12)).astimezone(timezone.utc): # pragma: no cover possible_types += ["rinex_nav_today"] else: @@ -304,9 +304,9 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download sp3 files for "\ + "times before May 25, 2012") - if datetime.now(UTC).date() - timedelta(days=3) < date: + if datetime.now(timezone.utc).date() - timedelta(days=3) < date: possible_types += ["sp3_rapid_CODE"] - elif datetime.now(UTC).date() - timedelta(days=14) < date: + elif datetime.now(timezone.utc).date() - timedelta(days=14) < date: possible_types += ["sp3_rapid_GFZ"] elif date >= datetime(2017, 8, 13).date(): possible_types += ["sp3_final_CODE"] @@ -318,9 +318,9 @@ def _verify_ephemeris(file_type, gps_millis, constellations=None, raise RuntimeError("gnss_lib_py cannot automatically " \ + "download clk files for "\ + "times before Oct 14, 2012") - if datetime.now(UTC).date() - timedelta(days=3) < date: + if datetime.now(timezone.utc).date() - timedelta(days=3) < date: possible_types += ["clk_rapid_CODE"] - elif datetime.now(UTC).date() - timedelta(days=14) < date: + elif datetime.now(timezone.utc).date() - timedelta(days=14) < date: possible_types += ["clk_rapid_GFZ"] elif date >= datetime(2020, 7, 5).date(): possible_types += ["clk_final_CODE"] @@ -430,7 +430,7 @@ def _extract_ephemeris_dates(file_type, dt_timestamps): needed_dates.update({dt.date() + timedelta(days=1) for dt in dt_timestamps if ((dt >= datetime.combine(dt.date(), time(22,tzinfo=timezone.utc))) & - (dt.date() != datetime.now(UTC).date())) + (dt.date() != datetime.now(timezone.utc).date())) }) else: diff --git a/tests/utils/test_ephemeris_downloader.py b/tests/utils/test_ephemeris_downloader.py index f94630b0..cad800ca 100644 --- a/tests/utils/test_ephemeris_downloader.py +++ b/tests/utils/test_ephemeris_downloader.py @@ -7,7 +7,7 @@ import os import ftplib -from datetime import datetime, timezone, timedelta, time, UTC +from datetime import datetime, timezone, timedelta, time import pytest import requests @@ -347,10 +347,10 @@ def test_extract_ephemeris_dates(): datetime(2023, 7, 27).date()] # check don't add next day if after 10pm on current day - ten_pm_utc_today = datetime.combine(datetime.now(UTC).date(), + ten_pm_utc_today = datetime.combine(datetime.now(timezone.utc).date(), time(22,tzinfo=timezone.utc)) dates = ed._extract_ephemeris_dates("rinex_nav", np.array([ten_pm_utc_today])) - assert dates == [datetime.now(UTC).date()] + assert dates == [datetime.now(timezone.utc).date()] # check that across multiple days there aren't duplicates dates = ed._extract_ephemeris_dates("rinex_nav", np.array([noon_utc, From d4c6bcd5e4bf3e2170bc5fd2e16dc7d2de2d7333 Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 20:01:10 -0700 Subject: [PATCH 33/40] remove erroneous pylint init messages --- gnss_lib_py/navdata/navdata.py | 4 ++-- gnss_lib_py/navdata/operations.py | 4 ++-- gnss_lib_py/parsers/nmea.py | 6 +++--- gnss_lib_py/parsers/rinex_nav.py | 2 +- gnss_lib_py/parsers/sp3.py | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/gnss_lib_py/navdata/navdata.py b/gnss_lib_py/navdata/navdata.py index 764a2e96..d8197ee3 100644 --- a/gnss_lib_py/navdata/navdata.py +++ b/gnss_lib_py/navdata/navdata.py @@ -385,7 +385,7 @@ def rename(self, mapper=None, inplace=False): self.str_map[new_name] = self.str_map.pop(old_name) self.orig_dtypes[new_name] = self.orig_dtypes.pop(old_name) else: - new_navdata.map[new_name] = new_navdata.map.pop(old_name) + new_navdata.map[new_name] = new_navdata.map.pop(old_name) # pylint: disable=possibly-used-before-assignment new_navdata.str_map[new_name] = new_navdata.str_map.pop(old_name) new_navdata.orig_dtypes[new_name] = new_navdata.orig_dtypes.pop(old_name) @@ -451,7 +451,7 @@ def replace(self, mapper=None, rows=None, inplace=False): if inplace: self[row] = np.array(new_row_values) else: - new_navdata[row] = np.array(new_row_values) + new_navdata[row] = np.array(new_row_values) # pylint: disable=possibly-used-before-assignment if inplace: return None diff --git a/gnss_lib_py/navdata/operations.py b/gnss_lib_py/navdata/operations.py index 863d8136..c4e81ff4 100644 --- a/gnss_lib_py/navdata/operations.py +++ b/gnss_lib_py/navdata/operations.py @@ -148,7 +148,7 @@ def sort(navdata, order=None, ind=None, ascending=True, if inplace: navdata.array[row_idx,:] = navdata.array[row_idx,ind] else: - new_navdata.array[row_idx,:] = new_navdata.array[row_idx,ind] + new_navdata.array[row_idx,:] = new_navdata.array[row_idx,ind] # pylint: disable=possibly-used-before-assignment if inplace: return None @@ -248,7 +248,7 @@ def interpolate(navdata, x_row, y_rows, inplace=False, *args): navdata[y_row,nan_idxs] = np.interp(x_vals, xp_vals, yp_vals, *args) else: - new_navdata[y_row,nan_idxs] = np.interp(x_vals, xp_vals, + new_navdata[y_row,nan_idxs] = np.interp(x_vals, xp_vals, # pylint: disable=possibly-used-before-assignment yp_vals, *args) if inplace: return None diff --git a/gnss_lib_py/parsers/nmea.py b/gnss_lib_py/parsers/nmea.py index 68c2857a..6a59e845 100644 --- a/gnss_lib_py/parsers/nmea.py +++ b/gnss_lib_py/parsers/nmea.py @@ -139,19 +139,19 @@ def __init__(self, input_path, msg_types=None, # As per `gnss_lib_py` standards, convert the heading from degrees # to radians pd_df['true_course_rad'] = (np.pi/180.)*pd_df['true_course']\ - .replace("",pd.NA)\ + .replace("",np.nan)\ .bfill()\ .ffill()\ .astype(float) # Convert the given altitude value to float based on the given units # Assuming that altitude units are always meters - pd_df['altitude'] = pd_df['altitude'].replace("",pd.NA)\ + pd_df['altitude'] = pd_df['altitude'].replace("",np.nan)\ .bfill()\ .ffill()\ .astype(float) pd_df["num_sats"] = pd_df["num_sats"].fillna(value=0).astype('int64') - pd_df = pd_df.fillna(value=np.nan).replace("",pd.NA) + pd_df = pd_df.fillna(value=np.nan).replace("",np.nan) convert_dict={ 'num_sats' : np.int64, 'gps_qual' : np.int64, diff --git a/gnss_lib_py/parsers/rinex_nav.py b/gnss_lib_py/parsers/rinex_nav.py index 0a4f3bd2..e693581c 100644 --- a/gnss_lib_py/parsers/rinex_nav.py +++ b/gnss_lib_py/parsers/rinex_nav.py @@ -131,7 +131,7 @@ def preprocess(self, rinex_paths, satellites): self.iono_params[start_gps_millis].keys(): self.iono_params[start_gps_millis][constellation] \ = value - #TODO: Find a more pythonic way to do this^ + data.reset_index(inplace=True, drop=True) data.sort_values('time', inplace=True, ignore_index=True) diff --git a/gnss_lib_py/parsers/sp3.py b/gnss_lib_py/parsers/sp3.py index a1614ed9..25d53c19 100644 --- a/gnss_lib_py/parsers/sp3.py +++ b/gnss_lib_py/parsers/sp3.py @@ -65,6 +65,7 @@ def __init__(self, input_paths): data = [line.strip() for line in infile] # Loop through each line + gps_millis_timestep = 0 for dval in data: if len(dval) == 0: # No data From d585ee837c028274232df616276bddfe38131065 Mon Sep 17 00:00:00 2001 From: betaBison Date: Sun, 4 Aug 2024 21:38:16 -0700 Subject: [PATCH 34/40] new main architecture image --- README.md | 2 +- docs/source/img/glp_architecture.png | Bin 0 -> 195386 bytes docs/source/index.rst | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/source/img/glp_architecture.png diff --git a/README.md b/README.md index 94e4c34e..95b254f3 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ algorithms or datasets can be easily exchanged for each other. It is extendable in facilitating user-specific extensions of existing implementations. -Skyplot of GNSS satellite movement over time +Architecture of gnss-lib-py library `gnss_lib_py` contains parsers for common file types used for storing GNSS measurements, benchmark algorithms for processing diff --git a/docs/source/img/glp_architecture.png b/docs/source/img/glp_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4ded5732e85fffa6c23fcdd845933c4dca7c8529 GIT binary patch literal 195386 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

H!=}vKLx~c* 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 Date: Mon, 5 Aug 2024 12:17:43 -0700 Subject: [PATCH 35/40] change png to svg --- README.md | 2 +- docs/source/img/glp_architecture.png | Bin 195386 -> 0 bytes docs/source/img/glp_architecture.svg | 1 + docs/source/index.rst | 2 +- 4 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 docs/source/img/glp_architecture.png create mode 100644 docs/source/img/glp_architecture.svg diff --git a/README.md b/README.md index 95b254f3..3aa5391b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ algorithms or datasets can be easily exchanged for each other. It is extendable in facilitating user-specific extensions of existing implementations. -Architecture of gnss-lib-py library +Architecture of gnss-lib-py library `gnss_lib_py` contains parsers for common file types used for storing GNSS measurements, benchmark algorithms for processing diff --git a/docs/source/img/glp_architecture.png b/docs/source/img/glp_architecture.png deleted file mode 100644 index 4ded5732e85fffa6c23fcdd845933c4dca7c8529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195386 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

H!=}vKLx~c* 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 standard nomenclatureNavDataExtended Kalman FilterResidual CalculationsWeighted Least SquaresFault Detection and ExclusionAlgorithmsTrajectory MappingMetrics by Constellation TypeSkyplotVisualizationsCoordinate TransformsEphemeris DownloaderSimulate GNSS MeasurementsTime ConversionsAdditional UtilitiesCalculating Satellite State at Specific TimeDilution of Precision (DOP)Google Decimeter 2021Google Decimeter 2023Google Decimeter 2022RINEX NavigationParsersSP3 Precise OrbitsRINEX ObservationCLK Clock ProductsNMEATU Chemnitz SmartLocAndroid Raw Measurements \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 4f4b4235..4554b3f6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -20,7 +20,7 @@ algorithms or datasets can be easily exchanged for each other. It is extendable in facilitating user-specific extensions of existing implementations. -.. image:: img/glp_architecture.png +.. image:: img/glp_architecture.svg :width: 800 :alt: Skyplot of GNSS satellite movement over time From 109c4a6931ba05b3f9f8c35ba41459b3cf8d145d Mon Sep 17 00:00:00 2001 From: betaBison Date: Wed, 14 Aug 2024 15:20:15 -0700 Subject: [PATCH 36/40] change to string nan for pandas replace --- gnss_lib_py/parsers/nmea.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnss_lib_py/parsers/nmea.py b/gnss_lib_py/parsers/nmea.py index 6a59e845..ae858a4e 100644 --- a/gnss_lib_py/parsers/nmea.py +++ b/gnss_lib_py/parsers/nmea.py @@ -151,7 +151,7 @@ def __init__(self, input_path, msg_types=None, .ffill()\ .astype(float) pd_df["num_sats"] = pd_df["num_sats"].fillna(value=0).astype('int64') - pd_df = pd_df.fillna(value=np.nan).replace("",np.nan) + pd_df = pd_df.fillna(value=np.nan).replace("","nan") convert_dict={ 'num_sats' : np.int64, 'gps_qual' : np.int64, From c1a98f7188db8d1239d807900edecde62f60efa0 Mon Sep 17 00:00:00 2001 From: betaBison Date: Wed, 14 Aug 2024 15:22:17 -0700 Subject: [PATCH 37/40] update python reqs --- docs/source/requirements.txt | 30 +- poetry.lock | 732 +++++++++++++++++++---------------- requirements.txt | 22 +- 3 files changed, 418 insertions(+), 366 deletions(-) diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index d7a36232..2b6effbe 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -7,14 +7,14 @@ arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" astroid==3.2.4 ; python_version >= "3.9" and python_version < "3.13" asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" -attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" -babel==2.15.0 ; python_version >= "3.9" and python_version < "3.13" +attrs==24.2.0 ; python_version >= "3.9" and python_version < "3.13" +babel==2.16.0 ; python_version >= "3.9" and python_version < "3.13" beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.13" bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" build==1.2.1 ; python_version >= "3.9" and python_version < "3.13" cachecontrol[filecache]==0.14.0 ; python_version >= "3.9" and python_version < "3.13" certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" -cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +cffi==1.17.0 ; python_version >= "3.9" and python_version < "3.13" charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" cleo==2.1.0 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows" or os_name == "nt") @@ -24,7 +24,7 @@ coverage[toml]==7.6.1 ; python_version >= "3.9" and python_version < "3.13" crashtest==0.4.1 ; python_version >= "3.9" and python_version < "3.13" cryptography==43.0.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "linux" cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" -debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +debugpy==1.8.5 ; python_version >= "3.9" and python_version < "3.13" decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" @@ -45,7 +45,7 @@ httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" imagesize==1.4.1 ; python_version >= "3.9" and python_version < "3.13" importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.12" -importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.13" +importlib-resources==6.4.1 ; python_version >= "3.9" and python_version < "3.13" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" installer==0.7.0 ; python_version >= "3.9" and python_version < "3.13" ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" @@ -82,7 +82,7 @@ matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" -more-itertools==10.3.0 ; python_version >= "3.9" and python_version < "3.13" +more-itertools==10.4.0 ; python_version >= "3.9" and python_version < "3.13" msgpack==1.0.8 ; python_version >= "3.9" and python_version < "3.13" nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" @@ -126,29 +126,29 @@ pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" pytz==2024.1 ; python_version >= "3.9" and python_version < "3.13" -pywin32-ctypes==0.2.2 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" +pywin32-ctypes==0.2.3 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.13" pywinpty==2.0.13 ; python_version >= "3.9" and python_version < "3.13" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" +pyyaml==6.0.2 ; python_version >= "3.9" and python_version < "3.13" pyzmq==26.1.0 ; python_version >= "3.9" and python_version < "3.13" qtconsole==5.5.2 ; python_version >= "3.9" and python_version < "3.13" qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.13" -rapidfuzz==3.9.5 ; python_version >= "3.9" and python_version < "3.13" +rapidfuzz==3.9.6 ; python_version >= "3.9" and python_version < "3.13" referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "3.13" requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.13" rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.13" -rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +rpds-py==0.20.0 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.13" secretstorage==3.3.3 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "linux" send2trash==1.8.3 ; python_version >= "3.9" and python_version < "3.13" -setuptools==72.1.0 ; python_version >= "3.9" and python_version < "3.13" +setuptools==72.2.0 ; python_version >= "3.9" and python_version < "3.13" shellingham==1.5.4 ; python_version >= "3.9" and python_version < "3.13" six==1.16.0 ; python_version >= "3.9" and python_version < "3.13" sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" -soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" +soupsieve==2.6 ; python_version >= "3.9" and python_version < "3.13" sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "3.13" sphinx-rtd-theme==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinx==7.4.7 ; python_version >= "3.9" and python_version < "3.13" @@ -165,7 +165,7 @@ tenacity==9.0.0 ; python_version >= "3.9" and python_version < "3.13" terminado==0.18.1 ; python_version >= "3.9" and python_version < "3.13" tinycss2==1.3.0 ; python_version >= "3.9" and python_version < "3.13" tomli==2.0.1 ; python_version >= "3.9" and python_full_version <= "3.11.0a6" -tomlkit==0.13.0 ; python_version >= "3.9" and python_version < "3.13" +tomlkit==0.13.2 ; python_version >= "3.9" and python_version < "3.13" tornado==6.4.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.5 ; python_version >= "3.9" and python_version < "3.13" traitlets==5.14.3 ; python_version >= "3.9" and python_version < "3.13" @@ -178,10 +178,10 @@ uri-template==1.3.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.2 ; python_version >= "3.9" and python_version < "3.13" virtualenv==20.26.3 ; python_version >= "3.9" and python_version < "3.13" wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.13" -webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" +webcolors==24.8.0 ; python_version >= "3.9" and python_version < "3.13" webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" xattr==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "darwin" -zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.12" +zipp==3.20.0 ; python_version >= "3.9" and python_version < "3.12" diff --git a/poetry.lock b/poetry.lock index f3aa0dd9..c612dd04 100644 --- a/poetry.lock +++ b/poetry.lock @@ -168,13 +168,13 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "attrs" -version = "24.1.0" +version = "24.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-24.1.0-py3-none-any.whl", hash = "sha256:377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905"}, - {file = "attrs-24.1.0.tar.gz", hash = "sha256:adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745"}, + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] [package.extras] @@ -187,13 +187,13 @@ tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" -version = "2.15.0" +version = "2.16.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" files = [ - {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, - {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] [package.extras] @@ -297,63 +297,78 @@ files = [ [[package]] name = "cffi" -version = "1.16.0" +version = "1.17.0" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, + {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, + {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, + {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, + {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, + {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, + {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, + {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, + {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, + {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, + {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, + {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, + {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, + {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, + {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, + {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, + {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, ] [package.dependencies] @@ -728,13 +743,33 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.8.3" +version = "1.8.5" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.3-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:0df2c400853150af14996b8d1a4f54d45ffa98e76c0f3de30665e89e273ea293"}, - {file = "debugpy-1.8.3.zip", hash = "sha256:0f5a6326d9fc375b864ed368d06cddf2dabe5135511e71cde3758be699847d36"}, + {file = "debugpy-1.8.5-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7e4d594367d6407a120b76bdaa03886e9eb652c05ba7f87e37418426ad2079f7"}, + {file = "debugpy-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4413b7a3ede757dc33a273a17d685ea2b0c09dbd312cc03f5534a0fd4d40750a"}, + {file = "debugpy-1.8.5-cp310-cp310-win32.whl", hash = "sha256:dd3811bd63632bb25eda6bd73bea8e0521794cda02be41fa3160eb26fc29e7ed"}, + {file = "debugpy-1.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:b78c1250441ce893cb5035dd6f5fc12db968cc07f91cc06996b2087f7cefdd8e"}, + {file = "debugpy-1.8.5-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:606bccba19f7188b6ea9579c8a4f5a5364ecd0bf5a0659c8a5d0e10dcee3032a"}, + {file = "debugpy-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db9fb642938a7a609a6c865c32ecd0d795d56c1aaa7a7a5722d77855d5e77f2b"}, + {file = "debugpy-1.8.5-cp311-cp311-win32.whl", hash = "sha256:4fbb3b39ae1aa3e5ad578f37a48a7a303dad9a3d018d369bc9ec629c1cfa7408"}, + {file = "debugpy-1.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:345d6a0206e81eb68b1493ce2fbffd57c3088e2ce4b46592077a943d2b968ca3"}, + {file = "debugpy-1.8.5-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:5b5c770977c8ec6c40c60d6f58cacc7f7fe5a45960363d6974ddb9b62dbee156"}, + {file = "debugpy-1.8.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a65b00b7cdd2ee0c2cf4c7335fef31e15f1b7056c7fdbce9e90193e1a8c8cb"}, + {file = "debugpy-1.8.5-cp312-cp312-win32.whl", hash = "sha256:c9f7c15ea1da18d2fcc2709e9f3d6de98b69a5b0fff1807fb80bc55f906691f7"}, + {file = "debugpy-1.8.5-cp312-cp312-win_amd64.whl", hash = "sha256:28ced650c974aaf179231668a293ecd5c63c0a671ae6d56b8795ecc5d2f48d3c"}, + {file = "debugpy-1.8.5-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:3df6692351172a42af7558daa5019651f898fc67450bf091335aa8a18fbf6f3a"}, + {file = "debugpy-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd04a73eb2769eb0bfe43f5bfde1215c5923d6924b9b90f94d15f207a402226"}, + {file = "debugpy-1.8.5-cp38-cp38-win32.whl", hash = "sha256:8f913ee8e9fcf9d38a751f56e6de12a297ae7832749d35de26d960f14280750a"}, + {file = "debugpy-1.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:a697beca97dad3780b89a7fb525d5e79f33821a8bc0c06faf1f1289e549743cf"}, + {file = "debugpy-1.8.5-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:0a1029a2869d01cb777216af8c53cda0476875ef02a2b6ff8b2f2c9a4b04176c"}, + {file = "debugpy-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84c276489e141ed0b93b0af648eef891546143d6a48f610945416453a8ad406"}, + {file = "debugpy-1.8.5-cp39-cp39-win32.whl", hash = "sha256:ad84b7cde7fd96cf6eea34ff6c4a1b7887e0fe2ea46e099e53234856f9d99a34"}, + {file = "debugpy-1.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:7b0fe36ed9d26cb6836b0a51453653f8f2e347ba7348f2bbfe76bfeb670bfb1c"}, + {file = "debugpy-1.8.5-py2.py3-none-any.whl", hash = "sha256:55919dce65b471eff25901acf82d328bbd5b833526b6c1364bd5133754777a44"}, + {file = "debugpy-1.8.5.zip", hash = "sha256:b2112cfeb34b4507399d298fe7023a16656fc553ed5246536060ca7bd0e668d0"}, ] [[package]] @@ -1173,21 +1208,21 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p [[package]] name = "importlib-resources" -version = "6.4.0" +version = "6.4.1" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, - {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, + {file = "importlib_resources-6.4.1-py3-none-any.whl", hash = "sha256:8fbee7ba7376ca7c47ce8d31b96b93d8787349845f01ebdbee5ef90409035234"}, + {file = "importlib_resources-6.4.1.tar.gz", hash = "sha256:5ede8acf5d752abda46fb6922a4a6ab782b6d904dfd362bf2d8b857eee1759d9"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" @@ -2036,13 +2071,13 @@ files = [ [[package]] name = "more-itertools" -version = "10.3.0" +version = "10.4.0" description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" files = [ - {file = "more-itertools-10.3.0.tar.gz", hash = "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463"}, - {file = "more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"}, + {file = "more-itertools-10.4.0.tar.gz", hash = "sha256:fe0e63c4ab068eac62410ab05cccca2dc71ec44ba8ef29916a0090df061cf923"}, + {file = "more_itertools-10.4.0-py3-none-any.whl", hash = "sha256:0f7d9f83a0a8dcfa8a2694a770590d98a67ea943e3d9f5298309a484758c4e27"}, ] [[package]] @@ -3076,13 +3111,13 @@ files = [ [[package]] name = "pywin32-ctypes" -version = "0.2.2" +version = "0.2.3" description = "A (partial) reimplementation of pywin32 using ctypes/cffi" optional = false python-versions = ">=3.6" files = [ - {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, - {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, + {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"}, + {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"}, ] [[package]] @@ -3102,62 +3137,64 @@ files = [ [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] @@ -3325,104 +3362,119 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "rapidfuzz" -version = "3.9.5" +version = "3.9.6" description = "rapid fuzzy string matching" optional = false python-versions = ">=3.8" files = [ - {file = "rapidfuzz-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7659058863d84a2c36c5a76c28bc8713d33eab03e677e67260d9e1cca43fc3bb"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:802a018776bd3cb7c5d23ba38ebbb1663a9f742be1d58e73b62d8c7cace6e607"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da71e8fdb0d1a21f4b58b2c84bcbc2b89a472c073c5f7bdb9339f4cb3122c0e3"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9433cb12731167b358fbcff9828d2294429986a03222031f6d14308eb643c77"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e33e1d185206730b916b3e7d9bce1941c65b2a1488cdd0457ae21be385a7912"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:758719e9613c47a274768f1926460955223fe0a03e7eda264f2b78b1b97a4743"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7981cc6240d01d4480795d758ea2ee748257771f68127d630045e58fe1b5545a"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b6cdca86120c3f9aa069f8d4e1c5422e92f833d705d719a2ba7082412f4c933b"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ffa533acb1a9dcb6e26c4467fdc1347995fb168ec9f794b97545f6b72dee733c"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:13eeaeb0d5fe00fa99336f73fb5ab65c46109c7121cf87659b9601908b8b6178"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d7b1922b1403ccb3583218e8cd931b08e04c5442ca03dbaf6ea4fcf574ee2b24"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b0189f691cea4dc9fe074ea6b97da30a91d0882fa69724b4b34b51d2c1983473"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-win32.whl", hash = "sha256:72e466e5de12a327a09ed6d0116f024759b5146b335645c32241da84134a7f34"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:345011cfcafaa3674c46673baad67d2394eb58285530d8333e65c3c9a143b4f4"}, - {file = "rapidfuzz-3.9.5-cp310-cp310-win_arm64.whl", hash = "sha256:5dc19c8222475e4f7f528b94d2fa28e7979355c5cf7c6e73902d2abb2be96522"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c741972d64031535cfd76d89cf47259e590e822353be57ec2f5d56758c98296"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a7452d079800cf70a7314f73044f03cbcbd90a651d9dec39443d2a8a2b63ab53"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f06f163a0341bad162e972590b73e17f9cea2ed8ee27b193875ccbc3dd6eca2f"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:529e2cf441746bd492f6c36a38bf9fa6a418df95b9c003f8e92a55d8a979bd9c"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9811a741aa1350ad36689d675ded8b34e423e68b396bd30bff751a9c582f586e"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e36c4640a789b8c922b69a548968939d1c0433fa7aac83cb08e1334d4e5d7de"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53fb2f32f14c921d2f673c5b7cd58d4cc626c574a28c0791f283880d8e57022c"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:031806eb035a6f09f4ff23b9d971d50b30b5e93aa3ee620c920bee1dc32827e7"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f6dbe1df0b9334e3cf07445d810c81734ae23d137b5efc69e1d676ff55691351"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:24345826b50aafcea26e2e4be5c103d96fe9d7fc549ac9190641300290958f3b"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bfd3b66ee1f0ebb40c672a7a7e5bda00fb763fa9bca082058084175151f8e685"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a6f1df5b0e602e94199cccb5e241bbc2319644003e34f077741ebf48aea7ed1a"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-win32.whl", hash = "sha256:f080d6709f51a8335e73826b96af9b4e3657631eca6c69e1ac501868dcc84b7f"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:bf9ed6988da6a2c1f8df367cb5d6be26a3d8543646c8eba79741ac9e764fbc59"}, - {file = "rapidfuzz-3.9.5-cp311-cp311-win_arm64.whl", hash = "sha256:599714790dfac0a23a473134e6677d0a103690a4e21ba189cfc826e322cdc8d5"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9729852038fb2de096e249899f8a9bee90fb1f92e10b6ccc539d5bb798c703bc"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9dc39435476fb3b3b3c24ab2c08c726056b2b487aa7ee450aee698b808c808ac"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6ceea632b0eb97dac54411c29feb190054e91fd0571f585b56e4a9159c55ab0"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cadd66e6ef9901909dc1b11db91048f1bf4613ba7d773386f922e28b1e1df4da"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63e34fb3586431589a5e1cd7fc61c6f057576c6c6804c1c673bac3de0516dee7"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:181073256faec68e6b8ab3329a36cfa1360f7906aa70d9aee4a39cb70889f73f"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8419c18bbbd67058ca1312f35acda2e4e4592650f105cfd166569a2ebccd01f1"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:191d1057cca56641f7b919fe712cb7e48cd226342e097a78136127f8bde32caa"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fe5a11eefd0ae90d32d9ff706a894498b4efb4b0c263ad9d1e6401050863504d"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b024d9d69bb83e125adee4162991f2764f16acc3fb1ed0f0fc1ad5aeb7e394"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d5a34b8388ae99bdbd5a3646f45ac318f4c870105bdbe42a2f4c85e5b347761"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0e09abc0d397019bba61c8e6dfe2ec863d4dfb1762f51c9197ce0af5d5fd9adb"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-win32.whl", hash = "sha256:e3c4be3057472c79ba6f4eab35daa9f12908cb697c472d05fbbd47949a87aec6"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:0d9fdb74df87018dd4146f3d00df9fca2c27f060936a9e8d3015e7bfb9cb69e4"}, - {file = "rapidfuzz-3.9.5-cp312-cp312-win_arm64.whl", hash = "sha256:491d3d425b5fe3f61f3b9a70abfd498ce9139d94956db7a8551e537e017c0e57"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:518dec750a30f115ba1299ef2547cf468a69f310581a030c8a875257de747c5f"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:252dc3d1c3d613b8db1b59d13381937e420c99f8a351ffa0e78c2f54746e107f"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd17688b75b6fa983e8586cad30f36eb9736b860946cc8b633b9442c9481831"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8032492021b0aa55a623d6f6e739a5d4aaabc32af379c2a5656bf1e9e178bf1"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73362eb1c3d02f32e4c7f0d77eb284e9a13f278cff224f71e8f60e2aff5b6a5d"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a42d1f7b8988f50013e703ed27b5e216ef8a725b2f4ac53754ad0476020b26f4"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4f2e985172bb76c9179e11fb67d9c9ecbee4933740eca2977797094df02498d"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e943c5cbd10e15369be1f371ef303cb413c1008f64d93bd13762ea06ca84d59"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:0d34b0e8e29f80cb2ac8afe8fb7b01a542b136ffbf7e2b9983d11bce49398f68"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:62b8f9f58e9dffaa86fef84db2705457a58e191a962124f2b815026ba79d9aba"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:ebf682bdb0f01b6b1f9a9ffe918aa3ac84fbdadb998ffbfcd5f9b12bd280170f"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3ed0c17e5b6fdd2ac3230bdefa908579971377c36aa4a2f132700fa8145040db"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-win32.whl", hash = "sha256:ac460d89b9759e37eef23fed05184179654882a241f6b2363df194f8940cc55f"}, - {file = "rapidfuzz-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:cf9aceb4227fd09f9a20e505f78487b2089d6420ce232d288522ea0a78b986b9"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:14587df847d0d50bd10cde0a198b5d64eedb7484c72b825f5c2ead6e6ff16eee"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fd94d952299ec73ea63a0fa4b699a2750785b6bb82aa56fd886d9023b86f90ab"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:733bf3d7876bf6d8167e6436f99d6ea16a218ec2c8eb9da6048f20b9cc8733e2"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb28f2b7173ed3678b4630b0c8b21503087d1cd082bae200dc2519ca38b26686"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a4c8a2c5ae4b133fec6b5db1af9a4126ffa6eca18a558fe5b6ab8e330d3d78"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5feb75e905281e5c669e21c98d594acc3b222a8694d9342f17df988766d83748"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d047b01637a31d9bf776b66438f574fd1db856ad14cf296c1f48bb6bef8a5aff"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d9e0a656274ac75ec24499a06c0bc5eee67bcd8276c6061da7c05d549f1b1a61"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:16c982dd3cdd33cf4aac91027a263a081d1a8050dc33a27470367a391a8d1576"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:9a0c878d0980508e90e973a9cbfb591acc370085f2301c6aacadbd8362d52a36"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1d9bcfec5efd55b6268328cccd12956d833582d8da6385231a5c6c6201a1156a"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8171fc6e4645e636161a9ef5b44b20605adbefe23cd990b68d72cae0b9c12509"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-win32.whl", hash = "sha256:35088e759b083398ab3c4154517476e116653b7403604677af9a894179f1042f"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:6d8cc7e6e5c6fbcacdfe3cf7a86b60dcaf216216d86e6879ff52d488e5b11e27"}, - {file = "rapidfuzz-3.9.5-cp39-cp39-win_arm64.whl", hash = "sha256:506547889f18db0acca787ffb9f287757cbfe9f0fadddd4e07c64ce0bd924e13"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f4e0122603af2119579e9f94e172c6e460860fdcdb713164332c1951c13df999"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:e46cd486289d1d8e3dab779c725f5dde77b286185d32e7b874bfc3d161e3a927"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e2c0c8bbe4f4525009e3ad9b94a39cdff5d6378233e754d0b13c29cdfaa75fc"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb47513a17c935f6ee606dcae0ea9d20a3fb0fe9ca597758472ea08be62dc54"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:976ed1105a76935b6a4d2bbc7d577be1b97b43997bcec2f29a0ab48ff6f5d6b1"}, - {file = "rapidfuzz-3.9.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9cf2028edb9ccd21d1d5aaacef2fe3e14bee4343df1c2c0f7373ef6e81013bef"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:926701c8e61319ee2e4888619143f58ddcc0e3e886668269b8e053f2d68c1e92"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:99eaa8dd8a44664813e0bef014775993ef75a134a863bc54cd855a60622203fd"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7508ef727ef4891141dd3ac7a39a2327384ece070521ac9c58f06c27d57c72d5"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f33d05db5bba1d076446c51347a6d93ff24d8f9d01b0b8b15ca8ec8b1ef382"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7252666b85c931d51a59d5308bb6827a67434917ef510747d3ce7e88ec17e7f2"}, - {file = "rapidfuzz-3.9.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d26f7299e2872d18fb7df1bc043e53aa94fc5a4a2a6a9537ad8707579fcb1668"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2b17ecc17322b659962234799e90054e420911b8ca510a7869c2f4419f9f3ecb"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f3e037b9ec621dec0157d81566e7d47a91405e379335cf8f4ed3c20d61db91d8"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c4d1ba2647c8d2a82313c4dde332de750c936b94f016308339e762c2e5e53d"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:876e663b11d9067e1096ea76a2de87227c7b513aff2b60667b20417da74183e4"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adee55488490375c1604b878fbc1eb1a51fe5e6f5bd05047df2f8c6505a48728"}, - {file = "rapidfuzz-3.9.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:abb1ac683671000bd4ec215a494aba687d75a198db72188408154a19ea313ff4"}, - {file = "rapidfuzz-3.9.5.tar.gz", hash = "sha256:257f2406a671371bafd99a2a2c57f991783446bc2176b93a83d1d833e35d36df"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7ed0d0b9c85720f0ae33ac5efc8dc3f60c1489dad5c29d735fbdf2f66f0431f"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f3deff6ab7017ed21b9aec5874a07ad13e6b2a688af055837f88b743c7bfd947"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3f9fc060160507b2704f7d1491bd58453d69689b580cbc85289335b14fe8ca"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e86c2b3827fa6169ad6e7d4b790ce02a20acefb8b78d92fa4249589bbc7a2c"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f982e1aafb4bd8207a5e073b1efef9e68a984e91330e1bbf364f9ed157ed83f0"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9196a51d0ec5eaaaf5bca54a85b7b1e666fc944c332f68e6427503af9fb8c49e"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb5a514064e02585b1cc09da2fe406a6dc1a7e5f3e92dd4f27c53e5f1465ec81"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3a4244f65dbc3580b1275480118c3763f9dc29fc3dd96610560cb5e140a4d4a"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6ebb910a702e41641e1e1dada3843bc11ba9107a33c98daef6945a885a40a07"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:624fbe96115fb39addafa288d583b5493bc76dab1d34d0ebba9987d6871afdf9"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1c59f1c1507b7a557cf3c410c76e91f097460da7d97e51c985343798e9df7a3c"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f6f0256cb27b6a0fb2e1918477d1b56473cd04acfa245376a342e7c15806a396"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-win32.whl", hash = "sha256:24d473d00d23a30a85802b502b417a7f5126019c3beec91a6739fe7b95388b24"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-win_amd64.whl", hash = "sha256:248f6d2612e661e2b5f9a22bbd5862a1600e720da7bb6ad8a55bb1548cdfa423"}, + {file = "rapidfuzz-3.9.6-cp310-cp310-win_arm64.whl", hash = "sha256:e03fdf0e74f346ed7e798135df5f2a0fb8d6b96582b00ebef202dcf2171e1d1d"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:52e4675f642fbc85632f691b67115a243cd4d2a47bdcc4a3d9a79e784518ff97"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1f93a2f13038700bd245b927c46a2017db3dcd4d4ff94687d74b5123689b873b"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b70500bca460264b8141d8040caee22e9cf0418c5388104ff0c73fb69ee28f"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1e037fb89f714a220f68f902fc6300ab7a33349f3ce8ffae668c3b3a40b0b06"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6792f66d59b86ccfad5e247f2912e255c85c575789acdbad8e7f561412ffed8a"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68d9cffe710b67f1969cf996983608cee4490521d96ea91d16bd7ea5dc80ea98"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63daaeeea76da17fa0bbe7fb05cba8ed8064bb1a0edf8360636557f8b6511961"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d214e063bffa13e3b771520b74f674b22d309b5720d4df9918ff3e0c0f037720"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ed443a2062460f44c0346cb9d269b586496b808c2419bbd6057f54061c9b9c75"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5b0c9b227ee0076fb2d58301c505bb837a290ae99ee628beacdb719f0626d749"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:82c9722b7dfaa71e8b61f8c89fed0482567fb69178e139fe4151fc71ed7df782"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c18897c95c0a288347e29537b63608a8f63a5c3cb6da258ac46fcf89155e723e"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-win32.whl", hash = "sha256:3e910cf08944da381159587709daaad9e59d8ff7bca1f788d15928f3c3d49c2a"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-win_amd64.whl", hash = "sha256:59c4a61fab676d37329fc3a671618a461bfeef53a4d0b8b12e3bc24a14e166f8"}, + {file = "rapidfuzz-3.9.6-cp311-cp311-win_arm64.whl", hash = "sha256:8b4afea244102332973377fddbe54ce844d0916e1c67a5123432291717f32ffa"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:70591b28b218fff351b88cdd7f2359a01a71f9f7f5a2e465ce3715ed4b3c422b"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee2d8355c7343c631a03e57540ea06e8717c19ecf5ff64ea07e0498f7f161457"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:708fb675de0f47b9635d1cc6fbbf80d52cb710d0a1abbfae5c84c46e3abbddc3"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d66c247c2d3bb7a9b60567c395a15a929d0ebcc5f4ceedb55bfa202c38c6e0c"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15146301b32e6e3d2b7e8146db1a26747919d8b13690c7f83a4cb5dc111b3a08"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7a03da59b6c7c97e657dd5cd4bcaab5fe4a2affd8193958d6f4d938bee36679"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d2c2fe19e392dbc22695b6c3b2510527e2b774647e79936bbde49db7742d6f1"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:91aaee4c94cb45930684f583ffc4e7c01a52b46610971cede33586cf8a04a12e"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3f5702828c10768f9281180a7ff8597da1e5002803e1304e9519dd0f06d79a85"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ccd1763b608fb4629a0b08f00b3c099d6395e67c14e619f6341b2c8429c2f310"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc7a0d4b2cb166bc46d02c8c9f7551cde8e2f3c9789df3827309433ee9771163"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7496f53d40560a58964207b52586783633f371683834a8f719d6d965d223a2eb"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-win32.whl", hash = "sha256:5eb1a9272ca71bc72be5415c2fa8448a6302ea4578e181bb7da9db855b367df0"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-win_amd64.whl", hash = "sha256:0d21fc3c0ca507a1180152a6dbd129ebaef48facde3f943db5c1055b6e6be56a"}, + {file = "rapidfuzz-3.9.6-cp312-cp312-win_arm64.whl", hash = "sha256:43bb27a57c29dc5fa754496ba6a1a508480d21ae99ac0d19597646c16407e9f3"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:83a5ac6547a9d6eedaa212975cb8f2ce2aa07e6e30833b40e54a52b9f9999aa4"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:10f06139142ecde67078ebc9a745965446132b998f9feebffd71acdf218acfcc"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74720c3f24597f76c7c3e2c4abdff55f1664f4766ff5b28aeaa689f8ffba5fab"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce2bce52b5c150878e558a0418c2b637fb3dbb6eb38e4eb27d24aa839920483e"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1611199f178793ca9a060c99b284e11f6d7d124998191f1cace9a0245334d219"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0308b2ad161daf502908a6e21a57c78ded0258eba9a8f5e2545e2dafca312507"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3eda91832201b86e3b70835f91522587725bec329ec68f2f7faf5124091e5ca7"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ece873c093aedd87fc07c2a7e333d52e458dc177016afa1edaf157e82b6914d8"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d97d3c9d209d5c30172baea5966f2129e8a198fec4a1aeb2f92abb6e82a2edb1"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6c4550d0db4931f5ebe9f0678916d1b06f06f5a99ba0b8a48b9457fd8959a7d4"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b6b8dd4af6324fc325d9483bec75ecf9be33e590928c9202d408e4eafff6a0a6"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16122ae448bc89e2bea9d81ce6cb0f751e4e07da39bd1e70b95cae2493857853"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-win32.whl", hash = "sha256:71cc168c305a4445109cd0d4925406f6e66bcb48fde99a1835387c58af4ecfe9"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-win_amd64.whl", hash = "sha256:59ee78f2ecd53fef8454909cda7400fe2cfcd820f62b8a5d4dfe930102268054"}, + {file = "rapidfuzz-3.9.6-cp313-cp313-win_arm64.whl", hash = "sha256:58b4ce83f223605c358ae37e7a2d19a41b96aa65b1fede99cc664c9053af89ac"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9f469dbc9c4aeaac7dd005992af74b7dff94aa56a3ea063ce64e4b3e6736dd2f"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a9ed7ad9adb68d0fe63a156fe752bbf5f1403ed66961551e749641af2874da92"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ffe48ffbeedf78d120ddfb9d583f2ca906712159a4e9c3c743c9f33e7b1775"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8502ccdea9084d54b6f737d96a3b60a84e3afed9d016686dc979b49cdac71613"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a4bec4956e06b170ca896ba055d08d4c457dac745548172443982956a80e118"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c0488b1c273be39e109ff885ccac0448b2fa74dea4c4dc676bcf756c15f16d6"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0542c036cb6acf24edd2c9e0411a67d7ba71e29e4d3001a082466b86fc34ff30"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0a96b52c9f26857bf009e270dcd829381e7a634f7ddd585fa29b87d4c82146d9"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:6edd3cd7c4aa8c68c716d349f531bd5011f2ca49ddade216bb4429460151559f"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:50b2fb55d7ed58c66d49c9f954acd8fc4a3f0e9fd0ff708299bd8abb68238d0e"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:32848dfe54391636b84cda1823fd23e5a6b1dbb8be0e9a1d80e4ee9903820994"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:29146cb7a1bf69c87e928b31bffa54f066cb65639d073b36e1425f98cccdebc6"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-win32.whl", hash = "sha256:aed13e5edacb0ecadcc304cc66e93e7e77ff24f059c9792ee602c0381808e10c"}, + {file = "rapidfuzz-3.9.6-cp38-cp38-win_amd64.whl", hash = "sha256:af440e36b828922256d0b4d79443bf2cbe5515fc4b0e9e96017ec789b36bb9fc"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:efa674b407424553024522159296690d99d6e6b1192cafe99ca84592faff16b4"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0b40ff76ee19b03ebf10a0a87938f86814996a822786c41c3312d251b7927849"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16a6c7997cb5927ced6f617122eb116ba514ec6b6f60f4803e7925ef55158891"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3f42504bdc8d770987fc3d99964766d42b2a03e4d5b0f891decdd256236bae0"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9462aa2be9f60b540c19a083471fdf28e7cf6434f068b631525b5e6251b35e"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1629698e68f47609a73bf9e73a6da3a4cac20bc710529215cbdf111ab603665b"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68bc7621843d8e9a7fd1b1a32729465bf94b47b6fb307d906da168413331f8d6"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c6254c50f15bc2fcc33cb93a95a81b702d9e6590f432a7f7822b8c7aba9ae288"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7e535a114fa575bc143e175e4ca386a467ec8c42909eff500f5f0f13dc84e3e0"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d50acc0e9d67e4ba7a004a14c42d1b1e8b6ca1c515692746f4f8e7948c673167"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fa742ec60bec53c5a211632cf1d31b9eb5a3c80f1371a46a23ac25a1fa2ab209"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c256fa95d29cbe5aa717db790b231a9a5b49e5983d50dc9df29d364a1db5e35b"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-win32.whl", hash = "sha256:89acbf728b764421036c173a10ada436ecca22999851cdc01d0aa904c70d362d"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-win_amd64.whl", hash = "sha256:c608fcba8b14d86c04cb56b203fed31a96e8a1ebb4ce99e7b70313c5bf8cf497"}, + {file = "rapidfuzz-3.9.6-cp39-cp39-win_arm64.whl", hash = "sha256:d41c00ded0e22e9dba88ff23ebe0dc9d2a5f21ba2f88e185ea7374461e61daa9"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a65c2f63218ea2dedd56fc56361035e189ca123bd9c9ce63a9bef6f99540d681"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:680dc78a5f889d3b89f74824b89fe357f49f88ad10d2c121e9c3ad37bac1e4eb"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8ca862927a0b05bd825e46ddf82d0724ea44b07d898ef639386530bf9b40f15"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2116fa1fbff21fa52cd46f3cfcb1e193ba1d65d81f8b6e123193451cd3d6c15e"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dcb7d9afd740370a897c15da61d3d57a8d54738d7c764a99cedb5f746d6a003"}, + {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1a5bd6401bb489e14cbb5981c378d53ede850b7cc84b2464cad606149cc4e17d"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:29fda70b9d03e29df6fc45cc27cbcc235534b1b0b2900e0a3ae0b43022aaeef5"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:88144f5f52ae977df9352029488326afadd7a7f42c6779d486d1f82d43b2b1f2"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:715aeaabafba2709b9dd91acb2a44bad59d60b4616ef90c08f4d4402a3bbca60"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af26ebd3714224fbf9bebbc27bdbac14f334c15f5d7043699cd694635050d6ca"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101bd2df438861a005ed47c032631b7857dfcdb17b82beeeb410307983aac61d"}, + {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2185e8e29809b97ad22a7f99281d1669a89bdf5fa1ef4ef1feca36924e675367"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9e53c72d08f0e9c6e4a369e52df5971f311305b4487690c62e8dd0846770260c"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a0cb157162f0cdd62e538c7bd298ff669847fc43a96422811d5ab933f4c16c3a"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bb5ff2bd48132ed5e7fbb8f619885facb2e023759f2519a448b2c18afe07e5d"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dc37f601865e8407e3a8037ffbc3afe0b0f837b2146f7632bd29d087385babe"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a657eee4b94668faf1fa2703bdd803654303f7e468eb9ba10a664d867ed9e779"}, + {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:51be6ab5b1d5bb32abd39718f2a5e3835502e026a8272d139ead295c224a6f5e"}, + {file = "rapidfuzz-3.9.6.tar.gz", hash = "sha256:5cf2a7d621e4515fee84722e93563bf77ff2cbe832a77a48b81f88f9e23b9e8d"}, ] [package.extras] @@ -3505,114 +3557,114 @@ files = [ [[package]] name = "rpds-py" -version = "0.19.1" +version = "0.20.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.19.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:aaf71f95b21f9dc708123335df22e5a2fef6307e3e6f9ed773b2e0938cc4d491"}, - {file = "rpds_py-0.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca0dda0c5715efe2ab35bb83f813f681ebcd2840d8b1b92bfc6fe3ab382fae4a"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81db2e7282cc0487f500d4db203edc57da81acde9e35f061d69ed983228ffe3b"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1a8dfa125b60ec00c7c9baef945bb04abf8ac772d8ebefd79dae2a5f316d7850"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271accf41b02687cef26367c775ab220372ee0f4925591c6796e7c148c50cab5"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9bc4161bd3b970cd6a6fcda70583ad4afd10f2750609fb1f3ca9505050d4ef3"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0cf2a0dbb5987da4bd92a7ca727eadb225581dd9681365beba9accbe5308f7d"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b5e28e56143750808c1c79c70a16519e9bc0a68b623197b96292b21b62d6055c"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c7af6f7b80f687b33a4cdb0a785a5d4de1fb027a44c9a049d8eb67d5bfe8a687"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e429fc517a1c5e2a70d576077231538a98d59a45dfc552d1ac45a132844e6dfb"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d2dbd8f4990d4788cb122f63bf000357533f34860d269c1a8e90ae362090ff3a"}, - {file = "rpds_py-0.19.1-cp310-none-win32.whl", hash = "sha256:e0f9d268b19e8f61bf42a1da48276bcd05f7ab5560311f541d22557f8227b866"}, - {file = "rpds_py-0.19.1-cp310-none-win_amd64.whl", hash = "sha256:df7c841813f6265e636fe548a49664c77af31ddfa0085515326342a751a6ba51"}, - {file = "rpds_py-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:902cf4739458852fe917104365ec0efbea7d29a15e4276c96a8d33e6ed8ec137"}, - {file = "rpds_py-0.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3d73022990ab0c8b172cce57c69fd9a89c24fd473a5e79cbce92df87e3d9c48"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3837c63dd6918a24de6c526277910e3766d8c2b1627c500b155f3eecad8fad65"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cdb7eb3cf3deb3dd9e7b8749323b5d970052711f9e1e9f36364163627f96da58"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26ab43b6d65d25b1a333c8d1b1c2f8399385ff683a35ab5e274ba7b8bb7dc61c"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75130df05aae7a7ac171b3b5b24714cffeabd054ad2ebc18870b3aa4526eba23"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c34f751bf67cab69638564eee34023909380ba3e0d8ee7f6fe473079bf93f09b"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2671cb47e50a97f419a02cd1e0c339b31de017b033186358db92f4d8e2e17d8"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c73254c256081704dba0a333457e2fb815364018788f9b501efe7c5e0ada401"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4383beb4a29935b8fa28aca8fa84c956bf545cb0c46307b091b8d312a9150e6a"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dbceedcf4a9329cc665452db1aaf0845b85c666e4885b92ee0cddb1dbf7e052a"}, - {file = "rpds_py-0.19.1-cp311-none-win32.whl", hash = "sha256:f0a6d4a93d2a05daec7cb885157c97bbb0be4da739d6f9dfb02e101eb40921cd"}, - {file = "rpds_py-0.19.1-cp311-none-win_amd64.whl", hash = "sha256:c149a652aeac4902ecff2dd93c3b2681c608bd5208c793c4a99404b3e1afc87c"}, - {file = "rpds_py-0.19.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:56313be667a837ff1ea3508cebb1ef6681d418fa2913a0635386cf29cff35165"}, - {file = "rpds_py-0.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d1d7539043b2b31307f2c6c72957a97c839a88b2629a348ebabe5aa8b626d6b"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1dc59a5e7bc7f44bd0c048681f5e05356e479c50be4f2c1a7089103f1621d5"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8f78398e67a7227aefa95f876481485403eb974b29e9dc38b307bb6eb2315ea"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef07a0a1d254eeb16455d839cef6e8c2ed127f47f014bbda64a58b5482b6c836"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8124101e92c56827bebef084ff106e8ea11c743256149a95b9fd860d3a4f331f"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08ce9c95a0b093b7aec75676b356a27879901488abc27e9d029273d280438505"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b02dd77a2de6e49078c8937aadabe933ceac04b41c5dde5eca13a69f3cf144e"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4dd02e29c8cbed21a1875330b07246b71121a1c08e29f0ee3db5b4cfe16980c4"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9c7042488165f7251dc7894cd533a875d2875af6d3b0e09eda9c4b334627ad1c"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f809a17cc78bd331e137caa25262b507225854073fd319e987bd216bed911b7c"}, - {file = "rpds_py-0.19.1-cp312-none-win32.whl", hash = "sha256:3ddab996807c6b4227967fe1587febade4e48ac47bb0e2d3e7858bc621b1cace"}, - {file = "rpds_py-0.19.1-cp312-none-win_amd64.whl", hash = "sha256:32e0db3d6e4f45601b58e4ac75c6f24afbf99818c647cc2066f3e4b192dabb1f"}, - {file = "rpds_py-0.19.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:747251e428406b05fc86fee3904ee19550c4d2d19258cef274e2151f31ae9d38"}, - {file = "rpds_py-0.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dc733d35f861f8d78abfaf54035461e10423422999b360966bf1c443cbc42705"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbda75f245caecff8faa7e32ee94dfaa8312a3367397975527f29654cd17a6ed"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd04d8cab16cab5b0a9ffc7d10f0779cf1120ab16c3925404428f74a0a43205a"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2d66eb41ffca6cc3c91d8387509d27ba73ad28371ef90255c50cb51f8953301"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdf4890cda3b59170009d012fca3294c00140e7f2abe1910e6a730809d0f3f9b"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1fa67ef839bad3815124f5f57e48cd50ff392f4911a9f3cf449d66fa3df62a5"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b82c9514c6d74b89a370c4060bdb80d2299bc6857e462e4a215b4ef7aa7b090e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c7b07959866a6afb019abb9564d8a55046feb7a84506c74a6f197cbcdf8a208e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4f580ae79d0b861dfd912494ab9d477bea535bfb4756a2269130b6607a21802e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c6d20c8896c00775e6f62d8373aba32956aa0b850d02b5ec493f486c88e12859"}, - {file = "rpds_py-0.19.1-cp313-none-win32.whl", hash = "sha256:afedc35fe4b9e30ab240b208bb9dc8938cb4afe9187589e8d8d085e1aacb8309"}, - {file = "rpds_py-0.19.1-cp313-none-win_amd64.whl", hash = "sha256:1d4af2eb520d759f48f1073ad3caef997d1bfd910dc34e41261a595d3f038a94"}, - {file = "rpds_py-0.19.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:34bca66e2e3eabc8a19e9afe0d3e77789733c702c7c43cd008e953d5d1463fde"}, - {file = "rpds_py-0.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:24f8ae92c7fae7c28d0fae9b52829235df83f34847aa8160a47eb229d9666c7b"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71157f9db7f6bc6599a852852f3389343bea34315b4e6f109e5cbc97c1fb2963"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d494887d40dc4dd0d5a71e9d07324e5c09c4383d93942d391727e7a40ff810b"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3661e6d4ba63a094138032c1356d557de5b3ea6fd3cca62a195f623e381c76"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97fbb77eaeb97591efdc654b8b5f3ccc066406ccfb3175b41382f221ecc216e8"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cc4bc73e53af8e7a42c8fd7923bbe35babacfa7394ae9240b3430b5dcf16b2a"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:35af5e4d5448fa179fd7fff0bba0fba51f876cd55212f96c8bbcecc5c684ae5c"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3511f6baf8438326e351097cecd137eb45c5f019944fe0fd0ae2fea2fd26be39"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:57863d16187995c10fe9cf911b897ed443ac68189179541734502353af33e693"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9e318e6786b1e750a62f90c6f7fa8b542102bdcf97c7c4de2a48b50b61bd36ec"}, - {file = "rpds_py-0.19.1-cp38-none-win32.whl", hash = "sha256:53dbc35808c6faa2ce3e48571f8f74ef70802218554884787b86a30947842a14"}, - {file = "rpds_py-0.19.1-cp38-none-win_amd64.whl", hash = "sha256:8df1c283e57c9cb4d271fdc1875f4a58a143a2d1698eb0d6b7c0d7d5f49c53a1"}, - {file = "rpds_py-0.19.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e76c902d229a3aa9d5ceb813e1cbcc69bf5bda44c80d574ff1ac1fa3136dea71"}, - {file = "rpds_py-0.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de1f7cd5b6b351e1afd7568bdab94934d656abe273d66cda0ceea43bbc02a0c2"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fc5a84777cb61692d17988989690d6f34f7f95968ac81398d67c0d0994a897"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:74129d5ffc4cde992d89d345f7f7d6758320e5d44a369d74d83493429dad2de5"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e360188b72f8080fefa3adfdcf3618604cc8173651c9754f189fece068d2a45"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13e6d4840897d4e4e6b2aa1443e3a8eca92b0402182aafc5f4ca1f5e24f9270a"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f09529d2332264a902688031a83c19de8fda5eb5881e44233286b9c9ec91856d"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0d4b52811dcbc1aba08fd88d475f75b4f6db0984ba12275d9bed1a04b2cae9b5"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd635c2c4043222d80d80ca1ac4530a633102a9f2ad12252183bcf338c1b9474"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f35b34a5184d5e0cc360b61664c1c06e866aab077b5a7c538a3e20c8fcdbf90b"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d4ec0046facab83012d821b33cead742a35b54575c4edfb7ed7445f63441835f"}, - {file = "rpds_py-0.19.1-cp39-none-win32.whl", hash = "sha256:f5b8353ea1a4d7dfb59a7f45c04df66ecfd363bb5b35f33b11ea579111d4655f"}, - {file = "rpds_py-0.19.1-cp39-none-win_amd64.whl", hash = "sha256:1fb93d3486f793d54a094e2bfd9cd97031f63fcb5bc18faeb3dd4b49a1c06523"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7d5c7e32f3ee42f77d8ff1a10384b5cdcc2d37035e2e3320ded909aa192d32c3"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:89cc8921a4a5028d6dd388c399fcd2eef232e7040345af3d5b16c04b91cf3c7e"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca34e913d27401bda2a6f390d0614049f5a95b3b11cd8eff80fe4ec340a1208"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5953391af1405f968eb5701ebbb577ebc5ced8d0041406f9052638bafe52209d"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:840e18c38098221ea6201f091fc5d4de6128961d2930fbbc96806fb43f69aec1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d8b735c4d162dc7d86a9cf3d717f14b6c73637a1f9cd57fe7e61002d9cb1972"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce757c7c90d35719b38fa3d4ca55654a76a40716ee299b0865f2de21c146801c"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9421b23c85f361a133aa7c5e8ec757668f70343f4ed8fdb5a4a14abd5437244"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3b823be829407393d84ee56dc849dbe3b31b6a326f388e171555b262e8456cc1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:5e58b61dcbb483a442c6239c3836696b79f2cd8e7eec11e12155d3f6f2d886d1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39d67896f7235b2c886fb1ee77b1491b77049dcef6fbf0f401e7b4cbed86bbd4"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8b32cd4ab6db50c875001ba4f5a6b30c0f42151aa1fbf9c2e7e3674893fb1dc4"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1c32e41de995f39b6b315d66c27dea3ef7f7c937c06caab4c6a79a5e09e2c415"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a129c02b42d46758c87faeea21a9f574e1c858b9f358b6dd0bbd71d17713175"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:346557f5b1d8fd9966059b7a748fd79ac59f5752cd0e9498d6a40e3ac1c1875f"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31e450840f2f27699d014cfc8865cc747184286b26d945bcea6042bb6aa4d26e"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01227f8b3e6c8961490d869aa65c99653df80d2f0a7fde8c64ebddab2b9b02fd"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69084fd29bfeff14816666c93a466e85414fe6b7d236cfc108a9c11afa6f7301"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d2b88efe65544a7d5121b0c3b003ebba92bfede2ea3577ce548b69c5235185"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ea961a674172ed2235d990d7edf85d15d8dfa23ab8575e48306371c070cda67"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5beffdbe766cfe4fb04f30644d822a1080b5359df7db3a63d30fa928375b2720"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:720f3108fb1bfa32e51db58b832898372eb5891e8472a8093008010911e324c5"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c2087dbb76a87ec2c619253e021e4fb20d1a72580feeaa6892b0b3d955175a71"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ddd50f18ebc05ec29a0d9271e9dbe93997536da3546677f8ca00b76d477680c"}, - {file = "rpds_py-0.19.1.tar.gz", hash = "sha256:31dd5794837f00b46f4096aa8ccaa5972f73a938982e32ed817bb520c465e520"}, + {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, + {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, + {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, + {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, + {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, + {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, + {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, + {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, + {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, + {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, + {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, + {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, + {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, + {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, + {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, ] [[package]] @@ -3690,18 +3742,18 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "72.1.0" +version = "72.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-72.1.0-py3-none-any.whl", hash = "sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1"}, - {file = "setuptools-72.1.0.tar.gz", hash = "sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec"}, + {file = "setuptools-72.2.0-py3-none-any.whl", hash = "sha256:f11dd94b7bae3a156a95ec151f24e4637fb4fa19c878e4d191bfb8b2d82728c4"}, + {file = "setuptools-72.2.0.tar.gz", hash = "sha256:80aacbf633704e9c8bfa1d99fa5dd4dc59573efcf9e4042c13d3bcef91ac2ef9"}, ] [package.extras] core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -3750,13 +3802,13 @@ files = [ [[package]] name = "soupsieve" -version = "2.5" +version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.8" files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, ] [[package]] @@ -4041,13 +4093,13 @@ files = [ [[package]] name = "tomlkit" -version = "0.13.0" +version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" files = [ - {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, - {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] @@ -4228,13 +4280,13 @@ files = [ [[package]] name = "webcolors" -version = "24.6.0" +version = "24.8.0" description = "A library for working with the color formats defined by HTML and CSS." optional = false python-versions = ">=3.8" files = [ - {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, - {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, + {file = "webcolors-24.8.0-py3-none-any.whl", hash = "sha256:fc4c3b59358ada164552084a8ebee637c221e4059267d0f8325b3b560f6c7f0a"}, + {file = "webcolors-24.8.0.tar.gz", hash = "sha256:08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d"}, ] [package.extras] @@ -4378,13 +4430,13 @@ test = ["pytest"] [[package]] name = "zipp" -version = "3.19.2" +version = "3.20.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, + {file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"}, + {file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"}, ] [package.extras] diff --git a/requirements.txt b/requirements.txt index abc2d519..83c162c4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,18 +5,18 @@ argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.13" arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" -attrs==24.1.0 ; python_version >= "3.9" and python_version < "3.13" -babel==2.15.0 ; python_version >= "3.9" and python_version < "3.13" +attrs==24.2.0 ; python_version >= "3.9" and python_version < "3.13" +babel==2.16.0 ; python_version >= "3.9" and python_version < "3.13" beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "3.13" bleach==6.1.0 ; python_version >= "3.9" and python_version < "3.13" certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.13" -cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" +cffi==1.17.0 ; python_version >= "3.9" and python_version < "3.13" charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" comm==0.2.2 ; python_version >= "3.9" and python_version < "3.13" contourpy==1.2.1 ; python_version >= "3.9" and python_version < "3.13" cycler==0.12.1 ; python_version >= "3.9" and python_version < "3.13" -debugpy==1.8.3 ; python_version >= "3.9" and python_version < "3.13" +debugpy==1.8.5 ; python_version >= "3.9" and python_version < "3.13" decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" @@ -31,7 +31,7 @@ httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.13" httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10" -importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.13" +importlib-resources==6.4.1 ; python_version >= "3.9" and python_version < "3.13" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" ipython==8.18.1 ; python_version >= "3.9" and python_version < "3.13" @@ -95,7 +95,7 @@ python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" pytz==2024.1 ; python_version >= "3.9" and python_version < "3.13" pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.9" and python_version < "3.13" pywinpty==2.0.13 ; python_version >= "3.9" and python_version < "3.13" and os_name == "nt" -pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" +pyyaml==6.0.2 ; python_version >= "3.9" and python_version < "3.13" pyzmq==26.1.0 ; python_version >= "3.9" and python_version < "3.13" qtconsole==5.5.2 ; python_version >= "3.9" and python_version < "3.13" qtpy==2.4.1 ; python_version >= "3.9" and python_version < "3.13" @@ -103,13 +103,13 @@ referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.13" requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.13" rfc3986-validator==0.1.1 ; python_version >= "3.9" and python_version < "3.13" -rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "3.13" +rpds-py==0.20.0 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.1 ; python_version >= "3.9" and python_version < "3.13" send2trash==1.8.3 ; python_version >= "3.9" and python_version < "3.13" -setuptools==72.1.0 ; python_version >= "3.9" and python_version < "3.13" +setuptools==72.2.0 ; python_version >= "3.9" and python_version < "3.13" six==1.16.0 ; python_version >= "3.9" and python_version < "3.13" sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" -soupsieve==2.5 ; python_version >= "3.9" and python_version < "3.13" +soupsieve==2.6 ; python_version >= "3.9" and python_version < "3.13" stack-data==0.6.3 ; python_version >= "3.9" and python_version < "3.13" tenacity==9.0.0 ; python_version >= "3.9" and python_version < "3.13" terminado==0.18.1 ; python_version >= "3.9" and python_version < "3.13" @@ -124,9 +124,9 @@ unlzw3==0.2.2 ; python_version >= "3.9" and python_version < "3.13" uri-template==1.3.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.2 ; python_version >= "3.9" and python_version < "3.13" wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.13" -webcolors==24.6.0 ; python_version >= "3.9" and python_version < "3.13" +webcolors==24.8.0 ; python_version >= "3.9" and python_version < "3.13" webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" -zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" +zipp==3.20.0 ; python_version >= "3.9" and python_version < "3.10" From dd66e7f2e66ebb6224f9a96a510987cc9b9a287e Mon Sep 17 00:00:00 2001 From: betaBison Date: Thu, 15 Aug 2024 07:31:47 -0700 Subject: [PATCH 38/40] revert python reqs --- docs/source/requirements.txt | 20 +- poetry.lock | 379 ++++++++++++++++++++++++----------- pyproject.toml | 16 +- requirements.txt | 6 +- 4 files changed, 279 insertions(+), 142 deletions(-) diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 2b6effbe..2ace28c9 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -4,7 +4,7 @@ appnope==0.1.4 ; python_version >= "3.9" and python_version < "3.13" and platfor argon2-cffi-bindings==21.2.0 ; python_version >= "3.9" and python_version < "3.13" argon2-cffi==23.1.0 ; python_version >= "3.9" and python_version < "3.13" arrow==1.3.0 ; python_version >= "3.9" and python_version < "3.13" -astroid==3.2.4 ; python_version >= "3.9" and python_version < "3.13" +astroid==2.15.8 ; python_version >= "3.9" and python_version < "3.13" asttokens==2.4.1 ; python_version >= "3.9" and python_version < "3.13" async-lru==2.0.4 ; python_version >= "3.9" and python_version < "3.13" attrs==24.2.0 ; python_version >= "3.9" and python_version < "3.13" @@ -29,7 +29,7 @@ decorator==5.1.1 ; python_version >= "3.9" and python_version < "3.13" defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "3.13" dill==0.3.8 ; python_version >= "3.9" and python_version < "3.13" distlib==0.3.8 ; python_version >= "3.9" and python_version < "3.13" -docutils==0.20.1 ; python_version >= "3.9" and python_version < "3.13" +docutils==0.18.1 ; python_version >= "3.9" and python_version < "3.13" dulwich==0.21.7 ; python_version >= "3.9" and python_version < "3.13" exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" executing==2.0.1 ; python_version >= "3.9" and python_version < "3.13" @@ -45,7 +45,7 @@ httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" imagesize==1.4.1 ; python_version >= "3.9" and python_version < "3.13" importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.12" -importlib-resources==6.4.1 ; python_version >= "3.9" and python_version < "3.13" +importlib-resources==6.4.2 ; python_version >= "3.9" and python_version < "3.13" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" installer==0.7.0 ; python_version >= "3.9" and python_version < "3.13" ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" @@ -77,9 +77,10 @@ jupyterlab==4.2.4 ; python_version >= "3.9" and python_version < "3.13" kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" keyring==24.3.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" +lazy-object-proxy==1.10.0 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" -matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.9.2 ; python_version >= "3.9" and python_version < "3.13" mccabe==0.7.0 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" more-itertools==10.4.0 ; python_version >= "3.9" and python_version < "3.13" @@ -93,7 +94,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==2.0.1 ; python_version >= "3.9" and python_version < "3.13" +numpy==1.26.4 ; python_version >= "3.9" and python_version < "3.13" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" @@ -117,11 +118,11 @@ pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "3.13" pycparser==2.22 ; python_version >= "3.9" and python_version < "3.13" pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.13" pylint-exit==1.2.0 ; python_version >= "3.9" and python_version < "3.13" -pylint==3.2.6 ; python_version >= "3.9" and python_version < "3.13" +pylint==2.17.7 ; python_version >= "3.9" and python_version < "3.13" pynmea2==1.19.0 ; python_version >= "3.9" and python_version < "3.13" pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "3.13" pyproject-hooks==1.1.0 ; python_version >= "3.9" and python_version < "3.13" -pytest-cov==5.0.0 ; python_version >= "3.9" and python_version < "3.13" +pytest-cov==4.1.0 ; python_version >= "3.9" and python_version < "3.13" pytest==8.3.2 ; python_version >= "3.9" and python_version < "3.13" python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.13" python-json-logger==2.0.7 ; python_version >= "3.9" and python_version < "3.13" @@ -150,8 +151,8 @@ sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.13" snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.13" soupsieve==2.6 ; python_version >= "3.9" and python_version < "3.13" sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "3.13" -sphinx-rtd-theme==2.0.0 ; python_version >= "3.9" and python_version < "3.13" -sphinx==7.4.7 ; python_version >= "3.9" and python_version < "3.13" +sphinx-rtd-theme==1.3.0 ; python_version >= "3.9" and python_version < "3.13" +sphinx==7.3.7 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-applehelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-devhelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.9" and python_version < "3.13" @@ -182,6 +183,7 @@ webcolors==24.8.0 ; python_version >= "3.9" and python_version < "3.13" webencodings==0.5.1 ; python_version >= "3.9" and python_version < "3.13" websocket-client==1.8.0 ; python_version >= "3.9" and python_version < "3.13" widgetsnbextension==4.0.11 ; python_version >= "3.9" and python_version < "3.13" +wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.13" xarray==2024.7.0 ; python_version >= "3.9" and python_version < "3.13" xattr==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "darwin" zipp==3.20.0 ; python_version >= "3.9" and python_version < "3.12" diff --git a/poetry.lock b/poetry.lock index c612dd04..fcc94d1e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -122,17 +122,22 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[package]] name = "astroid" -version = "3.2.4" +version = "2.15.8" description = "An abstract syntax tree for Python with inference support." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.7.2" files = [ - {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, - {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, + {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, + {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, ] [package.dependencies] +lazy-object-proxy = ">=1.4.0" typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] [[package]] name = "asttokens" @@ -822,13 +827,13 @@ files = [ [[package]] name = "docutils" -version = "0.20.1" +version = "0.18.1" description = "Docutils -- Python Documentation Utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ - {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, - {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] [[package]] @@ -1208,13 +1213,13 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p [[package]] name = "importlib-resources" -version = "6.4.1" +version = "6.4.2" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.4.1-py3-none-any.whl", hash = "sha256:8fbee7ba7376ca7c47ce8d31b96b93d8787349845f01ebdbee5ef90409035234"}, - {file = "importlib_resources-6.4.1.tar.gz", hash = "sha256:5ede8acf5d752abda46fb6922a4a6ab782b6d904dfd362bf2d8b857eee1759d9"}, + {file = "importlib_resources-6.4.2-py3-none-any.whl", hash = "sha256:8bba8c54a8a3afaa1419910845fa26ebd706dc716dd208d9b158b4b6966f5c5c"}, + {file = "importlib_resources-6.4.2.tar.gz", hash = "sha256:6cbfbefc449cc6e2095dd184691b7a12a04f40bc75dd4c55d31c34f174cdf57a"}, ] [package.dependencies] @@ -1915,6 +1920,52 @@ files = [ {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, ] +[[package]] +name = "lazy-object-proxy" +version = "1.10.0" +description = "A fast and thorough lazy object proxy." +optional = false +python-versions = ">=3.8" +files = [ + {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, + {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, +] + [[package]] name = "markupsafe" version = "2.1.5" @@ -1986,39 +2037,51 @@ files = [ [[package]] name = "matplotlib" -version = "3.8.4" +version = "3.9.2" description = "Python plotting package" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.8.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:abc9d838f93583650c35eca41cfcec65b2e7cb50fd486da6f0c49b5e1ed23014"}, - {file = "matplotlib-3.8.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f65c9f002d281a6e904976007b2d46a1ee2bcea3a68a8c12dda24709ddc9106"}, - {file = "matplotlib-3.8.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce1edd9f5383b504dbc26eeea404ed0a00656c526638129028b758fd43fc5f10"}, - {file = "matplotlib-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecd79298550cba13a43c340581a3ec9c707bd895a6a061a78fa2524660482fc0"}, - {file = "matplotlib-3.8.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:90df07db7b599fe7035d2f74ab7e438b656528c68ba6bb59b7dc46af39ee48ef"}, - {file = "matplotlib-3.8.4-cp310-cp310-win_amd64.whl", hash = "sha256:ac24233e8f2939ac4fd2919eed1e9c0871eac8057666070e94cbf0b33dd9c338"}, - {file = "matplotlib-3.8.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:72f9322712e4562e792b2961971891b9fbbb0e525011e09ea0d1f416c4645661"}, - {file = "matplotlib-3.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:232ce322bfd020a434caaffbd9a95333f7c2491e59cfc014041d95e38ab90d1c"}, - {file = "matplotlib-3.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6addbd5b488aedb7f9bc19f91cd87ea476206f45d7116fcfe3d31416702a82fa"}, - {file = "matplotlib-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc4ccdc64e3039fc303defd119658148f2349239871db72cd74e2eeaa9b80b71"}, - {file = "matplotlib-3.8.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b7a2a253d3b36d90c8993b4620183b55665a429da8357a4f621e78cd48b2b30b"}, - {file = "matplotlib-3.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:8080d5081a86e690d7688ffa542532e87f224c38a6ed71f8fbed34dd1d9fedae"}, - {file = "matplotlib-3.8.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6485ac1f2e84676cff22e693eaa4fbed50ef5dc37173ce1f023daef4687df616"}, - {file = "matplotlib-3.8.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c89ee9314ef48c72fe92ce55c4e95f2f39d70208f9f1d9db4e64079420d8d732"}, - {file = "matplotlib-3.8.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50bac6e4d77e4262c4340d7a985c30912054745ec99756ce213bfbc3cb3808eb"}, - {file = "matplotlib-3.8.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f51c4c869d4b60d769f7b4406eec39596648d9d70246428745a681c327a8ad30"}, - {file = "matplotlib-3.8.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b12ba985837e4899b762b81f5b2845bd1a28f4fdd1a126d9ace64e9c4eb2fb25"}, - {file = "matplotlib-3.8.4-cp312-cp312-win_amd64.whl", hash = "sha256:7a6769f58ce51791b4cb8b4d7642489df347697cd3e23d88266aaaee93b41d9a"}, - {file = "matplotlib-3.8.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:843cbde2f0946dadd8c5c11c6d91847abd18ec76859dc319362a0964493f0ba6"}, - {file = "matplotlib-3.8.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c13f041a7178f9780fb61cc3a2b10423d5e125480e4be51beaf62b172413b67"}, - {file = "matplotlib-3.8.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb44f53af0a62dc80bba4443d9b27f2fde6acfdac281d95bc872dc148a6509cc"}, - {file = "matplotlib-3.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:606e3b90897554c989b1e38a258c626d46c873523de432b1462f295db13de6f9"}, - {file = "matplotlib-3.8.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9bb0189011785ea794ee827b68777db3ca3f93f3e339ea4d920315a0e5a78d54"}, - {file = "matplotlib-3.8.4-cp39-cp39-win_amd64.whl", hash = "sha256:6209e5c9aaccc056e63b547a8152661324404dd92340a6e479b3a7f24b42a5d0"}, - {file = "matplotlib-3.8.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c7064120a59ce6f64103c9cefba8ffe6fba87f2c61d67c401186423c9a20fd35"}, - {file = "matplotlib-3.8.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e47eda4eb2614300fc7bb4657fced3e83d6334d03da2173b09e447418d499f"}, - {file = "matplotlib-3.8.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:493e9f6aa5819156b58fce42b296ea31969f2aab71c5b680b4ea7a3cb5c07d94"}, - {file = "matplotlib-3.8.4.tar.gz", hash = "sha256:8aac397d5e9ec158960e31c381c5ffc52ddd52bd9a47717e2a694038167dffea"}, + {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, + {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, + {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, + {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, + {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, + {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, + {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, + {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, + {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, + {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, + {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, + {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, + {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, + {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, ] [package.dependencies] @@ -2027,12 +2090,15 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.3.1" -numpy = ">=1.21" +numpy = ">=1.23" packaging = ">=20.0" pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + [[package]] name = "matplotlib-inline" version = "0.1.7" @@ -2405,56 +2471,47 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "2.0.1" +version = "1.26.4" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134"}, - {file = "numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42"}, - {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02"}, - {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101"}, - {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9"}, - {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015"}, - {file = "numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87"}, - {file = "numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82"}, - {file = "numpy-2.0.1-cp310-cp310-win32.whl", hash = "sha256:7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1"}, - {file = "numpy-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868"}, - {file = "numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268"}, - {file = "numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e"}, - {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343"}, - {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b"}, - {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe"}, - {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67"}, - {file = "numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7"}, - {file = "numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55"}, - {file = "numpy-2.0.1-cp311-cp311-win32.whl", hash = "sha256:36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4"}, - {file = "numpy-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8"}, - {file = "numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac"}, - {file = "numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4"}, - {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1"}, - {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587"}, - {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8"}, - {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a"}, - {file = "numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7"}, - {file = "numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b"}, - {file = "numpy-2.0.1-cp312-cp312-win32.whl", hash = "sha256:173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf"}, - {file = "numpy-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171"}, - {file = "numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414"}, - {file = "numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef"}, - {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06"}, - {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c"}, - {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59"}, - {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26"}, - {file = "numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018"}, - {file = "numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c"}, - {file = "numpy-2.0.1-cp39-cp39-win32.whl", hash = "sha256:f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4"}, - {file = "numpy-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368"}, - {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f"}, - {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d"}, - {file = "numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990"}, - {file = "numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f"}, - {file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] @@ -2520,8 +2577,8 @@ files = [ [package.dependencies] numpy = [ {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2935,24 +2992,23 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylint" -version = "3.2.6" +version = "2.17.7" description = "python code static checker" optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.7.2" files = [ - {file = "pylint-3.2.6-py3-none-any.whl", hash = "sha256:03c8e3baa1d9fb995b12c1dbe00aa6c4bcef210c2a2634374aedeb22fb4a8f8f"}, - {file = "pylint-3.2.6.tar.gz", hash = "sha256:a5d01678349454806cff6d886fb072294f56a58c4761278c97fb557d708e1eb3"}, + {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, + {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, ] [package.dependencies] -astroid = ">=3.2.4,<=3.3.0-dev0" +astroid = ">=2.15.8,<=2.17.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, ] -isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" +isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -3034,13 +3090,13 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments [[package]] name = "pytest-cov" -version = "5.0.0" +version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, ] [package.dependencies] @@ -3048,7 +3104,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] [[package]] name = "python-dateutil" @@ -3813,27 +3869,27 @@ files = [ [[package]] name = "sphinx" -version = "7.4.7" +version = "7.3.7" description = "Python documentation generator" optional = false python-versions = ">=3.9" files = [ - {file = "sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239"}, - {file = "sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe"}, + {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, + {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, ] [package.dependencies] alabaster = ">=0.7.14,<0.8.0" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.22" imagesize = ">=1.3" -importlib-metadata = {version = ">=6.0", markers = "python_version < \"3.10\""} -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.14" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" @@ -3844,8 +3900,8 @@ tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "importlib-metadata (>=6.0)", "mypy (==1.10.1)", "pytest (>=6.0)", "ruff (==0.5.2)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-docutils (==0.21.0.20240711)", "types-requests (>=2.30.0)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] +lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] [[package]] name = "sphinx-copybutton" @@ -3867,18 +3923,18 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] [[package]] name = "sphinx-rtd-theme" -version = "2.0.0" +version = "1.3.0" description = "Read the Docs theme for Sphinx" optional = false -python-versions = ">=3.6" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586"}, - {file = "sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"}, + {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, + {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, ] [package.dependencies] -docutils = "<0.21" -sphinx = ">=5,<8" +docutils = "<0.19" +sphinx = ">=1.6,<8" sphinxcontrib-jquery = ">=4,<5" [package.extras] @@ -4331,6 +4387,85 @@ files = [ {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, ] +[[package]] +name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] + [[package]] name = "xarray" version = "2024.7.0" @@ -4446,4 +4581,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9, < 3.13" -content-hash = "211fe282713cbb6d9121a161189124f5598cedc725eeb0c196f181292f8dba92" +content-hash = "d32d5c9d85869c7f57c7f7f83b0c5dd1b3c3622ca6acfdfe43fbc34e5c39d9b3" diff --git a/pyproject.toml b/pyproject.toml index 844b0152..8e08c52c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,31 +18,31 @@ classifiers = [ [tool.poetry.dependencies] python = ">=3.9, < 3.13" -numpy = "^2.0.1" -pandas = "^2.2.0" +numpy = "^1.21.0" +pandas = "^2.0.0" georinex = "<=1.16.1" unlzw3 = "^0.2.1" pynmea2 = "^1.18.0" -pytest = "^8.3" +pytest = ">=7.2" scipy = "^1.7.3" jupyter = "^1.0.0" notebook = "^7.0.0" ipykernel = "^6.0.3" -matplotlib = "~3.8" +matplotlib = "^3.5.1" plotly = "^5.8.0" kaleido = "0.2.1" -requests = "^2.32.3" +requests = "^2.29.0" [tool.poetry.group.dev.dependencies] Sphinx = "^7.0.0" -sphinx-rtd-theme = "^2.0.0" +sphinx-rtd-theme = "^1.0.0" sphinxcontrib-napoleon = "^0.7" pylint-exit = "^1.2.0" nbsphinx = "^0.8.9" nbsphinx-link = "^1.3.0" tqdm = "^4.65.0" -pylint = "^3.2" -pytest-cov = "^5.0.0" +pylint = "^2.11.1" +pytest-cov = "^4.0.0" sphinx-copybutton = "^0.5.2" poetry-plugin-export = "^1.8.0" diff --git a/requirements.txt b/requirements.txt index 83c162c4..e1bdefb7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -31,7 +31,7 @@ httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.13" httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10" -importlib-resources==6.4.1 ; python_version >= "3.9" and python_version < "3.13" +importlib-resources==6.4.2 ; python_version >= "3.9" and python_version < "3.13" iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "3.13" ipykernel==6.29.5 ; python_version >= "3.9" and python_version < "3.13" ipython==8.18.1 ; python_version >= "3.9" and python_version < "3.13" @@ -60,7 +60,7 @@ kaleido==0.2.1 ; python_version >= "3.9" and python_version < "3.13" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "3.13" markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "3.13" -matplotlib==3.8.4 ; python_version >= "3.9" and python_version < "3.13" +matplotlib==3.9.2 ; python_version >= "3.9" and python_version < "3.13" mistune==3.0.2 ; python_version >= "3.9" and python_version < "3.13" nbclient==0.10.0 ; python_version >= "3.9" and python_version < "3.13" nbconvert==7.16.4 ; python_version >= "3.9" and python_version < "3.13" @@ -69,7 +69,7 @@ ncompress==1.0.2 ; python_version >= "3.9" and python_version < "3.13" nest-asyncio==1.6.0 ; python_version >= "3.9" and python_version < "3.13" notebook-shim==0.2.4 ; python_version >= "3.9" and python_version < "3.13" notebook==7.2.1 ; python_version >= "3.9" and python_version < "3.13" -numpy==2.0.1 ; python_version >= "3.9" and python_version < "3.13" +numpy==1.26.4 ; python_version >= "3.9" and python_version < "3.13" overrides==7.7.0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.1 ; python_version >= "3.9" and python_version < "3.13" pandas==2.2.2 ; python_version >= "3.9" and python_version < "3.13" From 7f4d5168b82a3bc271dab214637732c1cb9c3408 Mon Sep 17 00:00:00 2001 From: Daniel Neamati Date: Thu, 15 Aug 2024 11:45:54 -0700 Subject: [PATCH 39/40] Addresses MAC OS numpy singularity handling numpy 1.x on MAC OS may not raise a singularity flag where Linux and Windows due. This issue appears to be addressed in numpy 2. Either way, this test should now be more in line with the goals of this test case (i.e., either (a) confirming that the matrix is singular and caught appropriately with nans in the DOP entries or (b) near singular even if the flag is not raised and the relevant DOP entries are non-physical). --- tests/utils/test_dop.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/utils/test_dop.py b/tests/utils/test_dop.py index 9d89cfe4..32c79e7b 100644 --- a/tests/utils/test_dop.py +++ b/tests/utils/test_dop.py @@ -412,9 +412,14 @@ def test_singularity_dop(navdata): # is an issue in comparing nan > number). # Note: we use np.any() since we can get small values in the DOP matrix # even if singular (i.e., in the off-diagonal entries). - for _, val in dop_dict.items(): - print("1:",val) - assert np.any(np.isnan(val)) or np.any(np.abs(val) > 1e6) + dop_mat = dop_dict['dop_matrix'] + print("1 (singularity flag not raised): DOP matrix is:") + print(dop_mat) + assert np.any(np.isnan(dop_mat)) or np.any(np.abs(dop_mat) > 1e6) + + dop_scalars = [val for key, val in dop_dict.items() if key != 'dop_matrix'] + print("1: DOP Values are:", dop_scalars) + assert np.any(np.isnan(dop_scalars)) or np.any(np.abs(dop_scalars) > 1e6) except np.linalg.LinAlgError: # We expect a singularity error. If we get the singularity error, then @@ -422,8 +427,8 @@ def test_singularity_dop(navdata): # Now check that we get all NaNs for the DOP values when we have a # singularity - for _, val in dop_dict.items(): - print("2:",val) + for key, val in dop_dict.items(): + print("2:", key, " : ", val) assert np.all(np.isnan(val)) From aad7449a8368b05624da4f13b41ed2db320acd95 Mon Sep 17 00:00:00 2001 From: Daniel Neamati Date: Thu, 15 Aug 2024 12:05:49 -0700 Subject: [PATCH 40/40] Remove print statements Remove the test_singularity_dop print statements now that the tests are passing. --- tests/utils/test_dop.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/utils/test_dop.py b/tests/utils/test_dop.py index 32c79e7b..105ac806 100644 --- a/tests/utils/test_dop.py +++ b/tests/utils/test_dop.py @@ -413,12 +413,12 @@ def test_singularity_dop(navdata): # Note: we use np.any() since we can get small values in the DOP matrix # even if singular (i.e., in the off-diagonal entries). dop_mat = dop_dict['dop_matrix'] - print("1 (singularity flag not raised): DOP matrix is:") - print(dop_mat) + # print("1 (singularity flag not raised): DOP matrix is:") + # print(dop_mat) assert np.any(np.isnan(dop_mat)) or np.any(np.abs(dop_mat) > 1e6) dop_scalars = [val for key, val in dop_dict.items() if key != 'dop_matrix'] - print("1: DOP Values are:", dop_scalars) + # print("1: DOP Values are:", dop_scalars) assert np.any(np.isnan(dop_scalars)) or np.any(np.abs(dop_scalars) > 1e6) except np.linalg.LinAlgError: @@ -428,7 +428,7 @@ def test_singularity_dop(navdata): # Now check that we get all NaNs for the DOP values when we have a # singularity for key, val in dop_dict.items(): - print("2:", key, " : ", val) + # print("2:", key, " : ", val) assert np.all(np.isnan(val))