From c40e1c9740f6eb24afbf1eeafde1edb518bea408 Mon Sep 17 00:00:00 2001 From: GabrielePalazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 27 Nov 2023 11:58:39 +0400 Subject: [PATCH 01/19] Added documentation for resonator punchout --- doc/source/protocols/index.rst | 1 + doc/source/protocols/resonator_punchout.rst | 75 +++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 doc/source/protocols/resonator_punchout.rst diff --git a/doc/source/protocols/index.rst b/doc/source/protocols/index.rst index f751e10f0..ecacc6dd4 100644 --- a/doc/source/protocols/index.rst +++ b/doc/source/protocols/index.rst @@ -7,3 +7,4 @@ In this section we introduce the basics of all protocols supported by ``qibocal` :maxdepth: 1 resonator_spectroscopy + resonator_punchout diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst new file mode 100644 index 000000000..1ce48c87e --- /dev/null +++ b/doc/source/protocols/resonator_punchout.rst @@ -0,0 +1,75 @@ +Resonator punchout +================== + + +With the resonator spectroscopy at high power we found the bare resonator frequency +(also called high power frequency), but this is not the frequency that will be used in measurements. +We need to find the frequency in the low power regime, where the resonator is actually coupled +to the qubit. To do that, we first have to find the correct amplitude of the readout pulse. +Also this experiment can be initially performed with a VNA, to check everything is +working and to obtain a rough estimation of the parameters to be used by the control devices. +We do again a resonator spectroscopy experiment, measuring at different frequencies, +but this time scanning in a narrow frequency span and also for different pulse amplitudes. +We expect the resonator frequency to have a strong dependency on the amplitude: in +particular we expect it to be fixed at first (in the high power regime) then undergo a +transition phase and then be fixed again at a different frequency because of the coupling +with the qubit. + +Eventually, we want to have a plot like fig. 3.8 !!!!! +This experiment is the first one where we actually are ”seeing” the qubit and it's +extremely important also to check that the qubit is working properly. +During a characterization, various experimental problems can happen and can lead the experimenter +to believe that the qubit is no longer working: this experiment gives us an easy way to check it. + +????? Why is punchout better than low power resonator spectroscopy? ????? + +Moreover, from this experiment we can actually already have an estimate of the qubit +frequency using: + +.. math:: + + \omega_{rh} - \omega_{rl} = \chi = \frac{g^2}{\Delta} + +Where :math:`\Delta = \omega_{rl} - \omega_q`. +So, if we know, maybe from design specifications, the expected value of :math:`g`, we can +have an estimate of the qubit frequency. If, as in most cases, we don't have information +on :math:`g`, then we still can infer if the qubit frequency is higher or lower than the resonator +frequency. + +To obtain a clear plot, this experiment usually requires multiple tries, to choose +"good parameters". In particular: + +* the amplitude range and step must be chosen carefully because punchout can lead to extremely long experiments (that we would like to avoid), but large steps will inevitably confuse the plot; +* the frequency usually shifts very little, but depending on :math:`g` and :math:`\Delta`, so it is difficult to set the frequency span and step; +* if the scan in amplitude is linear, it will be difficult to have a clear view of all the three regimes at the same time. If it is possible, it may be worth to do a logarithmic scan. + +Note also that, in literature, this plot is often presented as a scan in the attenuation +of the readout line. The effect is the same as of changing the amplitude (although it is +by default a logarithmic scan), but the plot is reversed: at the top (high attenuation) +we will see the low power regime and at the bottom (low attenuation) the high power +one. + +In fig. 3.9 different punchout plots are shown, so that is understandable how much +they can differ. (!!!!! Removed? !!!!!) +Note that in the plots measured amplitudes are normalized for every readout amplitude and we +actually have very high amplitudes in high power, and much lower amplitude elsewhere. +From these plots we can extract few things: + +* the pulse amplitude that we will use for the next experiments for the readout pulse; +* the peak frequency (ground state frequency). + +We should try to use the amplitude that maximizes the signal to noise (S/N) ratio for the resonator, so in general the highest +amplitude at low power. However, we still need to be sure to not enter the transition +regime, something that could lead to very noisy experiments and eventually prevent us +to reach any sensible result. To be sure that, at the given pulse amplitude, we are not +in the transition regime, we can repeat the standard resonator spectroscopy with a finer +scan, checking if the peak is Lorentzian. +A resonator spectroscopy is also useful to better check the resonator frequency at low +power. We can alse write down the maximum value of the peak. +Since we are not interacting directly with the qubit, we are effectively measuring the +amplitude of the ground state and, from now on we will not change the resonator frequency, +so we expect to always measure this amplitude for the zero state. Here it is +not needed to do a precise measurement, but it is nevertheless very useful to have an +approximate value, that can later be used to check, in other experiments, that we are +not exciting the qubit by error (if we see a change in amplitude, then maybe the qubit +state has changed). From b33c29adbcea8982f90e004c55c25aaebccc8bae Mon Sep 17 00:00:00 2001 From: GabrielePalazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:32:52 +0400 Subject: [PATCH 02/19] Added resonator punchout runcard --- doc/source/protocols/resonator_punchout.rst | 26 ++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 1ce48c87e..f895b232b 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -15,8 +15,32 @@ particular we expect it to be fixed at first (in the high power regime) then und transition phase and then be fixed again at a different frequency because of the coupling with the qubit. +This is and example of a runcard for a resonator punchout: + +.. code-block:: yaml + + platform: + + qubits: [0] + + actions: + + - id: resonator punchout + priority: 0 + operation: resonator_punchout + main: qubit spectroscopy + parameters: + freq_width: 40_000_000 + freq_step: 500_000 + amplitude: 0.03 + min_amp_factor: 0.1 + max_amp_factor: 2.4 + step_amp_factor: 0.3 + nshots: 2048 + relaxation_time: 5000 + Eventually, we want to have a plot like fig. 3.8 !!!!! -This experiment is the first one where we actually are ”seeing” the qubit and it's +This experiment is the first one where we actually are "seeing" the qubit and it's extremely important also to check that the qubit is working properly. During a characterization, various experimental problems can happen and can lead the experimenter to believe that the qubit is no longer working: this experiment gives us an easy way to check it. From 76bc53b007376c8da0c8f0c491cb413ea90aaf64 Mon Sep 17 00:00:00 2001 From: GabrielePalazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 27 Nov 2023 15:23:35 +0400 Subject: [PATCH 03/19] Fixed typo --- doc/source/protocols/resonator_punchout.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index f895b232b..a488a79bd 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -28,7 +28,6 @@ This is and example of a runcard for a resonator punchout: - id: resonator punchout priority: 0 operation: resonator_punchout - main: qubit spectroscopy parameters: freq_width: 40_000_000 freq_step: 500_000 From 0765d7185c80db31d2720e6764901661b11c5bc7 Mon Sep 17 00:00:00 2001 From: GabrielePalazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:19:30 +0400 Subject: [PATCH 04/19] Added punchout plot --- doc/source/protocols/resonator_punchout.png | Bin 0 -> 129101 bytes doc/source/protocols/resonator_punchout.rst | 5 ++++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 doc/source/protocols/resonator_punchout.png diff --git a/doc/source/protocols/resonator_punchout.png b/doc/source/protocols/resonator_punchout.png new file mode 100644 index 0000000000000000000000000000000000000000..25760401df62d6770e0b73517043390fef45d34e GIT binary patch literal 129101 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ɠ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�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 literal 0 HcmV?d00001 diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index a488a79bd..ce7c4f5db 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -38,7 +38,10 @@ This is and example of a runcard for a resonator punchout: nshots: 2048 relaxation_time: 5000 -Eventually, we want to have a plot like fig. 3.8 !!!!! +Eventually, we want to have a plot like the one below: + +.. image:: resonator_punchout.png + This experiment is the first one where we actually are "seeing" the qubit and it's extremely important also to check that the qubit is working properly. During a characterization, various experimental problems can happen and can lead the experimenter From 302152599291049828dd307a962a524a13cec097 Mon Sep 17 00:00:00 2001 From: GabrielePalazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:36:20 +0400 Subject: [PATCH 05/19] Added comment about resonator punchout --- doc/source/protocols/resonator_punchout.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index ce7c4f5db..299313881 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -47,7 +47,8 @@ extremely important also to check that the qubit is working properly. During a characterization, various experimental problems can happen and can lead the experimenter to believe that the qubit is no longer working: this experiment gives us an easy way to check it. -????? Why is punchout better than low power resonator spectroscopy? ????? +Compared to a low power resonator spectroscopy, with punchout we can see the shift in the resonator frequency +and thus ensure that we are in the low power regime. Moreover, from this experiment we can actually already have an estimate of the qubit frequency using: @@ -75,8 +76,6 @@ by default a logarithmic scan), but the plot is reversed: at the top (high atten we will see the low power regime and at the bottom (low attenuation) the high power one. -In fig. 3.9 different punchout plots are shown, so that is understandable how much -they can differ. (!!!!! Removed? !!!!!) Note that in the plots measured amplitudes are normalized for every readout amplitude and we actually have very high amplitudes in high power, and much lower amplitude elsewhere. From these plots we can extract few things: From 4e9adce6d3db80673564cef4e79e44fa0d669728 Mon Sep 17 00:00:00 2001 From: Gabriele Palazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:20:42 +0400 Subject: [PATCH 06/19] Apply suggestions from code review Co-authored-by: Andrea Pasquale --- doc/source/protocols/resonator_punchout.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 299313881..06e7b2b70 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -3,10 +3,10 @@ Resonator punchout With the resonator spectroscopy at high power we found the bare resonator frequency -(also called high power frequency), but this is not the frequency that will be used in measurements. +(also called high power frequency), but this is not the frequency that will be used to perform measurements. We need to find the frequency in the low power regime, where the resonator is actually coupled to the qubit. To do that, we first have to find the correct amplitude of the readout pulse. -Also this experiment can be initially performed with a VNA, to check everything is +This experiment can be initially performed with a VNA, to check that everything is working and to obtain a rough estimation of the parameters to be used by the control devices. We do again a resonator spectroscopy experiment, measuring at different frequencies, but this time scanning in a narrow frequency span and also for different pulse amplitudes. @@ -42,9 +42,9 @@ Eventually, we want to have a plot like the one below: .. image:: resonator_punchout.png -This experiment is the first one where we actually are "seeing" the qubit and it's +This experiment is the first one where we are actually "seeing" the qubit and it's extremely important also to check that the qubit is working properly. -During a characterization, various experimental problems can happen and can lead the experimenter +During characterization, various experimental problems can happen and can lead experimentalists to believe that the qubit is no longer working: this experiment gives us an easy way to check it. Compared to a low power resonator spectroscopy, with punchout we can see the shift in the resonator frequency From f15611d47429a48ce2abf40f8758831d7ce90944 Mon Sep 17 00:00:00 2001 From: PiergiorgioButtarini Date: Mon, 25 Dec 2023 12:51:59 +0400 Subject: [PATCH 07/19] fix: tof routine with new sampling rate approach --- .../signal_experiments/time_of_flight_readout.py | 5 ++++- tests/runcards/protocols.yml | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py index 4e9d6bd3e..4fb1d2dff 100644 --- a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py +++ b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py @@ -21,6 +21,8 @@ class TimeOfFlightReadoutParameters(Parameters): """Amplitude of the readout pulse.""" window_size: Optional[int] = 10 """Window size for the moving average.""" + sampling_rate: Optional[int] = None + """Sampling rate of the specific driver.""" @dataclass @@ -72,9 +74,10 @@ def _acquisition( averaging_mode=AveragingMode.CYCLIC, ), ) + sampling_rate = params.sampling_rate if params.sampling_rate else 1e9 data = TimeOfFlightReadoutData( - windows_size=params.window_size, sampling_rate=platform.settings.sampling_rate + windows_size=params.window_size, sampling_rate=sampling_rate ) # retrieve and store the results for every qubit diff --git a/tests/runcards/protocols.yml b/tests/runcards/protocols.yml index 4c99e25e8..84f142ea4 100644 --- a/tests/runcards/protocols.yml +++ b/tests/runcards/protocols.yml @@ -10,6 +10,7 @@ actions: parameters: nshots: 1024 readout_amplitude: 0.5 + sampling_rate: 1_000_000_000 - id: resonator high power high amplitude priority: 0 From c9a5b7fd13964bd923968a4259bc8b0b57a27d88 Mon Sep 17 00:00:00 2001 From: PiergiorgioButtarini Date: Mon, 25 Dec 2023 14:57:17 +0400 Subject: [PATCH 08/19] minor update --- .../signal_experiments/time_of_flight_readout.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py index 4fb1d2dff..6cd4d9e9f 100644 --- a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py +++ b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py @@ -21,7 +21,7 @@ class TimeOfFlightReadoutParameters(Parameters): """Amplitude of the readout pulse.""" window_size: Optional[int] = 10 """Window size for the moving average.""" - sampling_rate: Optional[int] = None + sampling_rate: Optional[int] = 1e9 """Sampling rate of the specific driver.""" @@ -74,7 +74,7 @@ def _acquisition( averaging_mode=AveragingMode.CYCLIC, ), ) - sampling_rate = params.sampling_rate if params.sampling_rate else 1e9 + sampling_rate = params.sampling_rate data = TimeOfFlightReadoutData( windows_size=params.window_size, sampling_rate=sampling_rate From fd3b3c862566e73a94a4122a4b9c4f6d4eff9599 Mon Sep 17 00:00:00 2001 From: Piergiorgio Buttarini <100786647+PiergiorgioButtarini@users.noreply.github.com> Date: Wed, 27 Dec 2023 09:13:55 +0400 Subject: [PATCH 09/19] Update src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py Co-authored-by: Stavros Efthymiou <35475381+stavros11@users.noreply.github.com> --- .../signal_experiments/time_of_flight_readout.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py index 6cd4d9e9f..e41deb15e 100644 --- a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py +++ b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py @@ -21,7 +21,7 @@ class TimeOfFlightReadoutParameters(Parameters): """Amplitude of the readout pulse.""" window_size: Optional[int] = 10 """Window size for the moving average.""" - sampling_rate: Optional[int] = 1e9 + sampling_rate: int = 1e9 """Sampling rate of the specific driver.""" From 4e20342352c07c2a85a575dcdd87542d5fa53b28 Mon Sep 17 00:00:00 2001 From: PiergiorgioButtarini Date: Wed, 3 Jan 2024 15:19:07 +0400 Subject: [PATCH 10/19] update: adapt to new platform.sampling_rate --- .../signal_experiments/time_of_flight_readout.py | 5 +---- tests/runcards/protocols.yml | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py index e41deb15e..6c701b362 100644 --- a/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py +++ b/src/qibocal/protocols/characterization/signal_experiments/time_of_flight_readout.py @@ -21,8 +21,6 @@ class TimeOfFlightReadoutParameters(Parameters): """Amplitude of the readout pulse.""" window_size: Optional[int] = 10 """Window size for the moving average.""" - sampling_rate: int = 1e9 - """Sampling rate of the specific driver.""" @dataclass @@ -74,10 +72,9 @@ def _acquisition( averaging_mode=AveragingMode.CYCLIC, ), ) - sampling_rate = params.sampling_rate data = TimeOfFlightReadoutData( - windows_size=params.window_size, sampling_rate=sampling_rate + windows_size=params.window_size, sampling_rate=platform.sampling_rate ) # retrieve and store the results for every qubit diff --git a/tests/runcards/protocols.yml b/tests/runcards/protocols.yml index 84f142ea4..4c99e25e8 100644 --- a/tests/runcards/protocols.yml +++ b/tests/runcards/protocols.yml @@ -10,7 +10,6 @@ actions: parameters: nshots: 1024 readout_amplitude: 0.5 - sampling_rate: 1_000_000_000 - id: resonator high power high amplitude priority: 0 From 679d5d1b1edc3b8aaee585fa228d7cccbe6631bd Mon Sep 17 00:00:00 2001 From: Gabriele Date: Wed, 3 Jan 2024 20:45:40 +0100 Subject: [PATCH 11/19] Added definition of resonator frequencies --- doc/source/protocols/resonator_punchout.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 06e7b2b70..97c026c4f 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -58,6 +58,8 @@ frequency using: \omega_{rh} - \omega_{rl} = \chi = \frac{g^2}{\Delta} Where :math:`\Delta = \omega_{rl} - \omega_q`. + +:math:`\omega_{rh}` is the resonator frequency in the high power regime, and :math:`\omega_{rl}` is the resonator frequency at low power. So, if we know, maybe from design specifications, the expected value of :math:`g`, we can have an estimate of the qubit frequency. If, as in most cases, we don't have information on :math:`g`, then we still can infer if the qubit frequency is higher or lower than the resonator From f93473d569a994a7b44b468d42fe63daa8849c50 Mon Sep 17 00:00:00 2001 From: Gabriele Date: Wed, 3 Jan 2024 21:05:16 +0100 Subject: [PATCH 12/19] Added references --- doc/source/protocols/resonator_punchout.rst | 8 +++++++- doc/source/refs.bib | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 97c026c4f..52bb70fb3 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -51,7 +51,7 @@ Compared to a low power resonator spectroscopy, with punchout we can see the shi and thus ensure that we are in the low power regime. Moreover, from this experiment we can actually already have an estimate of the qubit -frequency using: +frequency using :cite:p:`Greene_2014, Gu_2017`: .. math:: @@ -100,3 +100,9 @@ not needed to do a precise measurement, but it is nevertheless very useful to ha approximate value, that can later be used to check, in other experiments, that we are not exciting the qubit by error (if we see a change in amplitude, then maybe the qubit state has changed). + +.. rubric:: References + +.. bibliography:: + :cited: + :style: plain diff --git a/doc/source/refs.bib b/doc/source/refs.bib index a4da060bc..85e6258ff 100644 --- a/doc/source/refs.bib +++ b/doc/source/refs.bib @@ -22,3 +22,22 @@ @article{wallraff2004strong year = {2004}, publisher = {Nature Publishing Group UK London} } + +@phdthesis{Greene_2014, + author = {Amy Greene} , + title = {Calibration and Utilization of High-Fidelity Two-Qubit Operations}, + school = {Massachusetts Institute of Technology}, + year = {2008} +} + +@article{Gu_2017, + doi = {10.1016/j.physrep.2017.10.002}, + year = {2017}, + month = nov, + publisher = {Elsevier {BV}}, + volume = {718-719}, + pages = {1--102}, + author = {Xiu Gu and Anton Frisk Kockum and Adam Miranowicz and Yu-xi Liu and Franco Nori}, + title = {Microwave photonics with superconducting quantum circuits}, + journal = {Physics Reports} +} From 2f2cad8a380df7e7efc69c0c5ba483eeca0b24e6 Mon Sep 17 00:00:00 2001 From: GabrielePalazzo Date: Fri, 5 Jan 2024 18:14:38 +0100 Subject: [PATCH 13/19] Added plot with attenuation --- doc/source/protocols/resonator_punchout.rst | 26 ++++++++++++++++++ .../resonator_punchout_attenuation.png | Bin 0 -> 35939 bytes 2 files changed, 26 insertions(+) create mode 100644 doc/source/protocols/resonator_punchout_attenuation.png diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 52bb70fb3..0d65cd2bf 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -101,6 +101,32 @@ approximate value, that can later be used to check, in other experiments, that w not exciting the qubit by error (if we see a change in amplitude, then maybe the qubit state has changed). +It is also to run the punchout experiment with attenuation: + +.. image:: resonator_punchout_attenuation.png + +This is and example of a runcard for a resonator punchout with attenuation: + +.. code-block:: yaml + + platform: + + qubits: [0] + + actions: + + - id: resonator_punchout_attenuation + priority: 0 + operation: resonator_punchout_attenuation + parameters: + freq_width: 10_000_000 + freq_step: 500_000 + max_att: 60 + min_att: 4 + nshots: 1000 + step_att: 4 + nshots: 2048 + .. rubric:: References .. bibliography:: diff --git a/doc/source/protocols/resonator_punchout_attenuation.png b/doc/source/protocols/resonator_punchout_attenuation.png new file mode 100644 index 0000000000000000000000000000000000000000..6a05795991dc85329567485cb541f1f0ae9822cb GIT binary patch literal 35939 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 C=-HeA literal 0 HcmV?d00001 From e473c838915aa9964263f1d9af4ece390b2c80c6 Mon Sep 17 00:00:00 2001 From: Gabriele Palazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 22 Jan 2024 16:22:36 +0400 Subject: [PATCH 14/19] Apply suggestions from code review Co-authored-by: Edoardo Pedicillo --- doc/source/protocols/resonator_punchout.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 0d65cd2bf..3b6fe0239 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -4,7 +4,7 @@ Resonator punchout With the resonator spectroscopy at high power we found the bare resonator frequency (also called high power frequency), but this is not the frequency that will be used to perform measurements. -We need to find the frequency in the low power regime, where the resonator is actually coupled +We need to find the frequency, where the resonator is actually coupled to the qubit. To do that, we first have to find the correct amplitude of the readout pulse. This experiment can be initially performed with a VNA, to check that everything is working and to obtain a rough estimation of the parameters to be used by the control devices. @@ -92,7 +92,7 @@ to reach any sensible result. To be sure that, at the given pulse amplitude, we in the transition regime, we can repeat the standard resonator spectroscopy with a finer scan, checking if the peak is Lorentzian. A resonator spectroscopy is also useful to better check the resonator frequency at low -power. We can alse write down the maximum value of the peak. +power. We can also write down the maximum value of the peak. Since we are not interacting directly with the qubit, we are effectively measuring the amplitude of the ground state and, from now on we will not change the resonator frequency, so we expect to always measure this amplitude for the zero state. Here it is From 24d4889eb773d0e5d23ab31efa94f997df238919 Mon Sep 17 00:00:00 2001 From: Gabriele Palazzo <73099233+GabrielePalazzo@users.noreply.github.com> Date: Mon, 22 Jan 2024 16:23:50 +0400 Subject: [PATCH 15/19] Update typo in resonator_punchout.rst --- doc/source/protocols/resonator_punchout.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/protocols/resonator_punchout.rst b/doc/source/protocols/resonator_punchout.rst index 3b6fe0239..40e63fef7 100644 --- a/doc/source/protocols/resonator_punchout.rst +++ b/doc/source/protocols/resonator_punchout.rst @@ -101,7 +101,7 @@ approximate value, that can later be used to check, in other experiments, that w not exciting the qubit by error (if we see a change in amplitude, then maybe the qubit state has changed). -It is also to run the punchout experiment with attenuation: +It is also possible to run the punchout experiment with attenuation: .. image:: resonator_punchout_attenuation.png From 75334549baa452e5991888a383af743fd614f4dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 22:19:31 +0000 Subject: [PATCH 16/19] Bump pillow from 10.1.0 to 10.2.0 Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.1.0 to 10.2.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/10.1.0...10.2.0) --- updated-dependencies: - dependency-name: pillow dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 129 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 55 deletions(-) diff --git a/poetry.lock b/poetry.lock index 593526756..2adb6fc0e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2039,70 +2039,88 @@ ptyprocess = ">=0.5" [[package]] name = "pillow" -version = "10.1.0" +version = "10.2.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, - {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, - {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, - {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, - {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, - {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, - {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, - {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, - {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, - {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, - {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, - {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, - {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, - {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, - {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, - {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, - {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, - {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, - {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, - {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, - {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, - {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, - {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, - {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, - {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, - {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, - {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, - {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, - {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, - {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, - {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, - {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, - {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, - {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, - {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, - {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, - {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, - {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, - {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, - {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, - {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, - {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, - {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, - {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, - {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, - {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, + {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"] +fpx = ["olefile"] +mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] [[package]] name = "platformdirs" @@ -2568,6 +2586,7 @@ 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"}, From 1faf3ceb0880b8f431ca6c6b2c816eb6b1e7040a Mon Sep 17 00:00:00 2001 From: Andrea Date: Fri, 26 Jan 2024 18:45:10 +0400 Subject: [PATCH 17/19] refactor: Update qibocal to new platform layout --- src/qibocal/cli/acquisition.py | 5 +++-- src/qibocal/cli/autocalibration.py | 8 +++++--- src/qibocal/cli/utils.py | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/qibocal/cli/acquisition.py b/src/qibocal/cli/acquisition.py index f386d5063..0fbc09eeb 100644 --- a/src/qibocal/cli/acquisition.py +++ b/src/qibocal/cli/acquisition.py @@ -3,7 +3,7 @@ from dataclasses import asdict import yaml -from qibolab.serialize import dump_runcard +from qibolab.serialize import dump_platform from ..auto.execute import Executor from ..auto.history import add_timings_to_meta @@ -39,7 +39,8 @@ def acquire(runcard, folder, force): meta = generate_meta(backend, platform, path) # dump platform if backend.name == "qibolab": - dump_runcard(platform, path / PLATFORM) + (path / PLATFORM).mkdir(parents=True, exist_ok=True) + dump_platform(platform, path / PLATFORM) # dump action runcard (path / RUNCARD).write_text(yaml.safe_dump(asdict(runcard))) diff --git a/src/qibocal/cli/autocalibration.py b/src/qibocal/cli/autocalibration.py index eb6504f22..a119b819d 100644 --- a/src/qibocal/cli/autocalibration.py +++ b/src/qibocal/cli/autocalibration.py @@ -3,7 +3,7 @@ from dataclasses import asdict import yaml -from qibolab.serialize import dump_runcard +from qibolab.serialize import dump_platform from ..auto.execute import Executor from ..auto.history import add_timings_to_meta @@ -41,7 +41,8 @@ def autocalibrate(runcard, folder, force, update): meta = generate_meta(backend, platform, path) # dump platform if backend.name == "qibolab": - dump_runcard(platform, path / PLATFORM) + (path / PLATFORM).mkdir(parents=True, exist_ok=True) + dump_platform(platform, path / PLATFORM) # dump action runcard (path / RUNCARD).write_text(yaml.safe_dump(asdict(runcard))) @@ -72,4 +73,5 @@ def autocalibrate(runcard, folder, force, update): # dump updated runcard if platform is not None: - dump_runcard(platform, path / UPDATED_PLATFORM) + (path / UPDATED_PLATFORM).mkdir(parents=True, exist_ok=True) + dump_platform(platform, path / UPDATED_PLATFORM) diff --git a/src/qibocal/cli/utils.py b/src/qibocal/cli/utils.py index f3fd6eb95..89a4e2d67 100644 --- a/src/qibocal/cli/utils.py +++ b/src/qibocal/cli/utils.py @@ -10,8 +10,8 @@ from qibocal.utils import allocate_qubits_pairs, allocate_single_qubits RUNCARD = "runcard.yml" -UPDATED_PLATFORM = "new_platform.yml" -PLATFORM = "platform.yml" +UPDATED_PLATFORM = "new_platform" +PLATFORM = "platform" META = "meta.json" From c03218d4e10b14311ec53d0de3f83c7a8cda5d02 Mon Sep 17 00:00:00 2001 From: Andrea Date: Fri, 26 Jan 2024 19:43:12 +0400 Subject: [PATCH 18/19] fix: Fix following introduction of CNOT native --- .../two_qubit_interaction/chevron.py | 4 +--- src/qibocal/update.py | 4 ---- src/qibocal/utils.py | 2 +- tests/runcards/protocols.yml | 2 +- tests/test_update.py | 15 ++++++++------- 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/qibocal/protocols/characterization/two_qubit_interaction/chevron.py b/src/qibocal/protocols/characterization/two_qubit_interaction/chevron.py index dd17d998e..31cbb5150 100644 --- a/src/qibocal/protocols/characterization/two_qubit_interaction/chevron.py +++ b/src/qibocal/protocols/characterization/two_qubit_interaction/chevron.py @@ -126,9 +126,7 @@ def _aquisition( # Patch to get the coupler until the routines use QubitPair if platform.couplers: sequence.add( - cz.coupler_pulses( - platform.pairs[tuple(sorted(ordered_pair))].coupler.name - ) + cz.coupler_pulses(platform.pairs[tuple(ordered_pair)].coupler.name) ) if params.parking: diff --git a/src/qibocal/update.py b/src/qibocal/update.py index d7004b0e4..b7c685cf0 100644 --- a/src/qibocal/update.py +++ b/src/qibocal/update.py @@ -113,8 +113,6 @@ def virtual_phases(phases: dict[QubitId, float], platform: Platform, pair: Qubit def CZ_duration(duration: int, platform: Platform, pair: QubitPairId): """Update CZ duration for specific pair.""" - if pair not in platform.pairs: - pair = (pair[1], pair[0]) for pulse in platform.pairs[pair].native_gates.CZ.pulses: if pulse.qubit.name == pair[1]: pulse.duration = int(duration) @@ -122,8 +120,6 @@ def CZ_duration(duration: int, platform: Platform, pair: QubitPairId): def CZ_amplitude(amp: float, platform: Platform, pair: QubitPairId): """Update CZ amplitude for specific pair.""" - if pair not in platform.pairs: - pair = (pair[1], pair[0]) for pulse in platform.pairs[pair].native_gates.CZ.pulses: if pulse.qubit.name == pair[1]: pulse.amplitude = float(amp) diff --git a/src/qibocal/utils.py b/src/qibocal/utils.py index 85bfa7329..45d90a9c4 100644 --- a/src/qibocal/utils.py +++ b/src/qibocal/utils.py @@ -15,7 +15,7 @@ def allocate_qubits_pairs( platform: Optional[Platform], qubit_pairs_ids: list[tuple[QubitId, QubitId]] ) -> dict[tuple[QubitId, QubitId], QubitPair]: """Construct the map from the chosen id pairs to the corresponding physical qubit pairs available on the platform.""" - return {tuple(qq): platform.pairs[tuple(sorted(qq))] for qq in qubit_pairs_ids} + return {tuple(qq): platform.pairs[tuple(qq)] for qq in qubit_pairs_ids} def allocate_single_qubits_lists( diff --git a/tests/runcards/protocols.yml b/tests/runcards/protocols.yml index 4c99e25e8..874eb5dc5 100644 --- a/tests/runcards/protocols.yml +++ b/tests/runcards/protocols.yml @@ -531,7 +531,7 @@ actions: - id: chevron id priority: 0 operation: chevron - qubits: [[0, 2],[1,2],[3,2], [2,3]] + qubits: [[0, 2],[1,2]] parameters: amplitude_min: 0.1 amplitude_max: 0.6 diff --git a/tests/test_update.py b/tests/test_update.py index a3b7f181c..0038f6ae4 100644 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -100,14 +100,15 @@ def test_virtual_phases_update(pair): @pytest.mark.parametrize("pair", PAIRS) def test_CZ_params_update(pair): - update.CZ_amplitude(RANDOM_FLOAT, PLATFORM, pair) - update.CZ_duration(RANDOM_INT, PLATFORM, pair) + if hasattr(PLATFORM.pairs[pair].native_gates, "CZ"): + if PLATFORM.pairs[pair].native_gates.CZ is not None: + update.CZ_amplitude(RANDOM_FLOAT, PLATFORM, pair) + update.CZ_duration(RANDOM_INT, PLATFORM, pair) - if PLATFORM.pairs[pair].native_gates.CZ is not None: - for pulse in PLATFORM.pairs[pair].native_gates.CZ.pulses: - if pulse.qubit.name == pair[1]: - assert pulse.duration == RANDOM_INT - assert pulse.amplitude == RANDOM_FLOAT + for pulse in PLATFORM.pairs[pair].native_gates.CZ.pulses: + if pulse.qubit.name == pair[1]: + assert pulse.duration == RANDOM_INT + assert pulse.amplitude == RANDOM_FLOAT @pytest.mark.parametrize("qubit", QUBITS) From 9c1adbbbcfea126c49a240a6bc7553d7b1e9634e Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 27 Jan 2024 10:20:00 +0400 Subject: [PATCH 19/19] build: Upgrade qibolab to 0.1.5 --- poetry.lock | 1098 +++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 527 insertions(+), 573 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2adb6fc0e..e9516781d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,39 +2,39 @@ [[package]] name = "absl-py" -version = "2.0.0" +version = "2.1.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." optional = true python-versions = ">=3.7" files = [ - {file = "absl-py-2.0.0.tar.gz", hash = "sha256:d9690211c5fcfefcdd1a45470ac2b5c5acd45241c3af71eed96bc5441746c0d5"}, - {file = "absl_py-2.0.0-py3-none-any.whl", hash = "sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3"}, + {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, + {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, ] [[package]] name = "alabaster" -version = "0.7.13" -description = "A configurable sidebar-enabled Sphinx theme" +version = "0.7.16" +description = "A light, configurable Sphinx theme" 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 = "ansi2html" -version = "1.8.0" -description = "" +version = "1.9.1" +description = "Convert text with ANSI color codes to HTML or to LaTeX" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "ansi2html-1.8.0-py3-none-any.whl", hash = "sha256:ef9cc9682539dbe524fbf8edad9c9462a308e04bce1170c32daa8fdfd0001785"}, - {file = "ansi2html-1.8.0.tar.gz", hash = "sha256:38b82a298482a1fa2613f0f9c9beb3db72a8f832eeac58eb2e47bf32cd37f6d5"}, + {file = "ansi2html-1.9.1-py3-none-any.whl", hash = "sha256:29ccdb1e83520d648ebdc9c9544059ea4d424ecc33d3ef723657f7f5a9ae5225"}, + {file = "ansi2html-1.9.1.tar.gz", hash = "sha256:5c6837a13ecc1903aab7a545353312049dfedfe5105362ad3a8d9d207871ec71"}, ] [package.extras] -docs = ["Sphinx", "setuptools-scm", "sphinx-rtd-theme"] +docs = ["mkdocs", "mkdocs-material", "mkdocs-material-extensions", "mkdocstrings", "mkdocstrings-python", "pymdown-extensions"] test = ["pytest", "pytest-cov"] [[package]] @@ -91,31 +91,32 @@ wheel = ">=0.23.0,<1.0" [[package]] name = "attrs" -version = "23.1.0" +version = "23.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] [package.extras] cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] +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-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] [[package]] name = "babel" -version = "2.13.1" +version = "2.14.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, - {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.extras] @@ -123,19 +124,22 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "beautifulsoup4" -version = "4.12.2" +version = "4.12.3" description = "Screen-scraping library" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, ] [package.dependencies] soupsieve = ">1.2" [package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] @@ -360,7 +364,7 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] name = "contourpy" version = "1.2.0" description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, @@ -421,63 +425,63 @@ test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] [[package]] name = "coverage" -version = "7.3.2" +version = "7.4.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, - {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, - {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, - {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, - {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, - {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, - {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, - {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, - {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, - {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, - {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, - {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, - {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, - {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, + {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] @@ -490,7 +494,7 @@ toml = ["tomli"] name = "cycler" version = "0.12.1" description = "Composable style cycles" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, @@ -683,13 +687,13 @@ typing = ["typing-extensions (>=4.8)"] [[package]] name = "flask" -version = "3.0.0" +version = "3.0.1" description = "A simple framework for building complex web applications." optional = false python-versions = ">=3.8" files = [ - {file = "flask-3.0.0-py3-none-any.whl", hash = "sha256:21128f47e4e3b9d597a3e8521a329bf56909b690fcc3fa3e477725aa81367638"}, - {file = "flask-3.0.0.tar.gz", hash = "sha256:cfadcdb638b609361d29ec22360d6070a77d7463dcb3ab08d2c2f2f168845f58"}, + {file = "flask-3.0.1-py3-none-any.whl", hash = "sha256:ca631a507f6dfe6c278ae20112cea3ff54ff2216390bf8880f6b035a5354af13"}, + {file = "flask-3.0.1.tar.gz", hash = "sha256:6489f51bb3666def6f314e15f19d50a1869a19ae0e8c9a3641ffe66c77d42403"}, ] [package.dependencies] @@ -717,59 +721,59 @@ files = [ [[package]] name = "fonttools" -version = "4.46.0" +version = "4.47.2" description = "Tools to manipulate font files" -optional = false +optional = true python-versions = ">=3.8" files = [ - {file = "fonttools-4.46.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d4e69e2c7f93b695d2e6f18f709d501d945f65c1d237dafaabdd23cd935a5276"}, - {file = "fonttools-4.46.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:25852f0c63df0af022f698464a4a80f7d1d5bd974bcd22f995f6b4ad198e32dd"}, - {file = "fonttools-4.46.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adab73618d0a328b203a0e242b3eba60a2b5662d9cb2bd16ed9c52af8a7d86af"}, - {file = "fonttools-4.46.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf923a4a556ab4cc4c52f69a4a2db624cf5a2cf360394368b40c5152fe3321e"}, - {file = "fonttools-4.46.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:87c214197712cc14fd2a4621efce2a9c501a77041232b789568149a8a3161517"}, - {file = "fonttools-4.46.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:156ae342a1ed1fe38e180de471e98fbf5b2b6ae280fa3323138569c4ca215844"}, - {file = "fonttools-4.46.0-cp310-cp310-win32.whl", hash = "sha256:c506e3d3a9e898caee4dc094f34b49c5566870d5a2d1ca2125f0a9f35ecc2205"}, - {file = "fonttools-4.46.0-cp310-cp310-win_amd64.whl", hash = "sha256:f8bc3973ed58893c4107993e0a7ae34901cb572b5e798249cbef35d30801ffd4"}, - {file = "fonttools-4.46.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:982f69855ac258260f51048d9e0c53c5f19881138cc7ca06deb38dc4b97404b6"}, - {file = "fonttools-4.46.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c23c59d321d62588620f2255cf951270bf637d88070f38ed8b5e5558775b86c"}, - {file = "fonttools-4.46.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0e94244ec24a940ecfbe5b31c975c8a575d5ed2d80f9a280ce3b21fa5dc9c34"}, - {file = "fonttools-4.46.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a9f9cdd7ef63d1b8ac90db335762451452426b3207abd79f60da510cea62da5"}, - {file = "fonttools-4.46.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ca9eceebe70035b057ce549e2054cad73e95cac3fe91a9d827253d1c14618204"}, - {file = "fonttools-4.46.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8be6adfa4e15977075278dd0a0bae74dec59be7b969b5ceed93fb86af52aa5be"}, - {file = "fonttools-4.46.0-cp311-cp311-win32.whl", hash = "sha256:7b5636f5706d49f13b6d610fe54ee662336cdf56b5a6f6683c0b803e23d826d2"}, - {file = "fonttools-4.46.0-cp311-cp311-win_amd64.whl", hash = "sha256:49ea0983e55fd7586a809787cd4644a7ae471e53ab8ddc016f9093b400e32646"}, - {file = "fonttools-4.46.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7b460720ce81773da1a3e7cc964c48e1e11942b280619582a897fa0117b56a62"}, - {file = "fonttools-4.46.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8bee9f4fc8c99824a424ae45c789ee8c67cb84f8e747afa7f83b7d3cef439c3b"}, - {file = "fonttools-4.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3d7b96aba96e05e8c911ce2dfc5acc6a178b8f44f6aa69371ab91aa587563da"}, - {file = "fonttools-4.46.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e6aeb5c340416d11a3209d75c48d13e72deea9e1517837dd1522c1fd1f17c11"}, - {file = "fonttools-4.46.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c779f8701deedf41908f287aeb775b8a6f59875ad1002b98ac6034ae4ddc1b7b"}, - {file = "fonttools-4.46.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce199227ce7921eaafdd4f96536f16b232d6b580ce74ce337de544bf06cb2752"}, - {file = "fonttools-4.46.0-cp312-cp312-win32.whl", hash = "sha256:1c9937c4dd1061afd22643389445fabda858af5e805860ec3082a4bc07c7a720"}, - {file = "fonttools-4.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:a9fa52ef8fd14d7eb3d813e1451e7ace3e1eebfa9b7237d3f81fee8f3de6a114"}, - {file = "fonttools-4.46.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c94564b1f3b5dd87e73577610d85115b1936edcc596deaf84a31bbe70e17456b"}, - {file = "fonttools-4.46.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4a50a1dfad7f7ba5ca3f99cc73bf5cdac67ceade8e4b355a877521f20ad1b63"}, - {file = "fonttools-4.46.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89c2c520f9492844ecd6316d20c6c7a157b5c0cb73a1411b3db28ee304f30122"}, - {file = "fonttools-4.46.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5b7905fd68eacb7cc56a13139da5c312c45baae6950dd00b02563c54508a041"}, - {file = "fonttools-4.46.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8485cc468288e213f31afdaf1fdda3c79010f542559fbba936a54f4644df2570"}, - {file = "fonttools-4.46.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:87c3299da7da55394fb324349db0ede38114a46aafd0e7dfcabfecd28cdd94c3"}, - {file = "fonttools-4.46.0-cp38-cp38-win32.whl", hash = "sha256:f5f1423a504ccc329efb5aa79738de83d38c072be5308788dde6bd419969d7f5"}, - {file = "fonttools-4.46.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d4a4ebcc76e30898ff3296ea786491c70e183f738319ae2629e0d44f17ece42"}, - {file = "fonttools-4.46.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9a0e422ab79e5cb2b47913be6a4b5fd20c4c7ac34a24f3691a4e099e965e0b8"}, - {file = "fonttools-4.46.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:13ac0cba2fc63fa4b232f2a7971f35f35c6eaf10bd1271fa96d4ce6253a8acfd"}, - {file = "fonttools-4.46.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:795150d5edc595e1a2cfb3d65e8f4f3d027704fc2579f8990d381bef6b188eb6"}, - {file = "fonttools-4.46.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d00fc63131dcac6b25f50a5a129758438317e54e3ce5587163f7058de4b0e933"}, - {file = "fonttools-4.46.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3033b55f401a622de2630b3982234d97219d89b058607b87927eccb0f922313c"}, - {file = "fonttools-4.46.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e26e7fb908ae4f622813e7cb32cd2db6c24e3122bb3b98f25e832a2fe0e7e228"}, - {file = "fonttools-4.46.0-cp39-cp39-win32.whl", hash = "sha256:2d0eba685938c603f2f648dfc0aadbf8c6a4fe1c7ca608c2970a6ef39e00f254"}, - {file = "fonttools-4.46.0-cp39-cp39-win_amd64.whl", hash = "sha256:5200b01f463d97cc2b7ff8a1e3584151f4413e98cb8419da5f17d1dbb84cc214"}, - {file = "fonttools-4.46.0-py3-none-any.whl", hash = "sha256:5b627ed142398ea9202bd752c04311592558964d1a765fb2f78dc441a05633f4"}, - {file = "fonttools-4.46.0.tar.gz", hash = "sha256:2ae45716c27a41807d58a9f3f59983bdc8c0a46cb259e4450ab7e196253a9853"}, -] - -[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", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] + {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)"] graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "scipy"] +interpolatable = ["munkres", "pycairo", "scipy"] lxml = ["lxml (>=4.0,<5)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] @@ -782,13 +786,13 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] name = "fsspec" -version = "2023.12.1" +version = "2023.12.2" description = "File-system specification" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2023.12.1-py3-none-any.whl", hash = "sha256:6271f1d3075a378bfe432f6f42bf7e1d2a6ba74f78dd9b512385474c579146a0"}, - {file = "fsspec-2023.12.1.tar.gz", hash = "sha256:c4da01a35ac65c853f833e43f67802c25213f560820d54ddf248f92eddd5e990"}, + {file = "fsspec-2023.12.2-py3-none-any.whl", hash = "sha256:d800d87f72189a745fa3d6b033b9dc4a34ad069f60ca60b943a63599f5501960"}, + {file = "fsspec-2023.12.2.tar.gz", hash = "sha256:8548d39e8810b59c38014934f6b31e57f40c1b20f911f4cc2b85389c7e9bf0cb"}, ] [package.extras] @@ -855,13 +859,13 @@ files = [ [[package]] name = "google-auth" -version = "2.25.1" +version = "2.27.0" description = "Google Authentication Library" optional = true python-versions = ">=3.7" files = [ - {file = "google-auth-2.25.1.tar.gz", hash = "sha256:d5d66b8f4f6e3273740d7bb73ddefa6c2d1ff691704bd407d51c6b5800e7c97b"}, - {file = "google_auth-2.25.1-py2.py3-none-any.whl", hash = "sha256:dfd7b44935d498e106c08883b2dac0ad36d8aa10402a6412e9a1c9d74b4773f1"}, + {file = "google-auth-2.27.0.tar.gz", hash = "sha256:e863a56ccc2d8efa83df7a80272601e43487fa9a728a376205c86c26aaefa821"}, + {file = "google_auth-2.27.0-py2.py3-none-any.whl", hash = "sha256:8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245"}, ] [package.dependencies] @@ -911,69 +915,69 @@ six = "*" [[package]] name = "grpcio" -version = "1.59.3" +version = "1.60.0" description = "HTTP/2-based RPC framework" optional = true python-versions = ">=3.7" files = [ - {file = "grpcio-1.59.3-cp310-cp310-linux_armv7l.whl", hash = "sha256:aca028a6c7806e5b61e5f9f4232432c52856f7fcb98e330b20b6bc95d657bdcc"}, - {file = "grpcio-1.59.3-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:19ad26a7967f7999c8960d2b9fe382dae74c55b0c508c613a6c2ba21cddf2354"}, - {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:72b71dad2a3d1650e69ad42a5c4edbc59ee017f08c32c95694172bc501def23c"}, - {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c0f0a11d82d0253656cc42e04b6a149521e02e755fe2e4edd21123de610fd1d4"}, - {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60cddafb70f9a2c81ba251b53b4007e07cca7389e704f86266e22c4bffd8bf1d"}, - {file = "grpcio-1.59.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6c75a1fa0e677c1d2b6d4196ad395a5c381dfb8385f07ed034ef667cdcdbcc25"}, - {file = "grpcio-1.59.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e1d8e01438d5964a11167eec1edb5f85ed8e475648f36c834ed5db4ffba24ac8"}, - {file = "grpcio-1.59.3-cp310-cp310-win32.whl", hash = "sha256:c4b0076f0bf29ee62335b055a9599f52000b7941f577daa001c7ef961a1fbeab"}, - {file = "grpcio-1.59.3-cp310-cp310-win_amd64.whl", hash = "sha256:b1f00a3e6e0c3dccccffb5579fc76ebfe4eb40405ba308505b41ef92f747746a"}, - {file = "grpcio-1.59.3-cp311-cp311-linux_armv7l.whl", hash = "sha256:3996aaa21231451161dc29df6a43fcaa8b332042b6150482c119a678d007dd86"}, - {file = "grpcio-1.59.3-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:cb4e9cbd9b7388fcb06412da9f188c7803742d06d6f626304eb838d1707ec7e3"}, - {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8022ca303d6c694a0d7acfb2b472add920217618d3a99eb4b14edc7c6a7e8fcf"}, - {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b36683fad5664283755a7f4e2e804e243633634e93cd798a46247b8e54e3cb0d"}, - {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8239b853226e4824e769517e1b5232e7c4dda3815b200534500338960fcc6118"}, - {file = "grpcio-1.59.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0511af8653fbda489ff11d542a08505d56023e63cafbda60e6e00d4e0bae86ea"}, - {file = "grpcio-1.59.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e78dc982bda74cef2ddfce1c91d29b96864c4c680c634e279ed204d51e227473"}, - {file = "grpcio-1.59.3-cp311-cp311-win32.whl", hash = "sha256:6a5c3a96405966c023e139c3bcccb2c7c776a6f256ac6d70f8558c9041bdccc3"}, - {file = "grpcio-1.59.3-cp311-cp311-win_amd64.whl", hash = "sha256:ed26826ee423b11477297b187371cdf4fa1eca874eb1156422ef3c9a60590dd9"}, - {file = "grpcio-1.59.3-cp312-cp312-linux_armv7l.whl", hash = "sha256:45dddc5cb5227d30fa43652d8872dc87f086d81ab4b500be99413bad0ae198d7"}, - {file = "grpcio-1.59.3-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:1736496d74682e53dd0907fd515f2694d8e6a96c9a359b4080b2504bf2b2d91b"}, - {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ddbd1a16138e52e66229047624de364f88a948a4d92ba20e4e25ad7d22eef025"}, - {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcfa56f8d031ffda902c258c84c4b88707f3a4be4827b4e3ab8ec7c24676320d"}, - {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2eb8f0c7c0c62f7a547ad7a91ba627a5aa32a5ae8d930783f7ee61680d7eb8d"}, - {file = "grpcio-1.59.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8d993399cc65e3a34f8fd48dd9ad7a376734564b822e0160dd18b3d00c1a33f9"}, - {file = "grpcio-1.59.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0bd141f4f41907eb90bda74d969c3cb21c1c62779419782a5b3f5e4b5835718"}, - {file = "grpcio-1.59.3-cp312-cp312-win32.whl", hash = "sha256:33b8fd65d4e97efa62baec6171ce51f9cf68f3a8ba9f866f4abc9d62b5c97b79"}, - {file = "grpcio-1.59.3-cp312-cp312-win_amd64.whl", hash = "sha256:0e735ed002f50d4f3cb9ecfe8ac82403f5d842d274c92d99db64cfc998515e07"}, - {file = "grpcio-1.59.3-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ea40ce4404e7cca0724c91a7404da410f0144148fdd58402a5942971e3469b94"}, - {file = "grpcio-1.59.3-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:83113bcc393477b6f7342b9f48e8a054330c895205517edc66789ceea0796b53"}, - {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:73afbac602b8f1212a50088193601f869b5073efa9855b3e51aaaec97848fc8a"}, - {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d61de1950b0b0699917b686b1ca108690702fcc2df127b8c9c9320f93e069"}, - {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cd76057b5c9a4d68814610ef9226925f94c1231bbe533fdf96f6181f7d2ff9e"}, - {file = "grpcio-1.59.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:95d6fd804c81efe4879e38bfd84d2b26e339a0a9b797e7615e884ef4686eb47b"}, - {file = "grpcio-1.59.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0d42048b8a3286ea4134faddf1f9a59cf98192b94aaa10d910a25613c5eb5bfb"}, - {file = "grpcio-1.59.3-cp37-cp37m-win_amd64.whl", hash = "sha256:4619fea15c64bcdd9d447cdbdde40e3d5f1da3a2e8ae84103d94a9c1df210d7e"}, - {file = "grpcio-1.59.3-cp38-cp38-linux_armv7l.whl", hash = "sha256:95b5506e70284ac03b2005dd9ffcb6708c9ae660669376f0192a710687a22556"}, - {file = "grpcio-1.59.3-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:9e17660947660ccfce56c7869032910c179a5328a77b73b37305cd1ee9301c2e"}, - {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:00912ce19914d038851be5cd380d94a03f9d195643c28e3ad03d355cc02ce7e8"}, - {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e58b3cadaa3c90f1efca26ba33e0d408b35b497307027d3d707e4bcd8de862a6"}, - {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d787ecadea865bdf78f6679f6f5bf4b984f18f659257ba612979df97a298b3c3"}, - {file = "grpcio-1.59.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0814942ba1bba269db4e760a34388640c601dece525c6a01f3b4ff030cc0db69"}, - {file = "grpcio-1.59.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fb111aa99d3180c361a35b5ae1e2c63750220c584a1344229abc139d5c891881"}, - {file = "grpcio-1.59.3-cp38-cp38-win32.whl", hash = "sha256:eb8ba504c726befe40a356ecbe63c6c3c64c9a439b3164f5a718ec53c9874da0"}, - {file = "grpcio-1.59.3-cp38-cp38-win_amd64.whl", hash = "sha256:cdbc6b32fadab9bebc6f49d3e7ec4c70983c71e965497adab7f87de218e84391"}, - {file = "grpcio-1.59.3-cp39-cp39-linux_armv7l.whl", hash = "sha256:c82ca1e4be24a98a253d6dbaa216542e4163f33f38163fc77964b0f0d255b552"}, - {file = "grpcio-1.59.3-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:36636babfda14f9e9687f28d5b66d349cf88c1301154dc71c6513de2b6c88c59"}, - {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5f9b2e591da751ac7fdd316cc25afafb7a626dededa9b414f90faad7f3ccebdb"}, - {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a93a82876a4926bf451db82ceb725bd87f42292bacc94586045261f501a86994"}, - {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce31fa0bfdd1f2bb15b657c16105c8652186eab304eb512e6ae3b99b2fdd7d13"}, - {file = "grpcio-1.59.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:16da0e40573962dab6cba16bec31f25a4f468e6d05b658e589090fe103b03e3d"}, - {file = "grpcio-1.59.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1d1a17372fd425addd5812049fa7374008ffe689585f27f802d0935522cf4b7"}, - {file = "grpcio-1.59.3-cp39-cp39-win32.whl", hash = "sha256:52cc38a7241b5f7b4a91aaf9000fdd38e26bb00d5e8a71665ce40cfcee716281"}, - {file = "grpcio-1.59.3-cp39-cp39-win_amd64.whl", hash = "sha256:b491e5bbcad3020a96842040421e508780cade35baba30f402df9d321d1c423e"}, - {file = "grpcio-1.59.3.tar.gz", hash = "sha256:7800f99568a74a06ebdccd419dd1b6e639b477dcaf6da77ea702f8fb14ce5f80"}, -] - -[package.extras] -protobuf = ["grpcio-tools (>=1.59.3)"] + {file = "grpcio-1.60.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d020cfa595d1f8f5c6b343530cd3ca16ae5aefdd1e832b777f9f0eb105f5b139"}, + {file = "grpcio-1.60.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b98f43fcdb16172dec5f4b49f2fece4b16a99fd284d81c6bbac1b3b69fcbe0ff"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:20e7a4f7ded59097c84059d28230907cd97130fa74f4a8bfd1d8e5ba18c81491"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452ca5b4afed30e7274445dd9b441a35ece656ec1600b77fff8c216fdf07df43"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43e636dc2ce9ece583b3e2ca41df5c983f4302eabc6d5f9cd04f0562ee8ec1ae"}, + {file = "grpcio-1.60.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e306b97966369b889985a562ede9d99180def39ad42c8014628dd3cc343f508"}, + {file = "grpcio-1.60.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f897c3b127532e6befdcf961c415c97f320d45614daf84deba0a54e64ea2457b"}, + {file = "grpcio-1.60.0-cp310-cp310-win32.whl", hash = "sha256:b87efe4a380887425bb15f220079aa8336276398dc33fce38c64d278164f963d"}, + {file = "grpcio-1.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:a9c7b71211f066908e518a2ef7a5e211670761651039f0d6a80d8d40054047df"}, + {file = "grpcio-1.60.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:fb464479934778d7cc5baf463d959d361954d6533ad34c3a4f1d267e86ee25fd"}, + {file = "grpcio-1.60.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:4b44d7e39964e808b071714666a812049765b26b3ea48c4434a3b317bac82f14"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:90bdd76b3f04bdb21de5398b8a7c629676c81dfac290f5f19883857e9371d28c"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91229d7203f1ef0ab420c9b53fe2ca5c1fbeb34f69b3bc1b5089466237a4a134"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b36a2c6d4920ba88fa98075fdd58ff94ebeb8acc1215ae07d01a418af4c0253"}, + {file = "grpcio-1.60.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:297eef542156d6b15174a1231c2493ea9ea54af8d016b8ca7d5d9cc65cfcc444"}, + {file = "grpcio-1.60.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:87c9224acba0ad8bacddf427a1c2772e17ce50b3042a789547af27099c5f751d"}, + {file = "grpcio-1.60.0-cp311-cp311-win32.whl", hash = "sha256:95ae3e8e2c1b9bf671817f86f155c5da7d49a2289c5cf27a319458c3e025c320"}, + {file = "grpcio-1.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:467a7d31554892eed2aa6c2d47ded1079fc40ea0b9601d9f79204afa8902274b"}, + {file = "grpcio-1.60.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:a7152fa6e597c20cb97923407cf0934e14224af42c2b8d915f48bc3ad2d9ac18"}, + {file = "grpcio-1.60.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:7db16dd4ea1b05ada504f08d0dca1cd9b926bed3770f50e715d087c6f00ad748"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:b0571a5aef36ba9177e262dc88a9240c866d903a62799e44fd4aae3f9a2ec17e"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fd9584bf1bccdfff1512719316efa77be235469e1e3295dce64538c4773840b"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6a478581b1a1a8fdf3318ecb5f4d0cda41cacdffe2b527c23707c9c1b8fdb55"}, + {file = "grpcio-1.60.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:77c8a317f0fd5a0a2be8ed5cbe5341537d5c00bb79b3bb27ba7c5378ba77dbca"}, + {file = "grpcio-1.60.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1c30bb23a41df95109db130a6cc1b974844300ae2e5d68dd4947aacba5985aa5"}, + {file = "grpcio-1.60.0-cp312-cp312-win32.whl", hash = "sha256:2aef56e85901c2397bd557c5ba514f84de1f0ae5dd132f5d5fed042858115951"}, + {file = "grpcio-1.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:e381fe0c2aa6c03b056ad8f52f8efca7be29fb4d9ae2f8873520843b6039612a"}, + {file = "grpcio-1.60.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:92f88ca1b956eb8427a11bb8b4a0c0b2b03377235fc5102cb05e533b8693a415"}, + {file = "grpcio-1.60.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:e278eafb406f7e1b1b637c2cf51d3ad45883bb5bd1ca56bc05e4fc135dfdaa65"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:a48edde788b99214613e440fce495bbe2b1e142a7f214cce9e0832146c41e324"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de2ad69c9a094bf37c1102b5744c9aec6cf74d2b635558b779085d0263166454"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:073f959c6f570797272f4ee9464a9997eaf1e98c27cb680225b82b53390d61e6"}, + {file = "grpcio-1.60.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c826f93050c73e7769806f92e601e0efdb83ec8d7c76ddf45d514fee54e8e619"}, + {file = "grpcio-1.60.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9e30be89a75ee66aec7f9e60086fadb37ff8c0ba49a022887c28c134341f7179"}, + {file = "grpcio-1.60.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b0fb2d4801546598ac5cd18e3ec79c1a9af8b8f2a86283c55a5337c5aeca4b1b"}, + {file = "grpcio-1.60.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:9073513ec380434eb8d21970e1ab3161041de121f4018bbed3146839451a6d8e"}, + {file = "grpcio-1.60.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:74d7d9fa97809c5b892449b28a65ec2bfa458a4735ddad46074f9f7d9550ad13"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:1434ca77d6fed4ea312901122dc8da6c4389738bf5788f43efb19a838ac03ead"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e61e76020e0c332a98290323ecfec721c9544f5b739fab925b6e8cbe1944cf19"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675997222f2e2f22928fbba640824aebd43791116034f62006e19730715166c0"}, + {file = "grpcio-1.60.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5208a57eae445ae84a219dfd8b56e04313445d146873117b5fa75f3245bc1390"}, + {file = "grpcio-1.60.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:428d699c8553c27e98f4d29fdc0f0edc50e9a8a7590bfd294d2edb0da7be3629"}, + {file = "grpcio-1.60.0-cp38-cp38-win32.whl", hash = "sha256:83f2292ae292ed5a47cdcb9821039ca8e88902923198f2193f13959360c01860"}, + {file = "grpcio-1.60.0-cp38-cp38-win_amd64.whl", hash = "sha256:705a68a973c4c76db5d369ed573fec3367d7d196673fa86614b33d8c8e9ebb08"}, + {file = "grpcio-1.60.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:c193109ca4070cdcaa6eff00fdb5a56233dc7610216d58fb81638f89f02e4968"}, + {file = "grpcio-1.60.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:676e4a44e740deaba0f4d95ba1d8c5c89a2fcc43d02c39f69450b1fa19d39590"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5ff21e000ff2f658430bde5288cb1ac440ff15c0d7d18b5fb222f941b46cb0d2"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c86343cf9ff7b2514dd229bdd88ebba760bd8973dac192ae687ff75e39ebfab"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fd3b3968ffe7643144580f260f04d39d869fcc2cddb745deef078b09fd2b328"}, + {file = "grpcio-1.60.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:30943b9530fe3620e3b195c03130396cd0ee3a0d10a66c1bee715d1819001eaf"}, + {file = "grpcio-1.60.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b10241250cb77657ab315270b064a6c7f1add58af94befa20687e7c8d8603ae6"}, + {file = "grpcio-1.60.0-cp39-cp39-win32.whl", hash = "sha256:79a050889eb8d57a93ed21d9585bb63fca881666fc709f5d9f7f9372f5e7fd03"}, + {file = "grpcio-1.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:8a97a681e82bc11a42d4372fe57898d270a2707f36c45c6676e49ce0d5c41353"}, + {file = "grpcio-1.60.0.tar.gz", hash = "sha256:2199165a1affb666aa24adf0c97436686d0a61bc5fc113c037701fb7c7fceb96"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.60.0)"] [[package]] name = "h5py" @@ -1014,13 +1018,13 @@ numpy = ">=1.17.3" [[package]] name = "huggingface-hub" -version = "0.19.4" +version = "0.20.3" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.8.0" files = [ - {file = "huggingface_hub-0.19.4-py3-none-any.whl", hash = "sha256:dba013f779da16f14b606492828f3760600a1e1801432d09fe1c33e50b825bb5"}, - {file = "huggingface_hub-0.19.4.tar.gz", hash = "sha256:176a4fc355a851c17550e7619488f383189727eab209534d7cef2114dae77b22"}, + {file = "huggingface_hub-0.20.3-py3-none-any.whl", hash = "sha256:d988ae4f00d3e307b0c80c6a05ca6dbb7edba8bba3079f74cda7d9c2e562a7b6"}, + {file = "huggingface_hub-0.20.3.tar.gz", hash = "sha256:94e7f8e074475fbc67d6a71957b678e1b4a74ff1b64a644fd6cbb83da962d05d"}, ] [package.dependencies] @@ -1033,15 +1037,14 @@ tqdm = ">=4.42.1" typing-extensions = ">=3.7.4.3" [package.extras] -all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] cli = ["InquirerPy (==0.3.4)"] -dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] -docs = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "hf-doc-builder", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)", "watchdog"] +dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] inference = ["aiohttp", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)"] quality = ["mypy (==1.5.1)", "ruff (>=0.1.3)"] tensorflow = ["graphviz", "pydot", "tensorflow"] -testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] +testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] torch = ["torch"] typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"] @@ -1110,13 +1113,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.0.0" +version = "7.0.1" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.0.0-py3-none-any.whl", hash = "sha256:d97503976bb81f40a193d41ee6570868479c69d5068651eb039c40d850c59d67"}, - {file = "importlib_metadata-7.0.0.tar.gz", hash = "sha256:7fc841f8b8332803464e5dc1c63a2e59121f46ca186c0e2e182e80bf8c1319f7"}, + {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, + {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, ] [package.dependencies] @@ -1131,7 +1134,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "6.1.1" description = "Read resources from Python packages" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, @@ -1195,20 +1198,17 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa [[package]] name = "isort" -version = "5.12.0" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "itsdangerous" @@ -1306,7 +1306,7 @@ tests = ["black", "flake8", "isort", "namex", "pandas", "portpicker", "pytest", name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, @@ -1442,47 +1442,48 @@ six = ">=1.4.1" [[package]] name = "lazy-object-proxy" -version = "1.9.0" +version = "1.10.0" description = "A fast and thorough lazy object proxy." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, + {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]] @@ -1492,8 +1493,6 @@ description = "Clang Python Bindings, mirrored from the official LLVM repo: http optional = true python-versions = "*" files = [ - {file = "libclang-16.0.6-1-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:88bc7e7b393c32e41e03ba77ef02fdd647da1f764c2cd028e69e0837080b79f6"}, - {file = "libclang-16.0.6-1-py2.py3-none-manylinux2014_armv7l.whl", hash = "sha256:d80ed5827736ed5ec2bcedf536720476fd9d4fa4c79ef0cb24aea4c59332f361"}, {file = "libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl", hash = "sha256:da9e47ebc3f0a6d90fb169ef25f9fbcd29b4a4ef97a8b0e3e3a17800af1423f4"}, {file = "libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:e1a5ad1e895e5443e205568c85c04b4608e4e973dae42f4dfd9cb46c81d1486b"}, {file = "libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl", hash = "sha256:9dcdc730939788b8b69ffd6d5d75fe5366e3ee007f1e36a99799ec0b0c001492"}, @@ -1507,13 +1506,13 @@ files = [ [[package]] name = "markdown" -version = "3.5.1" +version = "3.5.2" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, - {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, + {file = "Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd"}, + {file = "Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"}, ] [package.dependencies] @@ -1525,78 +1524,78 @@ testing = ["coverage", "pyyaml"] [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.4" 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.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-win32.whl", hash = "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-win32.whl", hash = "sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-win_amd64.whl", hash = "sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-win32.whl", hash = "sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-win_amd64.whl", hash = "sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-win32.whl", hash = "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959"}, + {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, ] [[package]] name = "matplotlib" version = "3.8.2" description = "Python plotting package" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "matplotlib-3.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7"}, @@ -1732,13 +1731,13 @@ tests = ["pytest (>=4.6)"] [[package]] name = "nest-asyncio" -version = "1.5.8" +version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" files = [ - {file = "nest_asyncio-1.5.8-py3-none-any.whl", hash = "sha256:accda7a339a70599cb08f9dd09a67e0c2ef8d8d6f4c07f96ab203f2ae254e48d"}, - {file = "nest_asyncio-1.5.8.tar.gz", hash = "sha256:25aa2ca0d2a5b5531956b9e273b45cf664cae2b145101d73b86b199978d48fdb"}, + {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]] @@ -2041,7 +2040,7 @@ ptyprocess = ">=0.5" name = "pillow" version = "10.2.0" description = "Python Imaging Library (Fork)" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, @@ -2154,13 +2153,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] @@ -2169,13 +2168,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "prompt-toolkit" -version = "3.0.41" +version = "3.0.43" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.41-py3-none-any.whl", hash = "sha256:f36fe301fafb7470e86aaf90f036eef600a3210be4decf461a5b1ca8403d3cb2"}, - {file = "prompt_toolkit-3.0.41.tar.gz", hash = "sha256:941367d97fc815548822aa26c2a269fdc4eb21e9ec05fc5d447cf09bad5d75f0"}, + {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, + {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, ] [package.dependencies] @@ -2183,52 +2182,24 @@ wcwidth = "*" [[package]] name = "protobuf" -version = "4.25.1" +version = "4.25.2" description = "" optional = true python-versions = ">=3.8" files = [ - {file = "protobuf-4.25.1-cp310-abi3-win32.whl", hash = "sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7"}, - {file = "protobuf-4.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b"}, - {file = "protobuf-4.25.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd"}, - {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb"}, - {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7"}, - {file = "protobuf-4.25.1-cp38-cp38-win32.whl", hash = "sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd"}, - {file = "protobuf-4.25.1-cp38-cp38-win_amd64.whl", hash = "sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0"}, - {file = "protobuf-4.25.1-cp39-cp39-win32.whl", hash = "sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510"}, - {file = "protobuf-4.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10"}, - {file = "protobuf-4.25.1-py3-none-any.whl", hash = "sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6"}, - {file = "protobuf-4.25.1.tar.gz", hash = "sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2"}, -] - -[[package]] -name = "psutil" -version = "5.9.6" -description = "Cross-platform lib for process and system monitoring in Python." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "psutil-5.9.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:fb8a697f11b0f5994550555fcfe3e69799e5b060c8ecf9e2f75c69302cc35c0d"}, - {file = "psutil-5.9.6-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:91ecd2d9c00db9817a4b4192107cf6954addb5d9d67a969a4f436dbc9200f88c"}, - {file = "psutil-5.9.6-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:10e8c17b4f898d64b121149afb136c53ea8b68c7531155147867b7b1ac9e7e28"}, - {file = "psutil-5.9.6-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:18cd22c5db486f33998f37e2bb054cc62fd06646995285e02a51b1e08da97017"}, - {file = "psutil-5.9.6-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:ca2780f5e038379e520281e4c032dddd086906ddff9ef0d1b9dcf00710e5071c"}, - {file = "psutil-5.9.6-cp27-none-win32.whl", hash = "sha256:70cb3beb98bc3fd5ac9ac617a327af7e7f826373ee64c80efd4eb2856e5051e9"}, - {file = "psutil-5.9.6-cp27-none-win_amd64.whl", hash = "sha256:51dc3d54607c73148f63732c727856f5febec1c7c336f8f41fcbd6315cce76ac"}, - {file = "psutil-5.9.6-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c69596f9fc2f8acd574a12d5f8b7b1ba3765a641ea5d60fb4736bf3c08a8214a"}, - {file = "psutil-5.9.6-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92e0cc43c524834af53e9d3369245e6cc3b130e78e26100d1f63cdb0abeb3d3c"}, - {file = "psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:748c9dd2583ed86347ed65d0035f45fa8c851e8d90354c122ab72319b5f366f4"}, - {file = "psutil-5.9.6-cp36-cp36m-win32.whl", hash = "sha256:3ebf2158c16cc69db777e3c7decb3c0f43a7af94a60d72e87b2823aebac3d602"}, - {file = "psutil-5.9.6-cp36-cp36m-win_amd64.whl", hash = "sha256:ff18b8d1a784b810df0b0fff3bcb50ab941c3b8e2c8de5726f9c71c601c611aa"}, - {file = "psutil-5.9.6-cp37-abi3-win32.whl", hash = "sha256:a6f01f03bf1843280f4ad16f4bde26b817847b4c1a0db59bf6419807bc5ce05c"}, - {file = "psutil-5.9.6-cp37-abi3-win_amd64.whl", hash = "sha256:6e5fb8dc711a514da83098bc5234264e551ad980cec5f85dabf4d38ed6f15e9a"}, - {file = "psutil-5.9.6-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:daecbcbd29b289aac14ece28eca6a3e60aa361754cf6da3dfb20d4d32b6c7f57"}, - {file = "psutil-5.9.6.tar.gz", hash = "sha256:e4b92ddcd7dd4cdd3f900180ea1e104932c7bce234fb88976e2a3b296441225a"}, + {file = "protobuf-4.25.2-cp310-abi3-win32.whl", hash = "sha256:b50c949608682b12efb0b2717f53256f03636af5f60ac0c1d900df6213910fd6"}, + {file = "protobuf-4.25.2-cp310-abi3-win_amd64.whl", hash = "sha256:8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9"}, + {file = "protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d"}, + {file = "protobuf-4.25.2-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:10894a2885b7175d3984f2be8d9850712c57d5e7587a2410720af8be56cdaf62"}, + {file = "protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020"}, + {file = "protobuf-4.25.2-cp38-cp38-win32.whl", hash = "sha256:33a1aeef4b1927431d1be780e87b641e322b88d654203a9e9d93f218ee359e61"}, + {file = "protobuf-4.25.2-cp38-cp38-win_amd64.whl", hash = "sha256:47f3de503fe7c1245f6f03bea7e8d3ec11c6c4a2ea9ef910e3221c8a15516d62"}, + {file = "protobuf-4.25.2-cp39-cp39-win32.whl", hash = "sha256:5e5c933b4c30a988b52e0b7c02641760a5ba046edc5e43d3b94a74c9fc57c1b3"}, + {file = "protobuf-4.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:d66a769b8d687df9024f2985d5137a337f957a0916cf5464d1513eee96a63ff0"}, + {file = "protobuf-4.25.2-py3-none-any.whl", hash = "sha256:a8b7a98d4ce823303145bf3c1a8bdb0f2f4642a414b196f04ad9853ed0c8f830"}, + {file = "protobuf-4.25.2.tar.gz", hash = "sha256:fe599e175cb347efc8ee524bcd4b902d11f7262c0e569ececcb89995c15f0a5e"}, ] -[package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] - [[package]] name = "ptyprocess" version = "0.7.0" @@ -2326,47 +2297,47 @@ pybtex = ">=0.16" [[package]] name = "pydantic" -version = "1.10.13" +version = "1.10.14" description = "Data validation and settings management using python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737"}, - {file = "pydantic-1.10.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01"}, - {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548"}, - {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8"}, - {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69"}, - {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17"}, - {file = "pydantic-1.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f"}, - {file = "pydantic-1.10.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653"}, - {file = "pydantic-1.10.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe"}, - {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9"}, - {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80"}, - {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580"}, - {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0"}, - {file = "pydantic-1.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0"}, - {file = "pydantic-1.10.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132"}, - {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5"}, - {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8"}, - {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87"}, - {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f"}, - {file = "pydantic-1.10.13-cp37-cp37m-win_amd64.whl", hash = "sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33"}, - {file = "pydantic-1.10.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261"}, - {file = "pydantic-1.10.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599"}, - {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127"}, - {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f"}, - {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78"}, - {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953"}, - {file = "pydantic-1.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f"}, - {file = "pydantic-1.10.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6"}, - {file = "pydantic-1.10.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691"}, - {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd"}, - {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1"}, - {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96"}, - {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d"}, - {file = "pydantic-1.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d"}, - {file = "pydantic-1.10.13-py3-none-any.whl", hash = "sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687"}, - {file = "pydantic-1.10.13.tar.gz", hash = "sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340"}, + {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, + {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, + {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, + {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, + {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, + {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, + {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, + {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, + {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, + {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, ] [package.dependencies] @@ -2438,7 +2409,7 @@ testutils = ["gitpython (>3)"] name = "pyparsing" version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false +optional = true python-versions = ">=3.6.8" files = [ {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, @@ -2481,13 +2452,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.3" +version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] @@ -2586,7 +2557,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"}, @@ -2623,34 +2593,32 @@ files = [ [[package]] name = "qibo" -version = "0.2.3" +version = "0.2.4" description = "A framework for quantum computing with hardware acceleration." optional = false python-versions = ">=3.9,<3.12" files = [ - {file = "qibo-0.2.3-py3-none-any.whl", hash = "sha256:53e649c57bf17c75ccafff804633d99aab595a4cbf42b3c42d625764c3dbb5b6"}, - {file = "qibo-0.2.3.tar.gz", hash = "sha256:ad375d47499781c9a0c942fcbd3747c84346e4c671e40fca34797929a2f509b3"}, + {file = "qibo-0.2.4-py3-none-any.whl", hash = "sha256:5aaf7693004d8106eff3cc614e20ff03e7016742ab129e7ece76c84b3deb7366"}, + {file = "qibo-0.2.4.tar.gz", hash = "sha256:8ab8519b107fdfa57a7aa19d9243403437ceb4a776454816ce3071a00bdc15ff"}, ] [package.dependencies] cma = ">=3.3.0,<4.0.0" hyperopt = ">=0.2.7,<0.3.0" joblib = ">=1.2.0,<2.0.0" -matplotlib = ">=3.7.0,<4.0.0" -psutil = ">=5.9.4,<6.0.0" scipy = ">=1.10.1,<2.0.0" sympy = ">=1.11.1,<2.0.0" tabulate = ">=0.9.0,<0.10.0" [[package]] name = "qibolab" -version = "0.1.4" +version = "0.1.5" description = "Quantum hardware module and drivers for Qibo" optional = false python-versions = ">=3.9,<3.12" files = [ - {file = "qibolab-0.1.4-py3-none-any.whl", hash = "sha256:cbab4d6737858a66e0c4de056c094aec87d8495e21f4c45474c0cd633b1945a3"}, - {file = "qibolab-0.1.4.tar.gz", hash = "sha256:af05dbcc6e7ce4240f00cd51331502fda81b23f6b4ace64aeb21782f4274df48"}, + {file = "qibolab-0.1.5-py3-none-any.whl", hash = "sha256:589f5c73ccb92b628a01cef0a02ae40ab42f27558cae6dd1b45b570a00005c33"}, + {file = "qibolab-0.1.5.tar.gz", hash = "sha256:2c8717a3e5d8a22106d05833116edf76fb09c0ba8da0ae48efb8666b5814d690"}, ] [package.dependencies] @@ -2666,7 +2634,7 @@ los = ["qcodes (>=0.37.0,<0.38.0)", "qcodes_contrib_drivers (==0.18.0)"] qblox = ["pyvisa-py (==0.5.3)", "qblox-instruments (==0.11.0)", "qcodes (>=0.37.0,<0.38.0)", "qcodes_contrib_drivers (==0.18.0)"] qm = ["qm-qua (==1.1.1)", "qualang-tools (==0.14.0)"] rfsoc = ["qibosoq (>=0.0.4,<0.2)"] -zh = ["laboneq (==2.20.1)"] +zh = ["laboneq (==2.21.0)"] [[package]] name = "recommonmark" @@ -2753,92 +2721,107 @@ pyasn1 = ">=0.1.3" [[package]] name = "scikit-learn" -version = "1.3.2" +version = "1.4.0" description = "A set of python modules for machine learning and data mining" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "scikit-learn-1.3.2.tar.gz", hash = "sha256:a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05"}, - {file = "scikit_learn-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e326c0eb5cf4d6ba40f93776a20e9a7a69524c4db0757e7ce24ba222471ee8a1"}, - {file = "scikit_learn-1.3.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:535805c2a01ccb40ca4ab7d081d771aea67e535153e35a1fd99418fcedd1648a"}, - {file = "scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1215e5e58e9880b554b01187b8c9390bf4dc4692eedeaf542d3273f4785e342c"}, - {file = "scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ee107923a623b9f517754ea2f69ea3b62fc898a3641766cb7deb2f2ce450161"}, - {file = "scikit_learn-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:35a22e8015048c628ad099da9df5ab3004cdbf81edc75b396fd0cff8699ac58c"}, - {file = "scikit_learn-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6fb6bc98f234fda43163ddbe36df8bcde1d13ee176c6dc9b92bb7d3fc842eb66"}, - {file = "scikit_learn-1.3.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:18424efee518a1cde7b0b53a422cde2f6625197de6af36da0b57ec502f126157"}, - {file = "scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3271552a5eb16f208a6f7f617b8cc6d1f137b52c8a1ef8edf547db0259b2c9fb"}, - {file = "scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4144a5004a676d5022b798d9e573b05139e77f271253a4703eed295bde0433"}, - {file = "scikit_learn-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:67f37d708f042a9b8d59551cf94d30431e01374e00dc2645fa186059c6c5d78b"}, - {file = "scikit_learn-1.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8db94cd8a2e038b37a80a04df8783e09caac77cbe052146432e67800e430c028"}, - {file = "scikit_learn-1.3.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:61a6efd384258789aa89415a410dcdb39a50e19d3d8410bd29be365bcdd512d5"}, - {file = "scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb06f8dce3f5ddc5dee1715a9b9f19f20d295bed8e3cd4fa51e1d050347de525"}, - {file = "scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2de18d86f630d68fe1f87af690d451388bb186480afc719e5f770590c2ef6c"}, - {file = "scikit_learn-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:0402638c9a7c219ee52c94cbebc8fcb5eb9fe9c773717965c1f4185588ad3107"}, - {file = "scikit_learn-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a19f90f95ba93c1a7f7924906d0576a84da7f3b2282ac3bfb7a08a32801add93"}, - {file = "scikit_learn-1.3.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b8692e395a03a60cd927125eef3a8e3424d86dde9b2370d544f0ea35f78a8073"}, - {file = "scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15e1e94cc23d04d39da797ee34236ce2375ddea158b10bee3c343647d615581d"}, - {file = "scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:785a2213086b7b1abf037aeadbbd6d67159feb3e30263434139c98425e3dcfcf"}, - {file = "scikit_learn-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:64381066f8aa63c2710e6b56edc9f0894cc7bf59bd71b8ce5613a4559b6145e0"}, - {file = "scikit_learn-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6c43290337f7a4b969d207e620658372ba3c1ffb611f8bc2b6f031dc5c6d1d03"}, - {file = "scikit_learn-1.3.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:dc9002fc200bed597d5d34e90c752b74df516d592db162f756cc52836b38fe0e"}, - {file = "scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d08ada33e955c54355d909b9c06a4789a729977f165b8bae6f225ff0a60ec4a"}, - {file = "scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763f0ae4b79b0ff9cca0bf3716bcc9915bdacff3cebea15ec79652d1cc4fa5c9"}, - {file = "scikit_learn-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:ed932ea780517b00dae7431e031faae6b49b20eb6950918eb83bd043237950e0"}, -] - -[package.dependencies] -joblib = ">=1.1.1" -numpy = ">=1.17.3,<2.0" -scipy = ">=1.5.0" + {file = "scikit-learn-1.4.0.tar.gz", hash = "sha256:d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fce93a7473e2f4ee4cc280210968288d6a7d7ad8dc6fa7bb7892145e407085f9"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d77df3d1e15fc37a9329999979fa7868ba8655dbab21fe97fc7ddabac9e08cc7"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2404659fedec40eeafa310cd14d613e564d13dbf8f3c752d31c095195ec05de6"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e98632da8f6410e6fb6bf66937712c949b4010600ccd3f22a5388a83e610cc3c"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-win_amd64.whl", hash = "sha256:11b3b140f70fbc9f6a08884631ae8dd60a4bb2d7d6d1de92738ea42b740d8992"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8341eabdc754d5ab91641a7763243845e96b6d68e03e472531e88a4f1b09f21"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d1f6bce875ac2bb6b52514f67c185c564ccd299a05b65b7bab091a4c13dde12d"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c408b46b2fd61952d519ea1af2f8f0a7a703e1433923ab1704c4131520b2083b"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b465dd1dcd237b7b1dcd1a9048ccbf70a98c659474324fa708464c3a2533fad"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-win_amd64.whl", hash = "sha256:0db8e22c42f7980fe5eb22069b1f84c48966f3e0d23a01afde5999e3987a2501"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7eef6ea2ed289af40e88c0be9f7704ca8b5de18508a06897c3fe21e0905efdf"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:349669b01435bc4dbf25c6410b0892073befdaec52637d1a1d1ff53865dc8db3"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d439c584e58434d0350701bd33f6c10b309e851fccaf41c121aed55f6851d8cf"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e2427d9ef46477625ab9b55c1882844fe6fc500f418c3f8e650200182457bc"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-win_amd64.whl", hash = "sha256:d3d75343940e7bf9b85c830c93d34039fa015eeb341c5c0b4cd7a90dadfe00d4"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:76986d22e884ab062b1beecdd92379656e9d3789ecc1f9870923c178de55f9fe"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e22446ad89f1cb7657f0d849dcdc345b48e2d10afa3daf2925fdb740f85b714c"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74812c9eabb265be69d738a8ea8d4884917a59637fcbf88a5f0e9020498bc6b3"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad2a63e0dd386b92da3270887a29b308af4d7c750d8c4995dfd9a4798691bcc"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-win_amd64.whl", hash = "sha256:53b9e29177897c37e2ff9d4ba6ca12fdb156e22523e463db05def303f5c72b5c"}, + {file = "scikit_learn-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb8f044a8f5962613ce1feb4351d66f8d784bd072d36393582f351859b065f7d"}, + {file = "scikit_learn-1.4.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:a6372c90bbf302387792108379f1ec77719c1618d88496d0df30cb8e370b4661"}, + {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:785ce3c352bf697adfda357c3922c94517a9376002971bc5ea50896144bc8916"}, + {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0aba2a20d89936d6e72d95d05e3bf1db55bca5c5920926ad7b92c34f5e7d3bbe"}, + {file = "scikit_learn-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:2bac5d56b992f8f06816f2cd321eb86071c6f6d44bb4b1cb3d626525820d754b"}, + {file = "scikit_learn-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27ae4b0f1b2c77107c096a7e05b33458354107b47775428d1f11b23e30a73e8a"}, + {file = "scikit_learn-1.4.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5c5c62ffb52c3ffb755eb21fa74cc2cbf2c521bd53f5c04eaa10011dbecf5f80"}, + {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f0d2018ac6fa055dab65fe8a485967990d33c672d55bc254c56c35287b02fab"}, + {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a8918c415c4b4bf1d60c38d32958849a9191c2428ab35d30b78354085c7c7a"}, + {file = "scikit_learn-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:80a21de63275f8bcd7877b3e781679d2ff1eddfed515a599f95b2502a3283d42"}, + {file = "scikit_learn-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0f33bbafb310c26b81c4d41ecaebdbc1f63498a3f13461d50ed9a2e8f24d28e4"}, + {file = "scikit_learn-1.4.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:8b6ac1442ec714b4911e5aef8afd82c691b5c88b525ea58299d455acc4e8dcec"}, + {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05fc5915b716c6cc60a438c250108e9a9445b522975ed37e416d5ea4f9a63381"}, + {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:842b7d6989f3c574685e18da6f91223eb32301d0f93903dd399894250835a6f7"}, + {file = "scikit_learn-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:88bcb586fdff865372df1bc6be88bb7e6f9e0aa080dab9f54f5cac7eca8e2b6b"}, + {file = "scikit_learn-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f77674647dd31f56cb12ed13ed25b6ed43a056fffef051715022d2ebffd7a7d1"}, + {file = "scikit_learn-1.4.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:833999872e2920ce00f3a50839946bdac7539454e200eb6db54898a41f4bfd43"}, + {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:970ec697accaef10fb4f51763f3a7b1250f9f0553cf05514d0e94905322a0172"}, + {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:923d778f378ebacca2c672ab1740e5a413e437fb45ab45ab02578f8b689e5d43"}, + {file = "scikit_learn-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:1d041bc95006b545b59e458399e3175ab11ca7a03dc9a74a573ac891f5df1489"}, +] + +[package.dependencies] +joblib = ">=1.2.0" +numpy = ">=1.19.5" +scipy = ">=1.6.0" threadpoolctl = ">=2.0.0" [package.extras] -benchmark = ["matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "pandas (>=1.0.5)"] -docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.10.1)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=3.1.3)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)"] -tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.16.2)"] +benchmark = ["matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "pandas (>=1.1.5)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.15.0)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] +tests = ["black (>=23.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.19.12)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.17.2)"] [[package]] name = "scipy" -version = "1.11.4" +version = "1.12.0" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "scipy-1.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710"}, - {file = "scipy-1.11.4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56"}, - {file = "scipy-1.11.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446"}, - {file = "scipy-1.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff"}, - {file = "scipy-1.11.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993"}, - {file = "scipy-1.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79"}, - {file = "scipy-1.11.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660"}, - {file = "scipy-1.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937"}, - {file = "scipy-1.11.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd"}, - {file = "scipy-1.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65"}, - {file = "scipy-1.11.4.tar.gz", hash = "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa"}, -] - -[package.dependencies] -numpy = ">=1.21.6,<1.28.0" + {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", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "seaborn" @@ -2890,13 +2873,13 @@ files = [ [[package]] name = "skl2onnx" -version = "1.15.0" +version = "1.16.0" description = "Convert scikit-learn models to ONNX" optional = true python-versions = "*" files = [ - {file = "skl2onnx-1.15.0-py2.py3-none-any.whl", hash = "sha256:13a9ea5d50619ce42381c67001db8c87ce574a459a8f0738b45d2f4b93f465f6"}, - {file = "skl2onnx-1.15.0.tar.gz", hash = "sha256:05b2c2643ad0357ec1ea684d138438a2df657df828e57d07cb78c2e76be20e37"}, + {file = "skl2onnx-1.16.0-py2.py3-none-any.whl", hash = "sha256:7de548580c625bfa5893fe79c9dd3213c3720b12e1ff8e3fd28967da0698242d"}, + {file = "skl2onnx-1.16.0.tar.gz", hash = "sha256:3370b3d4065ce2dc5933878c3273f4aea41f945cc6514543b13ad2d57f369ce5"}, ] [package.dependencies] @@ -3034,20 +3017,18 @@ markdown = ">=3.4" [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.7" +version = "1.0.8" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_applehelp-1.0.7-py3-none-any.whl", hash = "sha256:094c4d56209d1734e7d252f6e0b3ccc090bd52ee56807a5d9315b19c122ab15d"}, - {file = "sphinxcontrib_applehelp-1.0.7.tar.gz", hash = "sha256:39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa"}, + {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.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] @@ -3070,38 +3051,34 @@ Sphinx = ">=2.1" [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.5" +version = "1.0.6" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_devhelp-1.0.5-py3-none-any.whl", hash = "sha256:fe8009aed765188f08fcaadbb3ea0d90ce8ae2d76710b7e29ea7d047177dae2f"}, - {file = "sphinxcontrib_devhelp-1.0.5.tar.gz", hash = "sha256:63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212"}, + {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.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.4" +version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_htmlhelp-2.0.4-py3-none-any.whl", hash = "sha256:8001661c077a73c29beaf4a79968d0726103c5605e27db92b9ebed8bab1359e9"}, - {file = "sphinxcontrib_htmlhelp-2.0.4.tar.gz", hash = "sha256:6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a"}, + {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.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] @@ -3120,38 +3097,34 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.6" +version = "1.0.7" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_qthelp-1.0.6-py3-none-any.whl", hash = "sha256:bf76886ee7470b934e363da7a954ea2825650013d367728588732c7350f49ea4"}, - {file = "sphinxcontrib_qthelp-1.0.6.tar.gz", hash = "sha256:62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d"}, + {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.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.9" +version = "1.1.10" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl", hash = "sha256:9b36e503703ff04f20e9675771df105e58aa029cfcbc23b8ed716019b7416ae1"}, - {file = "sphinxcontrib_serializinghtml-1.1.9.tar.gz", hash = "sha256:0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54"}, + {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.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] @@ -3314,38 +3287,29 @@ files = [ [[package]] name = "tensorflow-io-gcs-filesystem" -version = "0.34.0" +version = "0.35.0" description = "TensorFlow IO" optional = true python-versions = ">=3.7, <3.12" files = [ - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:d831702fbb270996b27cda7fde06e0825b2ea81fd8dd3ead35242f4f8b3889b8"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:b9a93fcb01db269bc845a1ced431f3c61201755ce5f9ec4885760f30122276ef"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5813c336b4f7cb0a01ff4cc6cbd3edf11ef67305baf0e3cf634911b702f493f8"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b035f4c92639657b6d376929d550ac3dee9e6c0523eb434eefe0a27bae3d05b"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:a17a616d2c7fae83de4424404815843507d40d4eb0d507c636a5493a20c3d958"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ec4604c99cbb5b708f4516dee27aa655abae222b876c98b740f4c2f89dd5c001"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cbe26c4a3332589c7b724f147df453b5c226993aa8d346a15536358d77b364c4"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e6353123a5b51397950138a118876af833a7db66b531123bb86f82e80ab0e72"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f211d2b3db8f9931765992b607b71cbfb98c8cd6169079d004a67a94ab10ecb4"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:d3feba2dd76f7c188137c34642d68d378f0eed81636cb95090ecb1496722707c"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:44ad387a812a78e7424bb8bee3820521ae1c044bddf72b1e163e8df95c124a74"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:7f60183473f0ca966451bb1d1bb5dc29b3cf9c74d1d0e7f2ed46760ed56bd4af"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:3f346b287ed2400e09b13cfd8524222fd70a66aadb9164c645286c2087007e9f"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:027a07553367187f918a99661f63ae0506b91b77a70bee9c7ccaf3920bf7cfe7"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d8664bddbe4e7b56ce94db8b93ea9077a158fb5e15364e11e29f93015ceea24"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:182b0fbde7e9a537fda0b354c28b0b6c035736728de8fe2db7ef49cf90352014"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:0dafed144673e1173528768fe208a7c5a6e8edae40208381cac420ee7c918ec9"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:396bfff61b49f80b86ddebe0c76ae0f2731689cee49ad7d782625180b50b13af"}, - {file = "tensorflow_io_gcs_filesystem-0.34.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b20622f8572fcb6c93e8f7d626327472f263e47ebd63d2153ef09162ef5ef7b5"}, -] - -[package.extras] -tensorflow = ["tensorflow (>=2.13.0,<2.14.0)"] -tensorflow-aarch64 = ["tensorflow-aarch64 (>=2.13.0,<2.14.0)"] -tensorflow-cpu = ["tensorflow-cpu (>=2.13.0,<2.14.0)"] -tensorflow-gpu = ["tensorflow-gpu (>=2.13.0,<2.14.0)"] -tensorflow-rocm = ["tensorflow-rocm (>=2.13.0,<2.14.0)"] + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:5521721b38105496d4b43a4ffb0af5b04cc4873d464f26fbceddf8d63815ce98"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd8f30908bf8b7b2a017d6b145720d105aff7f998422671b71729708ec7b2fe4"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac8f1de60fdf9c734aea967b98555e366ac8743f77bca15c49eff023f587076b"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:35b6eca7225c815d962254327195f191d88c3c9c2278a5ab23e0ac834acbadbb"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e997389bfe008210cbd97c0c738d64282a2f03ad4d0536013bb0a9efde0c283"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8fb3402fb1457482c386ea19371bc76383412ae9ea4396edb1e8adb4ba76f21"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb6bf8f5b40207ecb17e7fdc3b4fc824a8361267c14e9528c1688e16de135cb7"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c4f786eebd98d401565374722f2e67f3878675b0d87489cbaa13c70ee6ac370a"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fce1466bdb91096b6d22e7df17358ba228bcb92db5cff83f2f9f1c68eb26788"}, + {file = "tensorflow_io_gcs_filesystem-0.35.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1856fe321fdb75f3386d92109c60db6ef097f610b450f9cc69d76444fb9980d1"}, +] + +[package.extras] +tensorflow = ["tensorflow (>=2.14.0,<2.15.0)"] +tensorflow-aarch64 = ["tensorflow-aarch64 (>=2.14.0,<2.15.0)"] +tensorflow-cpu = ["tensorflow-cpu (>=2.14.0,<2.15.0)"] +tensorflow-gpu = ["tensorflow-gpu (>=2.14.0,<2.15.0)"] +tensorflow-rocm = ["tensorflow-rocm (>=2.14.0,<2.15.0)"] [[package]] name = "termcolor" @@ -3416,13 +3380,13 @@ telegram = ["requests"] [[package]] name = "traitlets" -version = "5.14.0" +version = "5.14.1" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.0-py3-none-any.whl", hash = "sha256:f14949d23829023013c47df20b4a76ccd1a85effb786dc060f34de7948361b33"}, - {file = "traitlets-5.14.0.tar.gz", hash = "sha256:fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772"}, + {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, + {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, ] [package.extras] @@ -3431,13 +3395,13 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, [[package]] name = "typing-extensions" -version = "4.8.0" +version = "4.9.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, + {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, + {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, ] [[package]] @@ -3458,13 +3422,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" -version = "0.2.12" +version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.12-py2.py3-none-any.whl", hash = "sha256:f26ec43d96c8cbfed76a5075dac87680124fa84e0855195a6184da9c187f133c"}, - {file = "wcwidth-0.2.12.tar.gz", hash = "sha256:f01c104efdf57971bcb756f054dd58ddec5204dd15fa31d6503ea57947d97c02"}, + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] [[package]] @@ -3541,16 +3505,6 @@ files = [ {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, - {file = "wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55"}, - {file = "wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9"}, - {file = "wrapt-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2feecf86e1f7a86517cab34ae6c2f081fd2d0dac860cb0c0ded96d799d20b335"}, - {file = "wrapt-1.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:240b1686f38ae665d1b15475966fe0472f78e71b1b4903c143a842659c8e4cb9"}, - {file = "wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8"}, - {file = "wrapt-1.14.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6447e9f3ba72f8e2b985a1da758767698efa72723d5b59accefd716e9e8272bf"}, - {file = "wrapt-1.14.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:acae32e13a4153809db37405f5eba5bac5fbe2e2ba61ab227926a22901051c0a"}, - {file = "wrapt-1.14.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49ef582b7a1152ae2766557f0550a9fcbf7bbd76f43fbdc94dd3bf07cc7168be"}, - {file = "wrapt-1.14.1-cp311-cp311-win32.whl", hash = "sha256:358fe87cc899c6bb0ddc185bf3dbfa4ba646f05b1b0b9b5a27c2cb92c2cea204"}, - {file = "wrapt-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224"}, {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, @@ -3620,4 +3574,4 @@ viz = ["pydot"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "970164c313a675cd694bd4be27a83a3d2791796d49314be6664fed11d9431850" +content-hash = "bca71883bd2bee475b4e84db4d4a2b7c98add77f4f583a32df7d63279e1071df" diff --git a/pyproject.toml b/pyproject.toml index eea147c6e..30b575b94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ classifiers = [ [tool.poetry.dependencies] python = ">=3.9,<3.12" -qibolab = "^0.1.4" +qibolab = "^0.1.5" qibo = "^0.2.1" numpy = "^1.24.0" scipy = "^1.10.1"