From 869f0618ea4a06324e140def9db9f503304db193 Mon Sep 17 00:00:00 2001 From: Krishiv Bhatia Date: Thu, 19 Jan 2023 02:17:23 -0500 Subject: [PATCH] Add support for reading OpenPMD files Co-authored-by: Krishiv Bhatia Co-authored-by: Gabriele Bozzola " --- NEWS.md | 6 +- docs/features.rst | 2 +- docs/index.rst | 2 +- kuibit/cactus_grid_functions.py | 308 +++- poetry.lock | 1480 +++++++++-------- pyproject.toml | 7 +- .../batman.it00000000.bp4/data.0 | Bin 0 -> 2432122 bytes .../grid_functions/batman.it00000000.bp4/md.0 | Bin 0 -> 29649 bytes .../batman.it00000000.bp4/md.idx | Bin 0 -> 128 bytes .../batman.it00000000.bp4/profiling.json | 3 + .../batman.it00000001.bp4/data.0 | Bin 0 -> 2432122 bytes .../grid_functions/batman.it00000001.bp4/md.0 | Bin 0 -> 29649 bytes .../batman.it00000001.bp4/md.idx | Bin 0 -> 128 bytes .../batman.it00000001.bp4/profiling.json | 3 + tests/test_cactus_grid_functions.py | 148 +- 15 files changed, 1287 insertions(+), 672 deletions(-) create mode 100755 tests/grid_functions/batman.it00000000.bp4/data.0 create mode 100755 tests/grid_functions/batman.it00000000.bp4/md.0 create mode 100755 tests/grid_functions/batman.it00000000.bp4/md.idx create mode 100755 tests/grid_functions/batman.it00000000.bp4/profiling.json create mode 100644 tests/grid_functions/batman.it00000001.bp4/data.0 create mode 100644 tests/grid_functions/batman.it00000001.bp4/md.0 create mode 100644 tests/grid_functions/batman.it00000001.bp4/md.idx create mode 100644 tests/grid_functions/batman.it00000001.bp4/profiling.json diff --git a/NEWS.md b/NEWS.md index b06e4254..abc1aa94 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,11 +1,15 @@ # Changelog -## Version 1.5.0 +## Version 1.5.0 (19 June 2023) #### General - Python 3.12 is now supported, Python 3.8.1 is required for development. - `total_filesize` now errors out when directories are passed. +#### Features +- Added experimental support for reading OpenPMD files (with most of the + heavy-lifting done by @krishivbhatia). Please, report any issue you might find. + ## Version 1.4.0 (2 May 2023) #### General diff --git a/docs/features.rst b/docs/features.rst index 8914f478..6210668c 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -119,7 +119,7 @@ Units Grid Data --------- -- Read 1D, 2D, and 3D ASCII and HDF5 files as ``HierarchicalGridData``, which supports: +- Read 1D, 2D, and 3D ASCII, HDF5 and OpenPMD (experimental) files as ``HierarchicalGridData``, which supports: - working with multiple components and refinement levels; - handling ghost-zones; diff --git a/docs/index.rst b/docs/index.rst index b3adbe23..307d892f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -51,7 +51,7 @@ For a full list of available features, see the :doc:`features page `. (:py:mod:`~.tensor`). - Work with 1D, 2D, and 3D grid functions (:py:mod:`~.grid_data`, :py:mod:`~.cactus_grid_functions`) as output by ``CarpetIOHDF5`` or - ``CarpetIOASCII``. + ``CarpetIOASCII``, or in OpenPMD format. - Work with horizon data from (:py:mod:`~.cactus_horizons`) as output by ``QuasiLocalMeasures`` and ``AHFinderDirect``. - Perform common operations with horizons (:py:mod:`~.hor_utils`). diff --git a/kuibit/cactus_grid_functions.py b/kuibit/cactus_grid_functions.py index 73398cde..7df7822e 100755 --- a/kuibit/cactus_grid_functions.py +++ b/kuibit/cactus_grid_functions.py @@ -19,7 +19,6 @@ # # You should have received a copy of the GNU General Public License along with # this program; if not, see . - """The :py:mod:`~.cactus_grid` module provides functions to load grid function in Cactus formats. @@ -30,12 +29,11 @@ object with keys the possible dimensions (e.g., ``x``, ``yz``, ``xyz``). - :py:class`~.AllGridFunctions` takes all the files in SimDir and sort them according the different grid functions they contain. -- There are two :py:class`~.OneGridFunction` classes, one for HDF5 files and one - for ASCII files. They describe one single grid function and they contains the - files associated to that grid function. Both the classes are derived from the - same abstract base class :py:class`~.OneGridFunctionBase`, which implements - the shared methods. - +- There are three :py:class`~.OneGridFunction` classes, one for HDF5 files, one + for ASCII files, and one for OpenPMD files. They describe one single grid + function and they contains the files associated to that grid function. Both + the classes are derived from the same abstract base class + :py:class`~.OneGridFunctionBase`, which implements the shared methods. These are hierarchical classes, one containing the others, so one typically ends up with a series of brackets to access the actual data. For example, if ``sim`` is a :py:class:`~.SimDir`, ``sim.gf.xy['rho_b'][0]`` is ``rho_b`` at iteration 0 @@ -54,6 +52,7 @@ import h5py import numpy as np +import openpmd_api as openpmd_io from kuibit import grid_data, simdir from kuibit.attr_dict import pythonize_name_dict @@ -118,7 +117,6 @@ def __init__(self, allfiles, var_name): # We use this to extract only the information related to the specific # variable self.var_name = var_name - for path in self.allfiles: self._parse_file(path) @@ -170,7 +168,7 @@ def _iterations_in_file(self, path): :rtype: list """ - return sorted(list(self.alldata[path].keys())) + return sorted(self.alldata[path].keys()) def _min_iteration_in_file(self, path): """Return the minimum available iterations in the given file. @@ -1006,7 +1004,7 @@ def _parse_file(self, path): # file. We keep a collection of all these in the variable self.alldata try: with h5py.File(path, "r") as f: - for group in f.keys(): + for group in f: matched = self.rx_group_name.match(group) # If this is not an interesting group, just skip it if not matched: @@ -1248,7 +1246,7 @@ def clear_cache(self): for filename, file_reader in self.alldata.items(): for iteration, iteration_reader in file_reader.items(): for ref_level, ref_level_reader in iteration_reader.items(): - for component in ref_level_reader.keys(): + for component in ref_level_reader: self.alldata[filename][iteration][ref_level][ component ] = None @@ -1275,6 +1273,193 @@ def time_at_iteration(self, iteration): return dataset.attrs["time"] +# What is a context manager? +# +# Context managers are useful ways to handle resources in Python. With a +# context manager, we do not have to worry about releasing resources. Here, +# we create a context manager that automatically closes the OpenPMD series +# object. +@contextmanager +def openpmd_series(path: str): + """Context manager to read an OpenPMD file. + + :param path: Path of the file. + :type path: str + + """ + series = openpmd_io.Series(path, openpmd_io.Access.read_only) + try: + yield series + except RuntimeError as exce: + raise RuntimeError(f"File {path} cannot be processed") from exce + finally: + series.close() + + +class OneGridFunctionOpenPMD(BaseOneGridFunction): + """Read grid data produced by CarpetOpenPMD files. + + This class is derived from :py:class:`~.BaseOneGridFunction` and implements + the reading facilities. + """ + + # This class implements the details on how to read the data for OpenPMD + # files, most of the functionalities of the class are in + # OneGridFunctionBase. + + def __init__(self, allfiles, var_name: str, dimension, mesh_basename: str): + """Constructor. + + :param allfiles: Paths of files associated to the variable. + :type allfiles: list of str + :param var_name: Variable name. + :type var_name: str + :param mesh_basename: Basename of the OpenPMD mesh. Typically, _ + :type mesh_basename: str + + """ + self.dimension = dimension + self.mesh_basename = mesh_basename + self.map = None + + self._iterations_to_times = {} + + # Let's unpack the regex + # + # 1. ^ $ match the beginning and end of string + # 2. {mesh_basename} is substituted with the prefix + # 3. _ is the literal underscore + # 4. (?:rl|lev) is a non-capturing group that matches the literals + # rl or lev + # 5. (\d+) matches a number, the refinement level + self._pattern_mesh_name = rf"^{mesh_basename}_(?:rl|lev)(\d+)$" + + super().__init__(allfiles, var_name) + + # super() will fill the other variables that we need for dataset_format + if self.map is None: + self.map = "" + + # OpenPMD data does not contain ghost zones + self.are_ghostzones_in_files = False + + def _parse_file(self, path: str): + """Read the content of the given file (without reading the data). + + For OpenPMD files, a "file" is really a directory. + + :param path: Path of the file. + :type path: str + + """ + rx_mesh = re.compile(self._pattern_mesh_name) + + with openpmd_series(path) as series: + iter_open_pmd = series.iterations + for iteration, iteration_obj in iter_open_pmd.items(): + self._iterations_to_times[iteration] = iteration_obj.time + all_meshes = iteration_obj.meshes + for mesh_name, mesh_obj in all_meshes.items(): + matched = rx_mesh.match(mesh_name) + if matched is not None: + ref_level = matched.group(1) + # Here is where we prepare are nested alldata dictionary + alldata_file = self.alldata.setdefault(path, {}) + alldata_iteration = alldata_file.setdefault( + int(iteration), {} + ) + alldata_ref_level = alldata_iteration.setdefault( + int(ref_level), {} + ) + component = 0 + for _chunk in mesh_obj[ + self.var_name + ].available_chunks(): + # We set the actual data to None, and we will read it in + # _read_component_as_uniform_grid_data upon request + alldata_ref_level.setdefault(component, None) + component += 1 + + def _read_component_as_uniform_grid_data( + self, path: str, iteration: int, ref_level: int, component: int + ): + """Return the component at the given iteration, refinement level, and component. + + :param path: Path of the file. + :type path: str + :param iteration: Iteration. + :type iteration: int + :param ref_level: Refinement level. + :type ref_level: int + :param component: Component. + :type component: int + + :returns: Component as a :py:class:`~.UniformGridData`. + :rtype: :py:class:`~.UniformGridData` + + """ + # ref_level is an integer like 0, 1, 2, 3, 4, 5. + # So it is formatted to 2 digits to give 00, 01, 04, 10, 11 + mesh_name = f"{self.mesh_basename}_lev{ref_level:02d}" + + if self.alldata[path][iteration][ref_level][component] is None: + with openpmd_series(path) as series: + time = series.iterations[iteration].time + mesh_obj = series.iterations[iteration].meshes[mesh_name] + origin = np.array(mesh_obj.grid_global_offset) + dx = np.array(mesh_obj.grid_spacing) + mrc = mesh_obj[self.var_name] + chunk = mrc.available_chunks()[component] + offset = np.array(chunk.offset) + shape = chunk.extent + # Do the actual reading + data = mrc.load_chunk(chunk.offset, chunk.extent) + series.flush() + grid = grid_data.UniformGrid( + shape, + x0=(origin + offset * dx), + dx=dx, + ref_level=ref_level, + num_ghost=[0, 0, 0], + time=time, + iteration=iteration, + component=component, + ) + self.alldata[path][iteration][ref_level][component] = ( + grid_data.UniformGridData(grid, data) + ) + return self.alldata[path][iteration][ref_level][component] + + def clear_cache(self): + """Remove all the cached entries. + + Every time a component is read, :py:class:`~.OneGridFunctionsH5` caches + its value (reading can be expensive). In certain cases, this can lead to + an explosion in the size of this object. For example, when reading + several iterations to make a movie. This method removes all the cached + entries, keeping the size of the object under control. + """ + for filename, file_reader in self.alldata.items(): + for iteration, iteration_reader in file_reader.items(): + for ref_level, ref_level_reader in iteration_reader.items(): + for component in ref_level_reader: + self.alldata[filename][iteration][ref_level][ + component + ] = None + + def time_at_iteration(self, iteration: int): + """Return the time corresponding to the provided iteration. + + :param iteration: Iteration. + :type iteration: int + + :returns: Time corresponding to ``iteration``. + :rtype: float + + """ + return self._iterations_to_times[iteration] + + class AllGridFunctions: """Helper class to read various types of grid data in a list of files and properly order them. The core of this object is the ``_vars`` dictionary @@ -1302,6 +1487,8 @@ class AllGridFunctions: # specific pattern corresponding to the dimension (which are the keys on # the following dictionary). In general, the file name will be: # variable-name.ext.h5, eg rho.xy.h5. + + # Organizes data by dimensions and variables filename_extensions = { (0,): ".x", (1,): ".y", @@ -1322,6 +1509,24 @@ class AllGridFunctions: (0, 1, 2): "xyz", } + # regex to match mesh_name like z4c_allc_lev05, admbasex_curv_lev00, + # admbasex_lapse_lev05 + # Let's uinpack this regex: + # 1. ^ and $ mean that we are matching the entire string + # 2. (\w+) is a capturing group that matches a word. This is thorn_groupname + # For example, wavetoy_state + # 3. _ matches the literal underscore + # 4. (?: ) is a non-capturing group, rl|lev means that we match one of the two + # 5. (\d+) matches numbers + _mesh_name_pattern = r"^(\w+)_(?:rl|lev)(\d+)$" + + # Mapping between a variable name and the prefix for the mesh name in the + # OpenPMD file. Typically, thorname_groupname. + _openpmd_mesh_basenames = {} + + # The oddball case is with OpenPMD files. OpenPMD files are actually folders + # with extension .bp4 and they are always 3D. + def __init__(self, allfiles, dimension, num_ghost=None): """Constructor. @@ -1369,7 +1574,6 @@ def __init__(self, allfiles, dimension, num_ghost=None): # Example of filenames are: # admbase-metric.xyz.file_158.h5 (one group per file) # alp.xy.h5 (one variable per file) - # filename_pattern = r"^([a-zA-Z0-9_]+)(-)?([a-zA-Z0-9\[\]_]+)%s.%s$" filename_pattern = r"^(([a-zA-Z0-9_]+)-)?([a-zA-Z0-9\[\]_]+)%s.%s$" h5_pattern = filename_pattern % ( self.filename_extensions[self.dimension], @@ -1380,10 +1584,17 @@ def __init__(self, allfiles, dimension, num_ghost=None): r"asc(\.(gz|bz2))?", ) + # OpenPMD files are very different. Instead of being single files, they + # are full directories. We match them by find the data.0 file, which is + # contained in all the OpenPMD directories. Also, OpenPMD files are + # always for 3D variables. + openpmd_pattern = r"^data\.0$" + # Variable files is a dictionary, the keys are the variables, the # values the set of files associated to that variable self._vars_ascii_files = {} self._vars_h5_files = {} + self._vars_openpmd_files = {} # _vars contains the actual data. It is used to cache results. _vars is # a dictionary with keys the variables and values OneGridFunction (H5 or @@ -1392,6 +1603,8 @@ def __init__(self, allfiles, dimension, num_ghost=None): rx_h5 = re.compile(h5_pattern) rx_ascii = re.compile(ascii_pattern) + rx_openpmd = re.compile(openpmd_pattern) + rx_mesh = re.compile(self._mesh_name_pattern) # Here we scan all the files and find those with a name that match # one of our regular expressions. @@ -1400,6 +1613,14 @@ def __init__(self, allfiles, dimension, num_ghost=None): filename = os.path.split(f)[1] matched_h5 = rx_h5.match(filename) matched_ascii = rx_ascii.match(filename) + # OpenPMD files are always 3D, so we ignore them when the dimension + # is not xyz + matched_openpmd = ( + rx_openpmd.match(filename) + if self._dim_names[self.dimension] == "xyz" + else None + ) + # If matched_pattern is not None, this is a Carpet h5 file if matched_h5 is not None: # First, we understand if the file was output with @@ -1430,7 +1651,7 @@ def __init__(self, allfiles, dimension, num_ghost=None): try: with h5py.File(f, "r") as h5f: # Here group is in the sense of HDF5 group - for group in h5f.keys(): + for group in h5f: group_matched = rx_group_name.match(group) # If this is not an interesting group, just skip it if not group_matched: @@ -1497,7 +1718,7 @@ def __init__(self, allfiles, dimension, num_ghost=None): opener=opener, opener_mode=opener_mode, ) - for variable_name in column_description.keys(): + for variable_name in column_description: var_list = self._vars_ascii_files.setdefault( variable_name, set() ) @@ -1505,6 +1726,31 @@ def __init__(self, allfiles, dimension, num_ghost=None): except RuntimeError: pass + elif matched_openpmd is not None: + # We detected a data.0 file. Its parent directory is the actual + # bp4 file. + dir_path = os.path.split(f)[0] + with openpmd_series(dir_path) as series: + for _iteration, iteration_obj in series.iterations.items(): + for ( + mesh_name, + mesh_obj, + ) in iteration_obj.meshes.items(): + matched = rx_mesh.match(mesh_name) + if matched is None: + raise RuntimeError( + f"Could not parse mesh {mesh_name}" + ) + mesh_basename = matched.group(1) + for variable_name in mesh_obj: + var_list = self._vars_openpmd_files.setdefault( + variable_name, set() + ) + var_list.add(dir_path) + self._openpmd_mesh_basenames[variable_name] = ( + mesh_basename + ) + # What pythonize_name_dict does is to make the various variables # accessible as attributes, e.g. self.fields.rho self.fields = pythonize_name_dict(list(self.keys()), self.__getitem__) @@ -1521,6 +1767,16 @@ def __getitem__(self, key): self._vars[var_name] = OneGridFunctionH5( self._vars_h5_files[var_name], var_name, self.dimension ) + elif var_name in self._vars_openpmd_files: + self._vars[var_name] = OneGridFunctionOpenPMD( + self._vars_openpmd_files[var_name], + var_name, + self.dimension, + # Get mesh_basenames corresponding to var name from dict. + # mesh_basename is thornname_groupname, where groupname is the + # name of the variable group that contains var_name + self._openpmd_mesh_basenames[var_name], + ) elif var_name in self._vars_ascii_files: if self.num_ghost is None: warnings.warn( @@ -1577,7 +1833,11 @@ def keys(self): """Return the list of all the available variables.""" # We merge the dictionaries and return the keys. # This automatically takes care of making sure that they keys are unique. - return {**self._vars_h5_files, **self._vars_ascii_files}.keys() + return { + **self._vars_h5_files, + **self._vars_ascii_files, + **self._vars_openpmd_files, + }.keys() def __str__(self): ret = "\nAvailable grid data of dimension " @@ -1601,6 +1861,9 @@ def allfiles(self): allfiles.update(file_list) for file_list in self._vars_ascii_files.values(): allfiles.update(file_list) + for dir_list in self._vars_openpmd_files.values(): + # OpenPMD files are actually directory + allfiles.update(dir_list) return allfiles def total_filesize(self, unit="MB"): @@ -1638,6 +1901,7 @@ class GridFunctionsDir: # convenint to index them with numbers. This dictionary provides a way # to go from one notation to the other. Internally, we always use the # index notation. + _dim_indices = { "x": (0,), "y": (1,), @@ -1730,6 +1994,18 @@ def total_filesize(self, unit="MB"): """ # First we find all the unique files allfiles = set() - for dim in self._all_griddata.keys(): + for dim in self._all_griddata: allfiles.update(self[dim].allfiles) + # OpenPMD "files" are really directories, so if we want to measure their + # size accurately we have to open them up + for f_ in set(allfiles): + if f_.endswith(".bp4") or f_.endswith(".bp5"): + # Remove the directory and add all the files inside + allfiles.remove(f_) + allfiles.update( + { + os.path.abspath(os.path.join(f_, p)) + for p in os.listdir(f_) + } + ) return total_filesize(allfiles, unit=unit) diff --git a/poetry.lock b/poetry.lock index 4bcdeef1..4e8b4584 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -13,34 +13,35 @@ files = [ [[package]] name = "anyio" -version = "4.0.0" +version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, - {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "appnope" -version = "0.1.3" +version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] @@ -120,39 +121,36 @@ tests = ["pytest"] [[package]] name = "arrow" -version = "1.3.0" +version = "1.2.3" description = "Better dates & times for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" files = [ - {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, - {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, + {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, + {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, ] [package.dependencies] python-dateutil = ">=2.7.0" -types-python-dateutil = ">=2.8.10" - -[package.extras] -doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "asttokens" -version = "2.4.0" +version = "2.4.1" description = "Annotate AST trees with source code positions" optional = false python-versions = "*" files = [ - {file = "asttokens-2.4.0-py2.py3-none-any.whl", hash = "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"}, - {file = "asttokens-2.4.0.tar.gz", hash = "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e"}, + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, ] [package.dependencies] six = ">=1.12.0" [package.extras] -test = ["astroid", "pytest"] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "async-lru" @@ -170,13 +168,13 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[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.dependencies] @@ -184,25 +182,25 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [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.15.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" 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.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] [package.dependencies] pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} -setuptools = {version = "*", markers = "python_version >= \"3.12\""} [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] @@ -220,54 +218,54 @@ files = [ [[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"] [[package]] name = "black" -version = "23.3.0" +version = "24.4.2" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "black-23.3.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915"}, - {file = "black-23.3.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9"}, - {file = "black-23.3.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2"}, - {file = "black-23.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c"}, - {file = "black-23.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b"}, - {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, - {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, - {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, - {file = "black-23.3.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b"}, - {file = "black-23.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2"}, - {file = "black-23.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331"}, - {file = "black-23.3.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5"}, - {file = "black-23.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961"}, - {file = "black-23.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, - {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, - {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, - {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, - {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, + {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, + {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, + {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, + {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, + {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, + {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, + {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, + {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, + {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, + {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, + {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, + {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, + {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, + {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, + {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, + {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, + {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, + {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, + {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, + {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, + {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, + {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, ] [package.dependencies] @@ -277,12 +275,11 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -304,15 +301,26 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.2)"] +[[package]] +name = "cached-property" +version = "1.5.2" +description = "A decorator for caching properties in classes." +optional = false +python-versions = "*" +files = [ + {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, + {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, +] + [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.6.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, ] [[package]] @@ -393,101 +401,101 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.3.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.1.tar.gz", hash = "sha256:d9137a876020661972ca6eec0766d81aef8a5627df628b664b234b73396e727e"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8aee051c89e13565c6bd366813c386939f8e928af93c29fda4af86d25b73d8f8"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:352a88c3df0d1fa886562384b86f9a9e27563d4704ee0e9d56ec6fcd270ea690"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:223b4d54561c01048f657fa6ce41461d5ad8ff128b9678cfe8b2ecd951e3f8a2"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f861d94c2a450b974b86093c6c027888627b8082f1299dfd5a4bae8e2292821"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1171ef1fc5ab4693c5d151ae0fdad7f7349920eabbaca6271f95969fa0756c2d"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28f512b9a33235545fbbdac6a330a510b63be278a50071a336afc1b78781b147"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0e842112fe3f1a4ffcf64b06dc4c61a88441c2f02f373367f7b4c1aa9be2ad5"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f9bc2ce123637a60ebe819f9fccc614da1bcc05798bbbaf2dd4ec91f3e08846"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f194cce575e59ffe442c10a360182a986535fd90b57f7debfaa5c845c409ecc3"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9a74041ba0bfa9bc9b9bb2cd3238a6ab3b7618e759b41bd15b5f6ad958d17605"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b578cbe580e3b41ad17b1c428f382c814b32a6ce90f2d8e39e2e635d49e498d1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6db3cfb9b4fcecb4390db154e75b49578c87a3b9979b40cdf90d7e4b945656e1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:debb633f3f7856f95ad957d9b9c781f8e2c6303ef21724ec94bea2ce2fcbd056"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win32.whl", hash = "sha256:87071618d3d8ec8b186d53cb6e66955ef2a0e4fa63ccd3709c0c90ac5a43520f"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:e372d7dfd154009142631de2d316adad3cc1c36c32a38b16a4751ba78da2a397"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae4070f741f8d809075ef697877fd350ecf0b7c5837ed68738607ee0a2c572cf"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58e875eb7016fd014c0eea46c6fa92b87b62c0cb31b9feae25cbbe62c919f54d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dbd95e300367aa0827496fe75a1766d198d34385a58f97683fe6e07f89ca3e3c"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de0b4caa1c8a21394e8ce971997614a17648f94e1cd0640fbd6b4d14cab13a72"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:985c7965f62f6f32bf432e2681173db41336a9c2611693247069288bcb0c7f8b"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a15c1fe6d26e83fd2e5972425a772cca158eae58b05d4a25a4e474c221053e2d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae55d592b02c4349525b6ed8f74c692509e5adffa842e582c0f861751701a673"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be4d9c2770044a59715eb57c1144dedea7c5d5ae80c68fb9959515037cde2008"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:851cf693fb3aaef71031237cd68699dded198657ec1e76a76eb8be58c03a5d1f"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:31bbaba7218904d2eabecf4feec0d07469284e952a27400f23b6628439439fa7"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:871d045d6ccc181fd863a3cd66ee8e395523ebfbc57f85f91f035f50cee8e3d4"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:501adc5eb6cd5f40a6f77fbd90e5ab915c8fd6e8c614af2db5561e16c600d6f3"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f5fb672c396d826ca16a022ac04c9dce74e00a1c344f6ad1a0fdc1ba1f332213"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win32.whl", hash = "sha256:bb06098d019766ca16fc915ecaa455c1f1cd594204e7f840cd6258237b5079a8"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:8af5a8917b8af42295e86b64903156b4f110a30dca5f3b5aedea123fbd638bff"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7ae8e5142dcc7a49168f4055255dbcced01dc1714a90a21f87448dc8d90617d1"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5b70bab78accbc672f50e878a5b73ca692f45f5b5e25c8066d748c09405e6a55"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ceca5876032362ae73b83347be8b5dbd2d1faf3358deb38c9c88776779b2e2f"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34d95638ff3613849f473afc33f65c401a89f3b9528d0d213c7037c398a51296"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9edbe6a5bf8b56a4a84533ba2b2f489d0046e755c29616ef8830f9e7d9cf5728"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6a02a3c7950cafaadcd46a226ad9e12fc9744652cc69f9e5534f98b47f3bbcf"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10b8dd31e10f32410751b3430996f9807fc4d1587ca69772e2aa940a82ab571a"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edc0202099ea1d82844316604e17d2b175044f9bcb6b398aab781eba957224bd"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b891a2f68e09c5ef989007fac11476ed33c5c9994449a4e2c3386529d703dc8b"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:71ef3b9be10070360f289aea4838c784f8b851be3ba58cf796262b57775c2f14"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:55602981b2dbf8184c098bc10287e8c245e351cd4fdcad050bd7199d5a8bf514"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:46fb9970aa5eeca547d7aa0de5d4b124a288b42eaefac677bde805013c95725c"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:520b7a142d2524f999447b3a0cf95115df81c4f33003c51a6ab637cbda9d0bf4"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win32.whl", hash = "sha256:8ec8ef42c6cd5856a7613dcd1eaf21e5573b2185263d87d27c8edcae33b62a61"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:baec8148d6b8bd5cee1ae138ba658c71f5b03e0d69d5907703e3e1df96db5e41"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63a6f59e2d01310f754c270e4a257426fe5a591dc487f1983b3bbe793cf6bac6"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6bfc32a68bc0933819cfdfe45f9abc3cae3877e1d90aac7259d57e6e0f85b1"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f3100d86dcd03c03f7e9c3fdb23d92e32abbca07e7c13ebd7ddfbcb06f5991f"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39b70a6f88eebe239fa775190796d55a33cfb6d36b9ffdd37843f7c4c1b5dc67"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e12f8ee80aa35e746230a2af83e81bd6b52daa92a8afaef4fea4a2ce9b9f4fa"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b6cefa579e1237ce198619b76eaa148b71894fb0d6bcf9024460f9bf30fd228"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:61f1e3fb621f5420523abb71f5771a204b33c21d31e7d9d86881b2cffe92c47c"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4f6e2a839f83a6a76854d12dbebde50e4b1afa63e27761549d006fa53e9aa80e"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:1ec937546cad86d0dce5396748bf392bb7b62a9eeb8c66efac60e947697f0e58"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:82ca51ff0fc5b641a2d4e1cc8c5ff108699b7a56d7f3ad6f6da9dbb6f0145b48"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:633968254f8d421e70f91c6ebe71ed0ab140220469cf87a9857e21c16687c034"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win32.whl", hash = "sha256:c0c72d34e7de5604df0fde3644cc079feee5e55464967d10b24b1de268deceb9"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:63accd11149c0f9a99e3bc095bbdb5a464862d77a7e309ad5938fbc8721235ae"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5a3580a4fdc4ac05f9e53c57f965e3594b2f99796231380adb2baaab96e22761"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2465aa50c9299d615d757c1c888bc6fef384b7c4aec81c05a0172b4400f98557"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb7cd68814308aade9d0c93c5bd2ade9f9441666f8ba5aa9c2d4b389cb5e2a45"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91e43805ccafa0a91831f9cd5443aa34528c0c3f2cc48c4cb3d9a7721053874b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:854cc74367180beb327ab9d00f964f6d91da06450b0855cbbb09187bcdb02de5"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c15070ebf11b8b7fd1bfff7217e9324963c82dbdf6182ff7050519e350e7ad9f"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4c99f98fc3a1835af8179dcc9013f93594d0670e2fa80c83aa36346ee763d2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fb765362688821404ad6cf86772fc54993ec11577cd5a92ac44b4c2ba52155b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dced27917823df984fe0c80a5c4ad75cf58df0fbfae890bc08004cd3888922a2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a66bcdf19c1a523e41b8e9d53d0cedbfbac2e93c649a2e9502cb26c014d0980c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ecd26be9f112c4f96718290c10f4caea6cc798459a3a76636b817a0ed7874e42"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f70fd716855cd3b855316b226a1ac8bdb3caf4f7ea96edcccc6f484217c9597"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:17a866d61259c7de1bdadef418a37755050ddb4b922df8b356503234fff7932c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win32.whl", hash = "sha256:548eefad783ed787b38cb6f9a574bd8664468cc76d1538215d510a3cd41406cb"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:45f053a0ece92c734d874861ffe6e3cc92150e32136dd59ab1fb070575189c97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bc791ec3fd0c4309a753f95bb6c749ef0d8ea3aea91f07ee1cf06b7b02118f2f"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8c61fb505c7dad1d251c284e712d4e0372cef3b067f7ddf82a7fa82e1e9a93"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2c092be3885a1b7899cd85ce24acedc1034199d6fca1483fa2c3a35c86e43041"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2000c54c395d9e5e44c99dc7c20a64dc371f777faf8bae4919ad3e99ce5253e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cb50a0335382aac15c31b61d8531bc9bb657cfd848b1d7158009472189f3d62"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c30187840d36d0ba2893bc3271a36a517a717f9fd383a98e2697ee890a37c273"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe81b35c33772e56f4b6cf62cf4aedc1762ef7162a31e6ac7fe5e40d0149eb67"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0bf89afcbcf4d1bb2652f6580e5e55a840fdf87384f6063c4a4f0c95e378656"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:06cf46bdff72f58645434d467bf5228080801298fbba19fe268a01b4534467f5"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3c66df3f41abee950d6638adc7eac4730a306b022570f71dd0bd6ba53503ab57"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd805513198304026bd379d1d516afbf6c3c13f4382134a2c526b8b854da1c2e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:9505dc359edb6a330efcd2be825fdb73ee3e628d9010597aa1aee5aa63442e97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31445f38053476a0c4e6d12b047b08ced81e2c7c712e5a1ad97bc913256f91b2"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win32.whl", hash = "sha256:bd28b31730f0e982ace8663d108e01199098432a30a4c410d06fe08fdb9e93f4"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:555fe186da0068d3354cdf4bbcbc609b0ecae4d04c921cc13e209eece7720727"}, - {file = "charset_normalizer-3.3.1-py3-none-any.whl", hash = "sha256:800561453acdecedaac137bf09cd719c7a440b6800ec182f077bb8e7025fb708"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -503,7 +511,6 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -518,22 +525,20 @@ files = [ [[package]] name = "comm" -version = "0.1.4" +version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "comm-0.1.4-py3-none-any.whl", hash = "sha256:6d52794cba11b36ed9860999cd10fd02d6b2eac177068fdd585e1e2f8a96e67a"}, - {file = "comm-0.1.4.tar.gz", hash = "sha256:354e40a59c9dd6db50c5cc6b4acc887d82e9603787f83b68c01a80a923984d15"}, + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, ] [package.dependencies] traitlets = ">=4" [package.extras] -lint = ["black (>=22.6.0)", "mdformat (>0.7)", "mdformat-gfm (>=0.3.5)", "ruff (>=0.0.156)"] test = ["pytest"] -typing = ["mypy (>=0.990)"] [[package]] name = "configargparse" @@ -625,29 +630,33 @@ files = [ [[package]] name = "debugpy" -version = "1.8.0" +version = "1.8.1" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, - {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, - {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, - {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, - {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, - {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, - {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, - {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, - {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, - {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, - {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, - {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, - {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, - {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, - {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, - {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, - {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, - {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, ] [[package]] @@ -677,11 +686,8 @@ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" optional = false -python-versions = ">=3.7" -files = [ - {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, - {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, -] +python-versions = "*" +files = [] [[package]] name = "entrypoints" @@ -696,13 +702,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.3" +version = "1.2.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [package.extras] @@ -710,13 +716,13 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.0.0" +version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "executing-2.0.0-py2.py3-none-any.whl", hash = "sha256:06df6183df67389625f4e763921c6cf978944721abf3e714000200aab95b0657"}, - {file = "executing-2.0.0.tar.gz", hash = "sha256:0ff053696fdeef426cda5bd18eacd94f82c91f49823a2e9090124212ceea9b08"}, + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, ] [package.extras] @@ -724,13 +730,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.18.1" +version = "2.20.0" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.18.1-py3-none-any.whl", hash = "sha256:aec6a19e9f66e9810ab371cc913ad5f4e9e479b63a7072a2cd060a9369e329a8"}, - {file = "fastjsonschema-2.18.1.tar.gz", hash = "sha256:06dc8680d937628e993fa0cd278f196d20449a1adc087640710846b324d422ea"}, + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, ] [package.extras] @@ -805,14 +811,29 @@ files = [ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] +[package.dependencies] +cached-property = {version = ">=1.3.0", markers = "python_version < \"3.8\""} + [[package]] name = "future" -version = "0.18.3" +version = "1.0.0" description = "Clean single-source support for Python 3 and 2" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ - {file = "future-0.18.3.tar.gz", hash = "sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307"}, + {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, + {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] [[package]] @@ -852,15 +873,60 @@ files = [ [package.dependencies] numpy = ">=1.14.5" +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httpx" +version = "0.27.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + [[package]] name = "idna" -version = "3.4" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -914,13 +980,13 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec [[package]] name = "ipykernel" -version = "6.25.2" +version = "6.29.4" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.25.2-py3-none-any.whl", hash = "sha256:2e2ee359baba19f10251b99415bb39de1e97d04e1fab385646f24f0596510b77"}, - {file = "ipykernel-6.25.2.tar.gz", hash = "sha256:f468ddd1f17acb48c8ce67fcfa49ba6d46d4f9ac0438c1f441be7c3d1372230b"}, + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, ] [package.dependencies] @@ -934,7 +1000,7 @@ matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" psutil = "*" -pyzmq = ">=20" +pyzmq = ">=24" tornado = ">=6.1" traitlets = ">=5.4.0" @@ -943,7 +1009,7 @@ cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" @@ -984,34 +1050,23 @@ qtconsole = ["qtconsole"] test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] -[[package]] -name = "ipython-genutils" -version = "0.2.0" -description = "Vestigial utilities from IPython" -optional = false -python-versions = "*" -files = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] - [[package]] name = "ipywidgets" -version = "8.1.1" +version = "8.1.3" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, - {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, + {file = "ipywidgets-8.1.3-py3-none-any.whl", hash = "sha256:efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2"}, + {file = "ipywidgets-8.1.3.tar.gz", hash = "sha256:f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.9,<3.1.0" +jupyterlab-widgets = ">=3.0.11,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.9,<4.1.0" +widgetsnbextension = ">=4.0.11,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1032,20 +1087,17 @@ arrow = ">=0.15.0" [[package]] name = "isort" -version = "5.11.5" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"}, - {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"}, + {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,<0.5.0)"] -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 = "jedi" @@ -1068,13 +1120,13 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -1085,27 +1137,24 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "json5" -version = "0.9.14" +version = "0.9.25" description = "A Python implementation of the JSON5 data format." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, - {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, + {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, + {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, ] -[package.extras] -dev = ["hypothesis"] - [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] @@ -1251,13 +1300,13 @@ test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>= [[package]] name = "jupyter-lsp" -version = "2.2.0" +version = "2.2.5" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter-lsp-2.2.0.tar.gz", hash = "sha256:8ebbcb533adb41e5d635eb8fe82956b0aafbf0fd443b6c4bfa906edeeb8635a1"}, - {file = "jupyter_lsp-2.2.0-py3-none-any.whl", hash = "sha256:9e06b8b4f7dd50300b70dd1a78c0c3b0c3d8fa68e0f2d8a5d1fbab62072aca3f"}, + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, ] [package.dependencies] @@ -1266,13 +1315,13 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.8.0" +version = "2.10.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.8.0-py3-none-any.whl", hash = "sha256:c57270faa6530393ae69783a2d2f1874c718b9f109080581ea076b05713249fa"}, - {file = "jupyter_server-2.8.0.tar.gz", hash = "sha256:b11e2ba80667c75f55630faf8ac3d5809f8734f9006d65cce117c46a0a516ab8"}, + {file = "jupyter_server-2.10.0-py3-none-any.whl", hash = "sha256:dde56c9bc3cb52d7b72cc0f696d15d7163603526f1a758eb4a27405b73eab2a5"}, + {file = "jupyter_server-2.10.0.tar.gz", hash = "sha256:47b8f5e63440125cb1bb8957bf12b18453ee5ed9efe42d2f7b2ca66a7019a278"}, ] [package.dependencies] @@ -1302,13 +1351,13 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc [[package]] name = "jupyter-server-terminals" -version = "0.4.4" +version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, - {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, ] [package.dependencies] @@ -1316,25 +1365,26 @@ pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} terminado = ">=0.8.3" [package.extras] -docs = ["jinja2", "jupyter-server", "mistune (<3.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] -test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] [[package]] name = "jupyterlab" -version = "4.0.7" +version = "4.1.6" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.0.7-py3-none-any.whl", hash = "sha256:08683045117cc495531fdb39c22ababb9aaac6977a45e67cfad20046564c9c7c"}, - {file = "jupyterlab-4.0.7.tar.gz", hash = "sha256:48792efd9f962b2bcda1f87d72168ff122c288b1d97d32109e4a11b33dc862be"}, + {file = "jupyterlab-4.1.6-py3-none-any.whl", hash = "sha256:cf3e862bc10dbf4331e4eb37438634f813c238cfc62c71c640b3b3b2caa089a8"}, + {file = "jupyterlab-4.1.6.tar.gz", hash = "sha256:7935f36ba26eb615183a4f5c2bbca5791b5108ce2a00b5505f8cfd100d53648e"}, ] [package.dependencies] async-lru = ">=1.0.0" +httpx = ">=0.25.0" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""} -ipykernel = "*" +ipykernel = ">=6.5.0" jinja2 = ">=3.0.3" jupyter-core = "*" jupyter-lsp = ">=2.0.0" @@ -1342,15 +1392,16 @@ jupyter-server = ">=2.4.0,<3" jupyterlab-server = ">=2.19.0,<3" notebook-shim = ">=0.2" packaging = "*" -tomli = {version = "*", markers = "python_version < \"3.11\""} +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["black[jupyter] (==23.7.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.286)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=8.0,<9.0)", "jinja2-time (<0.3)", "pydantic (<2.0)", "pyyaml-include (<2.0)", "tomli-w (<2.0)"] [[package]] name = "jupyterlab-pygments" @@ -1391,13 +1442,13 @@ test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-valida [[package]] name = "jupyterlab-widgets" -version = "3.0.9" +version = "3.0.11" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, - {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, + {file = "jupyterlab_widgets-3.0.11-py3-none-any.whl", hash = "sha256:78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0"}, + {file = "jupyterlab_widgets-3.0.11.tar.gz", hash = "sha256:dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27"}, ] [[package]] @@ -1518,18 +1569,15 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "latexcodec" -version = "2.0.1" +version = "3.0.0" description = "A lexer and codec to work with LaTeX code in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.7" files = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, + {file = "latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7"}, + {file = "latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5"}, ] -[package.dependencies] -six = ">=1.4.1" - [[package]] name = "llvmlite" version = "0.39.1" @@ -1602,71 +1650,71 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1725,13 +1773,13 @@ python-dateutil = ">=2.7" [[package]] name = "matplotlib-inline" -version = "0.1.6" +version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, ] [package.dependencies] @@ -1922,48 +1970,48 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nbsphinx" -version = "0.9.3" +version = "0.9.4" description = "Jupyter Notebook Tools for Sphinx" optional = false python-versions = ">=3.6" files = [ - {file = "nbsphinx-0.9.3-py3-none-any.whl", hash = "sha256:6e805e9627f4a358bd5720d5cbf8bf48853989c79af557afd91a5f22e163029f"}, - {file = "nbsphinx-0.9.3.tar.gz", hash = "sha256:ec339c8691b688f8676104a367a4b8cf3ea01fd089dc28d24dec22d563b11562"}, + {file = "nbsphinx-0.9.4-py3-none-any.whl", hash = "sha256:22cb1d974a8300e8118ca71aea1f649553743c0c5830a54129dcd446e6a8ba17"}, + {file = "nbsphinx-0.9.4.tar.gz", hash = "sha256:042a60806fc23d519bc5bef59d95570713913fe442fda759d53e3aaf62104794"}, ] [package.dependencies] -docutils = "*" +docutils = ">=0.18.1" jinja2 = "*" -nbconvert = "!=5.4" +nbconvert = ">=5.3,<5.4 || >5.4" nbformat = "*" sphinx = ">=1.8" traitlets = ">=5" [[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]] name = "notebook" -version = "7.0.6" +version = "7.1.3" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.0.6-py3-none-any.whl", hash = "sha256:0fe8f67102fea3744fedf652e4c15339390902ca70c5a31c4f547fa23da697cc"}, - {file = "notebook-7.0.6.tar.gz", hash = "sha256:ec6113b06529019f7f287819af06c97a2baf7a95ac21a8f6e32192898e9f9a58"}, + {file = "notebook-7.1.3-py3-none-any.whl", hash = "sha256:919b911e59f41f6e3857ce93c9d93535ba66bb090059712770e5968c07e1004d"}, + {file = "notebook-7.1.3.tar.gz", hash = "sha256:41fcebff44cf7bb9377180808bcbae066629b55d8c7722f1ebbe75ca44f9cfc1"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.0.2,<5" +jupyterlab = ">=4.1.1,<4.2" jupyterlab-server = ">=2.22.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" @@ -1975,13 +2023,13 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 [[package]] name = "notebook-shim" -version = "0.2.3" +version = "0.2.4" description = "A shim layer for notebook traits and config" optional = false python-versions = ">=3.7" files = [ - {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, - {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, ] [package.dependencies] @@ -2145,113 +2193,262 @@ files = [ [[package]] name = "numpy" -version = "1.26.1" +version = "1.26.4" description = "Fundamental package for array computing in Python" optional = false -python-versions = "<3.13,>=3.9" -files = [ - {file = "numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af"}, - {file = "numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575"}, - {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244"}, - {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67"}, - {file = "numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2"}, - {file = "numpy-1.26.1-cp310-cp310-win32.whl", hash = "sha256:d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297"}, - {file = "numpy-1.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab"}, - {file = "numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a"}, - {file = "numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9"}, - {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3"}, - {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974"}, - {file = "numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c"}, - {file = "numpy-1.26.1-cp311-cp311-win32.whl", hash = "sha256:b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b"}, - {file = "numpy-1.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53"}, - {file = "numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f"}, - {file = "numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24"}, - {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e"}, - {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124"}, - {file = "numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c"}, - {file = "numpy-1.26.1-cp312-cp312-win32.whl", hash = "sha256:af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66"}, - {file = "numpy-1.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7"}, - {file = "numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e"}, - {file = "numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617"}, - {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e"}, - {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908"}, - {file = "numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5"}, - {file = "numpy-1.26.1-cp39-cp39-win32.whl", hash = "sha256:d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104"}, - {file = "numpy-1.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2"}, - {file = "numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668"}, - {file = "numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42"}, - {file = "numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f"}, - {file = "numpy-1.26.1.tar.gz", hash = "sha256:c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe"}, -] +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "openpmd-api" +version = "0.14.5.post1" +description = "C++ & Python API for Scientific I/O with openPMD" +optional = false +python-versions = ">=3.6, <3.11" +files = [ + {file = "openPMD-api-0.14.5.post1.tar.gz", hash = "sha256:fd9331d8515cd5514ebf8da343c926df2ec1a4de6a4d6467f0717b4e9a5a1063"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7de77edd93530db95a83fa6843345cb89574752be0e35bc46afa0d61e5758d84"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3aaa4f0f997f458989d9ecc7a7d304cf001824bcf1cf9e67d7e64e5fab08931c"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6dc9b721341ba0d220f358320ba8e5859c7cbb7688a7acf4ccb7538c34ff71fa"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2551797cd4e4d23cc6b0dce5d58ae8b167cd533c841578e6431908695d0d6de3"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a359e92d4f2a94b8dbcca2c645c6dcda255a9d4a728ccce33fef7294b927ab02"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7e0a522e161f3cbc56221af8ee01d8b050d43fa8eeb6b54e2eabd491dfe5632e"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:de7240bcea38b57be86f3bbdba2c947c921e22fa2cfa5f80106768a34804e0f7"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-win32.whl", hash = "sha256:8e0c5cc1f3cb42f59b7bd12259542644258714e3d56710f6e34d52f2ff2aa08a"}, + {file = "openPMD_api-0.14.5.post1-cp310-cp310-win_amd64.whl", hash = "sha256:fc6257b232d50725b937c19b7766707187d8fd26990611250d81f5a59cbe9748"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:7a43930c53e05ca902e86b47755e0e05e0c7e86638325def1d3c80f1d17d26a4"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:21cbe253df4d969dee369992af1182406f15b042816179d925218eb380e8594a"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab9d59bebf60627f3f98fda275dd0fc75a3b06a5890340f3e99d742e0b5bbf7d"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3875ba663391ef40b0f5735a65f67845f658f7df1731bb7cf3bbce69be4391e"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:ce94f63742a5a6419827cad30a4c1e6b7859a54f1bef7d2aa6f630dcd9e68a1e"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:592668e68629f1cdc9153e9ba3a11d0c170ac226b03f85a53bf93ee514e85db2"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ffabacfdc798ee369444f3cc2a3d7cf1345c8b37f91d9248294bb0fb7adf0419"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-win32.whl", hash = "sha256:f8aefc148f7ca4e6d8980ba2d47c95e4af0aa3aa6e06a3d61f61054e4a056ada"}, + {file = "openPMD_api-0.14.5.post1-cp36-cp36m-win_amd64.whl", hash = "sha256:ced9e9a44ff59d6f419df421b64df3e526b3493760aae50c6ec3c0cac20a2e4b"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d2c528e0fc12ffcd175b773368f65031dd00b18092fb5ee3a53d968a14157e18"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2b0be9c759dba43566a76339d81634826f2ebd689dd9351ff62f8c8c90dc2f3"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47a84380bb1ee0e16a611420a8c81606b1a9b317f6d87490ed0758e53c97faf3"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56251e512af58417d8f80e7cd3d52617ee0266870bc79db1803a4cbf2beb462e"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:92a217edcb0f5a41653eca3bd8ab698e2d5d8707263857b1e3c22d7ace8915f4"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a39b5fed42c3fd28629d12eae81a2e55b9d2eebefc65ce0010e00f3c32bd68c5"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:675f10f4610aa1f138d4c374b178eefd3d54f0dbafe98f6f23a13ad80850a0bd"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-win32.whl", hash = "sha256:ee3699a9b185229ca1027a96aee0425d548593ccdd8df8bcabf9b0727e4e613a"}, + {file = "openPMD_api-0.14.5.post1-cp37-cp37m-win_amd64.whl", hash = "sha256:40eeed0a8320f47b8472983092b57828dc6a89f5b1b0bea86895d97015b938cd"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53c2482a1167b4955ed191a3c8604ecaa30a3f7edd98a07eb21b60fd36e812cb"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94338ee067f9c072767ec92faac814e0f85ec304ec3e553e2ba9963476b466ad"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c9964d5db7fe563349a1958c281d2dab4b0e3e95e0ccdecc24b2c81c5a047485"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c42abb3078643680604e13ad56d5466905f65e12fe890655839c3ada590bbfc4"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:83baf49a63e935347df0cfa566d3cd5a65eae27dc78f34baf73543b8e76fa506"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4048daaa2a0be278faa9bf057377db9c88012fbc14b294dea7bfc22a581b8949"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:960618a525e46b6d98f6cbfb6378fd55f8e02372082a6739293a8330f51bdb7c"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bbc3599387c4cf0e8fb0cacd3dc4d3b8aac39efafc5915899677f60a37d3c654"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-win32.whl", hash = "sha256:14c19d21a05f55fb3ca634b10c497bb17543f570262c75f864181c62775f3cf6"}, + {file = "openPMD_api-0.14.5.post1-cp38-cp38-win_amd64.whl", hash = "sha256:3abb516fa23a1d091101d6b184f3ccb93afcae64b5d4e490f2fb9695db647ece"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9ace95b9eb4f3cb907f25ea984d0102f762931a8504e797b28abbec9540717d"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:51142e7131f0e5c714e5bbcc8a2c6ce54de3edce2ab872e933b705e818e71887"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:34eae2c6eb42863d4d5bfb0004846870a01567e37ad85d31e17bec595f7314b0"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd96dd115d8fb4c16fe011481cdd804c418ef4cca35eb56ec8b2e91e3123fef"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f00b8255e41acf96254d6ac1ad0bc20d01b46db76db62f94db28e8288475724f"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:da221c7c50be5582b57fbeee81258eff63a3c1b758ead9276f4f2aa756ccbc06"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f56d5516276009567e4673ba2a9880f4ada925645dec166997bbe613e9fac0ca"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:812f670183f1a29bd103c6a65bf2ce28e26e2cbf0825c88db08f034190677d5d"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-win32.whl", hash = "sha256:ca9990d085bfada8da5a3a81ec48b7ad7d2c88e2966a17b183a5eca4a0edf932"}, + {file = "openPMD_api-0.14.5.post1-cp39-cp39-win_amd64.whl", hash = "sha256:43934e28d0a58acf49b4da8f00b0e0d8ad2eea74efdfe52d0606969f65f97c96"}, + {file = "openPMD_api-0.14.5.post1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34b6cb3ecfd69a50ed544059210950373af349064d2e7707e632e37d5b68a1d6"}, + {file = "openPMD_api-0.14.5.post1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbfe3ae8b875a0b2c243d4f1a3a6867458e1f7b32c3be2d78663b78eaf15f6cc"}, + {file = "openPMD_api-0.14.5.post1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d3a25f4fd6a251299034eee09347a8a176ed8f041bdacd4bbbcad2e1ec53fddd"}, +] + +[package.dependencies] +numpy = ">=1.15.0,<2.0.0" + +[[package]] +name = "openpmd-api" +version = "0.15.2" +description = "C++ & Python API for Scientific I/O with openPMD" +optional = false +python-versions = ">=3.8" +files = [ + {file = "openPMD-api-0.15.2.tar.gz", hash = "sha256:6c441be362d9a2c7f6de10b18ad003f162da82722e1d978a9631b59bf63a2ede"}, + {file = "openPMD_api-0.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5406a21ac307448882dc2ae62b09a89e64d25035674d766a0e863e3ca5895676"}, + {file = "openPMD_api-0.15.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7cd59469ac1c0cc143e55959bf0ca15d24bd1c9dc06dc15dd15787156d9a681d"}, + {file = "openPMD_api-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27741c2a3cfd1f7af6afd6c216b3fa4cb7bc8d6733abe39f83c747c03e2e78b"}, + {file = "openPMD_api-0.15.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb72174ed78ffbfb5fe7855583683ba14b2f9440464680705699804e452cd185"}, + {file = "openPMD_api-0.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bc5ca1338194225469a7bb84ec774b76004bbb47ebb3a031480ba622a2225e1"}, + {file = "openPMD_api-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dfa73aa4499dfe1ba428e5effc892a574381d21fb5833048169d5787b6ad608"}, + {file = "openPMD_api-0.15.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73b4f6aec58370e0784e58f60a3bc9d1de2eefb54510c27ac3780f2f63ea27d1"}, + {file = "openPMD_api-0.15.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0e53e492630a849f40b49b9ea6de04d17b40ef836c3bece5f48e1620c20ff304"}, + {file = "openPMD_api-0.15.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:1ef46bd35ae12fae1a2af56366385f42299b5ddd7c146914909c2830eea49a8b"}, + {file = "openPMD_api-0.15.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:39f093bef1c266c178084e1be2452e1f8705b70a5a16e3ca779ee46b544b4690"}, + {file = "openPMD_api-0.15.2-cp310-cp310-win32.whl", hash = "sha256:c906c5480b4e733cf7b7b5cfa8baa02e41ee779012c9ef00f6b0b061bd5c4246"}, + {file = "openPMD_api-0.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:597fcad1401415ded9a8ef378d25d11532c57c51a4cf046262d26066193b21be"}, + {file = "openPMD_api-0.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:95c905efb822e284fc1755e010115c6299bf9c4b1c6beab6013dfd90adb9f984"}, + {file = "openPMD_api-0.15.2-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:97d06b87376330111cb4c1ff087f8ec35f37a49d6315619e42ecebf9f9b267f9"}, + {file = "openPMD_api-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e11bec26da8bd75ace9b82396087c0d21ff14cd103f688fd7ae5d52c67371be"}, + {file = "openPMD_api-0.15.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:364ee7e572ca1fc3428abfb5651dc57335e69c93240ced33ef8c07c4ee1e63a4"}, + {file = "openPMD_api-0.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f7904d6263f57f293bc6c709974c2407af7a9b252bcbed21535eb7a379ec60"}, + {file = "openPMD_api-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:204ee19927c21cc296a4c755c1edae6d53e07bc147ac337b97e9fe188ff4e226"}, + {file = "openPMD_api-0.15.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c3cac890858a9523368e9675376dd4ca1cbc4cbc3b9db1c9c302079cd0607385"}, + {file = "openPMD_api-0.15.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6379a46bebd6013ccfec9e104548a2c8ca02128c96397d63329ae3ab50444869"}, + {file = "openPMD_api-0.15.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:dbf4b0447257f411b3fc78550843adffafa97afd2c5ab2d3bf623a46a125649d"}, + {file = "openPMD_api-0.15.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:669b615b2dae54b5dcdf5775bec53769f75fc00ea3c87126ba783d082b6d761f"}, + {file = "openPMD_api-0.15.2-cp311-cp311-win32.whl", hash = "sha256:e27c7c58e58df93f10f615578b0448fcc2a1df028d62a26f1904c0fc099e1421"}, + {file = "openPMD_api-0.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:7caed3b64c7477f5c35bef7e1a2449f5e40e9fc5654a8e3d832f7a0d89f45f6c"}, + {file = "openPMD_api-0.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ed70cb3bb10ac906f18153b13772b8e2e3b6e3588298c370af2aa41e0fa5690"}, + {file = "openPMD_api-0.15.2-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:1f7d13e23743efd4335e5708a09521cec11819f4fa4148385c39b2d70ff5717f"}, + {file = "openPMD_api-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3bf6e0c673b579980f7e7314e61efff003b83f4959dbef6a2513b135b62fe0b"}, + {file = "openPMD_api-0.15.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:588701220997bdf1c4829ba3789ffff8287409fad43e53d7a0604b2a6e277d07"}, + {file = "openPMD_api-0.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5001cb0c345bdf58eaec3fad4b6de9c9680dc6fc5851df5b0a56cb5ca7677665"}, + {file = "openPMD_api-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2e99d0749b4bbb0a91286c73aece7af917f5ec90dc6e8fc4abcb8d5adcef6be"}, + {file = "openPMD_api-0.15.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2aa6c872ee78a28eb6623ade765960cc193143ce420420f3fab5938dc6e164b0"}, + {file = "openPMD_api-0.15.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5118891b2d301b1861266177304a4a3ee853109e6c9f3ad0d53b125a6fcb425b"}, + {file = "openPMD_api-0.15.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:f30991ccacac8f7b0fa5ed74353145e88dc7fb6d35ba9dee1a9958b95ed5f49a"}, + {file = "openPMD_api-0.15.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b7e9ec383619f0a58ea0489470ba95070bedc08a48a83a88ba67d90705eed38b"}, + {file = "openPMD_api-0.15.2-cp312-cp312-win32.whl", hash = "sha256:a976509916f239b1c8f5b7b7ebc288a61249c0180f10ae5b5cf93b9beffeb821"}, + {file = "openPMD_api-0.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:d569673df33ab12404564546b434d68b25669af6552f6f2f442f4f89ac44c873"}, + {file = "openPMD_api-0.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:611ab2a7319538cab4cc1f878efeec7695e693411235a836eef037e8520d0a25"}, + {file = "openPMD_api-0.15.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b7d002eaba7b5725ac768baa8b3aa47f00aa3c4d5c419136b3d83bbc9b075a27"}, + {file = "openPMD_api-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04ffbb4276b10929358175562bbfe2997da8abfd5a11a25f4bff02583d5270d3"}, + {file = "openPMD_api-0.15.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8d9b38dccee3d1cccf3b3a669ea9cec4646dead824db03146fcb7ca83e866b"}, + {file = "openPMD_api-0.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c87a253028c52525c0e892ab955629e331c87c4b02f231c8f84aeb89bae2dcd6"}, + {file = "openPMD_api-0.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53edcd0449354dc37279ec2d6787f8e274fe4984becae6acce95281cf8943976"}, + {file = "openPMD_api-0.15.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5e62c55454890ebb3f5d7c446a3c8c72b56a7b1ae7bf5d29b4d2bd261a11f589"}, + {file = "openPMD_api-0.15.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6e240746f44a86b6668c14dfab1fbc379ff3f98ffa1f80b98cf85a61d69692c3"}, + {file = "openPMD_api-0.15.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:79a96ea8a375afb2138e56c601406aa362e83c3f537aebc202473443f78a220b"}, + {file = "openPMD_api-0.15.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3f2a2f39848ced4407e4f1942e8b61ac0da01aed11a48e769242bece9fe5b553"}, + {file = "openPMD_api-0.15.2-cp38-cp38-win32.whl", hash = "sha256:f5542a67ee59baebd25b84e06a8aab8031a8369cda1416d95f0b291ffdcd3f6b"}, + {file = "openPMD_api-0.15.2-cp38-cp38-win_amd64.whl", hash = "sha256:e18e6368a0e91a937d78fcd5626ea37dd429f3a770847de7cc33f940e972d2cc"}, + {file = "openPMD_api-0.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87f9051b602d916188950042be730cef627fd2569779b3d7db8c5bdfafdd943d"}, + {file = "openPMD_api-0.15.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a3d0e47249be2151610874e1c4051c89e05f32f15ff9177634f7885883efee9b"}, + {file = "openPMD_api-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6c3fdca7e7d0ad7e4b9fb3384862d744eac2396ba5fe84f7c0598ff05fda082"}, + {file = "openPMD_api-0.15.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:797b1f8c0915a40b55410dccfd26a52f6599b2d64067cbb06a27ed0a4b768c4f"}, + {file = "openPMD_api-0.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1fe81506049c00b7210ebf77dfe8b810c549c2c3d189588d239e6ef8fc435611"}, + {file = "openPMD_api-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81dc755272ca5fc69ef629df9237dc5443da959f320da4999af61f2929db5ba9"}, + {file = "openPMD_api-0.15.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3bc6062251f2d4820af6b509b269df016755983428ceb2dbec520cd38232489e"}, + {file = "openPMD_api-0.15.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e13672219d614c98c6ddd6681e90496e19891d3f36352189e254c8a5b9336d18"}, + {file = "openPMD_api-0.15.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cbb88a14fa594d66e5db4e62d75d76b410a3e10d64588c01264e32e2dda7fce5"}, + {file = "openPMD_api-0.15.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:133d5b1783a997201fcd8bcca1f2a1297b9272edea5100b3568710a92f857223"}, + {file = "openPMD_api-0.15.2-cp39-cp39-win32.whl", hash = "sha256:52c6d541a8c9f8723a5d5ed77cf862d58755c0291864e79496b4c6e3d03e1f39"}, + {file = "openPMD_api-0.15.2-cp39-cp39-win_amd64.whl", hash = "sha256:a68ccea7aaf2028329806351b54cfc1a620600c321aba61176c71ce71645704e"}, + {file = "openPMD_api-0.15.2-pp310-pypy310_pp73-macosx_11_0_x86_64.whl", hash = "sha256:4ad8511b29e3d175b958f19933b6114321046b7c0225bddea251573103ce8064"}, + {file = "openPMD_api-0.15.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d474284e94469ebbf7a987f8f2be093bbe4ec4ce365373a0f91f4d60087f4bdb"}, + {file = "openPMD_api-0.15.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:03d9751bab11f6c52e50bc5a638fecaea922510b6c0d4c387cb8e929a8e46e6e"}, + {file = "openPMD_api-0.15.2-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:d3bad9b056cc8ec8528e854441bed63ce69379fe671f5e56ff8d331e0fb562cd"}, + {file = "openPMD_api-0.15.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:151caa9f0ff6eede776f474363fa17af92dd59014892db0124eec168b1837157"}, + {file = "openPMD_api-0.15.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0d501dfb8d48f783a4032aabd34d6e462618781aeda79904af5b1505accac53f"}, + {file = "openPMD_api-0.15.2-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:916657c2c150495a9f59904cd576d866cc900097d98648704ac8d6a592440e05"}, + {file = "openPMD_api-0.15.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bd0426352d46c6b2ae146227a7dcf47cded49d5bf5d376d158f272a77c9579c"}, + {file = "openPMD_api-0.15.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c4af8b4088270843ea9b35185bcf33dbd4cd178740fdb5416028dad944057167"}, +] + +[package.dependencies] +numpy = ">=1.15.0,<2.0.0" [[package]] name = "overrides" -version = "7.4.0" +version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" files = [ - {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, - {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, ] [[package]] name = "packaging" -version = "23.2" +version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] name = "pandocfilters" -version = "1.5.0" +version = "1.5.1" description = "Utilities for writing pandoc filters in python" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, ] [[package]] name = "parso" -version = "0.8.3" +version = "0.8.4" description = "A Python Parser" optional = false python-versions = ">=3.6" files = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, ] [package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["docopt", "pytest (<6.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pexpect" -version = "4.8.0" +version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = false python-versions = "*" files = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, ] [package.dependencies] @@ -2360,31 +2557,29 @@ files = [ [[package]] name = "platformdirs" -version = "3.11.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.8\""} - [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "prometheus-client" -version = "0.17.1" +version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"}, - {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"}, + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -2392,13 +2587,13 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.39" +version = "3.0.47" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.39-py3-none-any.whl", hash = "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88"}, - {file = "prompt_toolkit-3.0.39.tar.gz", hash = "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac"}, + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, ] [package.dependencies] @@ -2406,27 +2601,27 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.6" +version = "5.9.8" 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 = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, ] [package.extras] @@ -2537,27 +2732,28 @@ files = [ [[package]] name = "pygments" -version = "2.16.1" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyparsing" -version = "3.1.1" +version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, - {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [package.extras] @@ -2601,13 +2797,13 @@ files = [ [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -2637,13 +2833,13 @@ files = [ [[package]] name = "pytz" -version = "2023.3.post1" +version = "2024.1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] @@ -2671,17 +2867,17 @@ files = [ [[package]] name = "pywinpty" -version = "2.0.12" +version = "2.0.13" description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.8" files = [ - {file = "pywinpty-2.0.12-cp310-none-win_amd64.whl", hash = "sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575"}, - {file = "pywinpty-2.0.12-cp311-none-win_amd64.whl", hash = "sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722"}, - {file = "pywinpty-2.0.12-cp312-none-win_amd64.whl", hash = "sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca"}, - {file = "pywinpty-2.0.12-cp38-none-win_amd64.whl", hash = "sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d"}, - {file = "pywinpty-2.0.12-cp39-none-win_amd64.whl", hash = "sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4"}, - {file = "pywinpty-2.0.12.tar.gz", hash = "sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd"}, + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, ] [[package]] @@ -2745,104 +2941,99 @@ files = [ [[package]] name = "pyzmq" -version = "25.1.1" +version = "26.0.3" description = "Python bindings for 0MQ" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:381469297409c5adf9a0e884c5eb5186ed33137badcbbb0560b86e910a2f1e76"}, - {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:955215ed0604dac5b01907424dfa28b40f2b2292d6493445dd34d0dfa72586a8"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:985bbb1316192b98f32e25e7b9958088431d853ac63aca1d2c236f40afb17c83"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:afea96f64efa98df4da6958bae37f1cbea7932c35878b185e5982821bc883369"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76705c9325d72a81155bb6ab48d4312e0032bf045fb0754889133200f7a0d849"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:77a41c26205d2353a4c94d02be51d6cbdf63c06fbc1295ea57dad7e2d3381b71"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:12720a53e61c3b99d87262294e2b375c915fea93c31fc2336898c26d7aed34cd"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:57459b68e5cd85b0be8184382cefd91959cafe79ae019e6b1ae6e2ba8a12cda7"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:292fe3fc5ad4a75bc8df0dfaee7d0babe8b1f4ceb596437213821f761b4589f9"}, - {file = "pyzmq-25.1.1-cp310-cp310-win32.whl", hash = "sha256:35b5ab8c28978fbbb86ea54958cd89f5176ce747c1fb3d87356cf698048a7790"}, - {file = "pyzmq-25.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:11baebdd5fc5b475d484195e49bae2dc64b94a5208f7c89954e9e354fc609d8f"}, - {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:d20a0ddb3e989e8807d83225a27e5c2eb2260eaa851532086e9e0fa0d5287d83"}, - {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e1c1be77bc5fb77d923850f82e55a928f8638f64a61f00ff18a67c7404faf008"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d89528b4943d27029a2818f847c10c2cecc79fa9590f3cb1860459a5be7933eb"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90f26dc6d5f241ba358bef79be9ce06de58d477ca8485e3291675436d3827cf8"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2b92812bd214018e50b6380ea3ac0c8bb01ac07fcc14c5f86a5bb25e74026e9"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:2f957ce63d13c28730f7fd6b72333814221c84ca2421298f66e5143f81c9f91f"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:047a640f5c9c6ade7b1cc6680a0e28c9dd5a0825135acbd3569cc96ea00b2505"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7f7e58effd14b641c5e4dec8c7dab02fb67a13df90329e61c869b9cc607ef752"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c2910967e6ab16bf6fbeb1f771c89a7050947221ae12a5b0b60f3bca2ee19bca"}, - {file = "pyzmq-25.1.1-cp311-cp311-win32.whl", hash = "sha256:76c1c8efb3ca3a1818b837aea423ff8a07bbf7aafe9f2f6582b61a0458b1a329"}, - {file = "pyzmq-25.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:44e58a0554b21fc662f2712814a746635ed668d0fbc98b7cb9d74cb798d202e6"}, - {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:e1ffa1c924e8c72778b9ccd386a7067cddf626884fd8277f503c48bb5f51c762"}, - {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1af379b33ef33757224da93e9da62e6471cf4a66d10078cf32bae8127d3d0d4a"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cff084c6933680d1f8b2f3b4ff5bbb88538a4aac00d199ac13f49d0698727ecb"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2400a94f7dd9cb20cd012951a0cbf8249e3d554c63a9c0cdfd5cbb6c01d2dec"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d81f1ddae3858b8299d1da72dd7d19dd36aab654c19671aa8a7e7fb02f6638a"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:255ca2b219f9e5a3a9ef3081512e1358bd4760ce77828e1028b818ff5610b87b"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a882ac0a351288dd18ecae3326b8a49d10c61a68b01419f3a0b9a306190baf69"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:724c292bb26365659fc434e9567b3f1adbdb5e8d640c936ed901f49e03e5d32e"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ca1ed0bb2d850aa8471387882247c68f1e62a4af0ce9c8a1dbe0d2bf69e41fb"}, - {file = "pyzmq-25.1.1-cp312-cp312-win32.whl", hash = "sha256:b3451108ab861040754fa5208bca4a5496c65875710f76789a9ad27c801a0075"}, - {file = "pyzmq-25.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:eadbefd5e92ef8a345f0525b5cfd01cf4e4cc651a2cffb8f23c0dd184975d787"}, - {file = "pyzmq-25.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:db0b2af416ba735c6304c47f75d348f498b92952f5e3e8bff449336d2728795d"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c133e93b405eb0d36fa430c94185bdd13c36204a8635470cccc200723c13bb"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:273bc3959bcbff3f48606b28229b4721716598d76b5aaea2b4a9d0ab454ec062"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cbc8df5c6a88ba5ae385d8930da02201165408dde8d8322072e3e5ddd4f68e22"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:18d43df3f2302d836f2a56f17e5663e398416e9dd74b205b179065e61f1a6edf"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:73461eed88a88c866656e08f89299720a38cb4e9d34ae6bf5df6f71102570f2e"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:34c850ce7976d19ebe7b9d4b9bb8c9dfc7aac336c0958e2651b88cbd46682123"}, - {file = "pyzmq-25.1.1-cp36-cp36m-win32.whl", hash = "sha256:d2045d6d9439a0078f2a34b57c7b18c4a6aef0bee37f22e4ec9f32456c852c71"}, - {file = "pyzmq-25.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:458dea649f2f02a0b244ae6aef8dc29325a2810aa26b07af8374dc2a9faf57e3"}, - {file = "pyzmq-25.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7cff25c5b315e63b07a36f0c2bab32c58eafbe57d0dce61b614ef4c76058c115"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1579413ae492b05de5a6174574f8c44c2b9b122a42015c5292afa4be2507f28"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d0a409d3b28607cc427aa5c30a6f1e4452cc44e311f843e05edb28ab5e36da0"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21eb4e609a154a57c520e3d5bfa0d97e49b6872ea057b7c85257b11e78068222"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:034239843541ef7a1aee0c7b2cb7f6aafffb005ede965ae9cbd49d5ff4ff73cf"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f8115e303280ba09f3898194791a153862cbf9eef722ad8f7f741987ee2a97c7"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1a5d26fe8f32f137e784f768143728438877d69a586ddeaad898558dc971a5ae"}, - {file = "pyzmq-25.1.1-cp37-cp37m-win32.whl", hash = "sha256:f32260e556a983bc5c7ed588d04c942c9a8f9c2e99213fec11a031e316874c7e"}, - {file = "pyzmq-25.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:abf34e43c531bbb510ae7e8f5b2b1f2a8ab93219510e2b287a944432fad135f3"}, - {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:87e34f31ca8f168c56d6fbf99692cc8d3b445abb5bfd08c229ae992d7547a92a"}, - {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c9c6c9b2c2f80747a98f34ef491c4d7b1a8d4853937bb1492774992a120f475d"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5619f3f5a4db5dbb572b095ea3cb5cc035335159d9da950830c9c4db2fbb6995"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a34d2395073ef862b4032343cf0c32a712f3ab49d7ec4f42c9661e0294d106f"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25f0e6b78220aba09815cd1f3a32b9c7cb3e02cb846d1cfc526b6595f6046618"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3669cf8ee3520c2f13b2e0351c41fea919852b220988d2049249db10046a7afb"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2d163a18819277e49911f7461567bda923461c50b19d169a062536fffe7cd9d2"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:df27ffddff4190667d40de7beba4a950b5ce78fe28a7dcc41d6f8a700a80a3c0"}, - {file = "pyzmq-25.1.1-cp38-cp38-win32.whl", hash = "sha256:a382372898a07479bd34bda781008e4a954ed8750f17891e794521c3e21c2e1c"}, - {file = "pyzmq-25.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:52533489f28d62eb1258a965f2aba28a82aa747202c8fa5a1c7a43b5db0e85c1"}, - {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:03b3f49b57264909aacd0741892f2aecf2f51fb053e7d8ac6767f6c700832f45"}, - {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:330f9e188d0d89080cde66dc7470f57d1926ff2fb5576227f14d5be7ab30b9fa"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2ca57a5be0389f2a65e6d3bb2962a971688cbdd30b4c0bd188c99e39c234f414"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d457aed310f2670f59cc5b57dcfced452aeeed77f9da2b9763616bd57e4dbaae"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c56d748ea50215abef7030c72b60dd723ed5b5c7e65e7bc2504e77843631c1a6"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8f03d3f0d01cb5a018debeb412441996a517b11c5c17ab2001aa0597c6d6882c"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:820c4a08195a681252f46926de10e29b6bbf3e17b30037bd4250d72dd3ddaab8"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17ef5f01d25b67ca8f98120d5fa1d21efe9611604e8eb03a5147360f517dd1e2"}, - {file = "pyzmq-25.1.1-cp39-cp39-win32.whl", hash = "sha256:04ccbed567171579ec2cebb9c8a3e30801723c575601f9a990ab25bcac6b51e2"}, - {file = "pyzmq-25.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:e61f091c3ba0c3578411ef505992d356a812fb200643eab27f4f70eed34a29ef"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ade6d25bb29c4555d718ac6d1443a7386595528c33d6b133b258f65f963bb0f6"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0c95ddd4f6e9fca4e9e3afaa4f9df8552f0ba5d1004e89ef0a68e1f1f9807c7"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48e466162a24daf86f6b5ca72444d2bf39a5e58da5f96370078be67c67adc978"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abc719161780932c4e11aaebb203be3d6acc6b38d2f26c0f523b5b59d2fc1996"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ccf825981640b8c34ae54231b7ed00271822ea1c6d8ba1090ebd4943759abf5"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c2f20ce161ebdb0091a10c9ca0372e023ce24980d0e1f810f519da6f79c60800"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:deee9ca4727f53464daf089536e68b13e6104e84a37820a88b0a057b97bba2d2"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aa8d6cdc8b8aa19ceb319aaa2b660cdaccc533ec477eeb1309e2a291eaacc43a"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:019e59ef5c5256a2c7378f2fb8560fc2a9ff1d315755204295b2eab96b254d0a"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b9af3757495c1ee3b5c4e945c1df7be95562277c6e5bccc20a39aec50f826cd0"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:548d6482dc8aadbe7e79d1b5806585c8120bafa1ef841167bc9090522b610fa6"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:057e824b2aae50accc0f9a0570998adc021b372478a921506fddd6c02e60308e"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2243700cc5548cff20963f0ca92d3e5e436394375ab8a354bbea2b12911b20b0"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79986f3b4af059777111409ee517da24a529bdbd46da578b33f25580adcff728"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:11d58723d44d6ed4dd677c5615b2ffb19d5c426636345567d6af82be4dff8a55"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:49d238cf4b69652257db66d0c623cd3e09b5d2e9576b56bc067a396133a00d4a"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fedbdc753827cf014c01dbbee9c3be17e5a208dcd1bf8641ce2cd29580d1f0d4"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc16ac425cc927d0a57d242589f87ee093884ea4804c05a13834d07c20db203c"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11c1d2aed9079c6b0c9550a7257a836b4a637feb334904610f06d70eb44c56d2"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e8a701123029cc240cea61dd2d16ad57cab4691804143ce80ecd9286b464d180"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61706a6b6c24bdece85ff177fec393545a3191eeda35b07aaa1458a027ad1304"}, - {file = "pyzmq-25.1.1.tar.gz", hash = "sha256:259c22485b71abacdfa8bf79720cd7bcf4b9d128b30ea554f01ae71fdbfdaa23"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, + {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, + {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, + {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, + {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, + {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, + {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, + {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, ] [package.dependencies] @@ -2850,18 +3041,17 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.4.4" +version = "5.5.2" description = "Jupyter Qt console" optional = false -python-versions = ">= 3.7" +python-versions = ">=3.8" files = [ - {file = "qtconsole-5.4.4-py3-none-any.whl", hash = "sha256:a3b69b868e041c2c698bdc75b0602f42e130ffb256d6efa48f9aa756c97672aa"}, - {file = "qtconsole-5.4.4.tar.gz", hash = "sha256:b7ffb53d74f23cee29f4cdb55dd6fabc8ec312d94f3c46ba38e1dde458693dfb"}, + {file = "qtconsole-5.5.2-py3-none-any.whl", hash = "sha256:42d745f3d05d36240244a04e1e1ec2a86d5d9b6edb16dbdef582ccb629e87e0b"}, + {file = "qtconsole-5.5.2.tar.gz", hash = "sha256:6b5fb11274b297463706af84dcbbd5c92273b1f619e6d25d08874b0a88516989"}, ] [package.dependencies] ipykernel = ">=4.1" -ipython-genutils = "*" jupyter-client = ">=4.1" jupyter-core = "*" packaging = "*" @@ -3018,55 +3208,55 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo [[package]] name = "scipy" -version = "1.11.3" +version = "1.13.1" description = "Fundamental algorithms for scientific computing in Python" optional = false -python-versions = "<3.13,>=3.9" -files = [ - {file = "scipy-1.11.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:370f569c57e1d888304052c18e58f4a927338eafdaef78613c685ca2ea0d1fa0"}, - {file = "scipy-1.11.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:9885e3e4f13b2bd44aaf2a1a6390a11add9f48d5295f7a592393ceb8991577a3"}, - {file = "scipy-1.11.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e04aa19acc324a1a076abb4035dabe9b64badb19f76ad9c798bde39d41025cdc"}, - {file = "scipy-1.11.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e1a8a4657673bfae1e05e1e1d6e94b0cabe5ed0c7c144c8aa7b7dbb774ce5c1"}, - {file = "scipy-1.11.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7abda0e62ef00cde826d441485e2e32fe737bdddee3324e35c0e01dee65e2a88"}, - {file = "scipy-1.11.3-cp310-cp310-win_amd64.whl", hash = "sha256:033c3fd95d55012dd1148b201b72ae854d5086d25e7c316ec9850de4fe776929"}, - {file = "scipy-1.11.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:925c6f09d0053b1c0f90b2d92d03b261e889b20d1c9b08a3a51f61afc5f58165"}, - {file = "scipy-1.11.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5664e364f90be8219283eeb844323ff8cd79d7acbd64e15eb9c46b9bc7f6a42a"}, - {file = "scipy-1.11.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00f325434b6424952fbb636506f0567898dca7b0f7654d48f1c382ea338ce9a3"}, - {file = "scipy-1.11.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f290cf561a4b4edfe8d1001ee4be6da60c1c4ea712985b58bf6bc62badee221"}, - {file = "scipy-1.11.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:91770cb3b1e81ae19463b3c235bf1e0e330767dca9eb4cd73ba3ded6c4151e4d"}, - {file = "scipy-1.11.3-cp311-cp311-win_amd64.whl", hash = "sha256:e1f97cd89c0fe1a0685f8f89d85fa305deb3067d0668151571ba50913e445820"}, - {file = "scipy-1.11.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dfcc1552add7cb7c13fb70efcb2389d0624d571aaf2c80b04117e2755a0c5d15"}, - {file = "scipy-1.11.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:0d3a136ae1ff0883fffbb1b05b0b2fea251cb1046a5077d0b435a1839b3e52b7"}, - {file = "scipy-1.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bae66a2d7d5768eaa33008fa5a974389f167183c87bf39160d3fefe6664f8ddc"}, - {file = "scipy-1.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2f6dee6cbb0e263b8142ed587bc93e3ed5e777f1f75448d24fb923d9fd4dce6"}, - {file = "scipy-1.11.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:74e89dc5e00201e71dd94f5f382ab1c6a9f3ff806c7d24e4e90928bb1aafb280"}, - {file = "scipy-1.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:90271dbde4be191522b3903fc97334e3956d7cfb9cce3f0718d0ab4fd7d8bfd6"}, - {file = "scipy-1.11.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a63d1ec9cadecce838467ce0631c17c15c7197ae61e49429434ba01d618caa83"}, - {file = "scipy-1.11.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:5305792c7110e32ff155aed0df46aa60a60fc6e52cd4ee02cdeb67eaccd5356e"}, - {file = "scipy-1.11.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ea7f579182d83d00fed0e5c11a4aa5ffe01460444219dedc448a36adf0c3917"}, - {file = "scipy-1.11.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c77da50c9a91e23beb63c2a711ef9e9ca9a2060442757dffee34ea41847d8156"}, - {file = "scipy-1.11.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15f237e890c24aef6891c7d008f9ff7e758c6ef39a2b5df264650eb7900403c0"}, - {file = "scipy-1.11.3-cp39-cp39-win_amd64.whl", hash = "sha256:4b4bb134c7aa457e26cc6ea482b016fef45db71417d55cc6d8f43d799cdf9ef2"}, - {file = "scipy-1.11.3.tar.gz", hash = "sha256:bba4d955f54edd61899776bad459bf7326e14b9fa1c552181f0479cc60a568cd"}, -] - -[package.dependencies] -numpy = ">=1.21.6,<1.28.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"] +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "send2trash" -version = "1.8.2" +version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, - {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, ] [package.extras] @@ -3076,19 +3266,19 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "68.2.2" +version = "68.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" +optional = true +python-versions = ">=3.7" files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, + {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, + {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -3117,13 +3307,13 @@ tornado = ">=2.0" [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -3346,13 +3536,13 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "terminado" -version = "0.17.1" +version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, - {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, ] [package.dependencies] @@ -3363,6 +3553,7 @@ tornado = ">=6.1.0" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] [[package]] name = "tikzplotlib" @@ -3432,13 +3623,13 @@ files = [ [[package]] name = "tqdm" -version = "4.66.1" +version = "4.66.4" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, ] [package.dependencies] @@ -3515,17 +3706,6 @@ files = [ {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, ] -[[package]] -name = "types-python-dateutil" -version = "2.8.19.14" -description = "Typing stubs for python-dateutil" -optional = false -python-versions = "*" -files = [ - {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, - {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, -] - [[package]] name = "typing-extensions" version = "4.7.1" @@ -3570,13 +3750,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" -version = "0.2.8" +version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.8-py2.py3-none-any.whl", hash = "sha256:77f719e01648ed600dfa5402c347481c0992263b81a027344f3e1ba25493a704"}, - {file = "wcwidth-0.2.8.tar.gz", hash = "sha256:8705c569999ffbb4f6a87c6d1b80f324bd6db952f5eb0b95bc07517f4c1813d4"}, + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] [[package]] @@ -3607,29 +3787,29 @@ files = [ [[package]] name = "websocket-client" -version = "1.6.4" +version = "1.8.0" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" files = [ - {file = "websocket-client-1.6.4.tar.gz", hash = "sha256:b3324019b3c28572086c4a319f91d1dcd44e6e11cd340232978c684a7650d0df"}, - {file = "websocket_client-1.6.4-py3-none-any.whl", hash = "sha256:084072e0a7f5f347ef2ac3d8698a5e0b4ffbfcab607628cadabc650fc9a83a24"}, + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, ] [package.extras] -docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.9" +version = "4.0.11" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, - {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, + {file = "widgetsnbextension-4.0.11-py3-none-any.whl", hash = "sha256:55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36"}, + {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, ] [[package]] @@ -3653,4 +3833,4 @@ full = ["numba", "numba"] [metadata] lock-version = "2.0" python-versions = "^3.7, <3.13" -content-hash = "9eb46f1b60e19b1da529a9208dd4c56752d886177e8b49eda707c5c778c758b5" +content-hash = "9361b00b8b4354faa3d85cc41a8790222872823c9eb5b77f46d93f011f2b25c2" diff --git a/pyproject.toml b/pyproject.toml index 17ab6bc3..a051379a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,16 +29,19 @@ motionpicture = ">=0.2.0, ^0" argcomplete = "^2.0.0" tikzplotlib = ">=0.9.13, ^0" py-expression-eval = ">=0.3.14, ^0" +openpmd-api = [{ version = "^0.14.0", python = "<3.8" }, + { version = "^0.15.2", python = ">3.8" }] + [tool.poetry.dev-dependencies] -black = "^23.1.0" +black = { version = "^24.1.0", python = ">=3.8.1" } coverage = "^6.3" Sphinx = { version = "^6.0.0", python = ">=3.8.1" } jupyter = { version = "^1.0.0", python = ">=3.8.1" } jedi = ">=0.18.1, ^0" snakeviz = "^2.1.0" nbsphinx = ">0.8.10, ^0" -isort = "^5.10.0" +isort = { version = "^5.13.0", python = ">=3.8.1" } flake8 = [{ version = "^6.0.0", python = ">=3.8.1" }] mypy = ">=0.931, ^0" sphinx-autodoc-typehints = "^1.17.0" diff --git a/tests/grid_functions/batman.it00000000.bp4/data.0 b/tests/grid_functions/batman.it00000000.bp4/data.0 new file mode 100755 index 0000000000000000000000000000000000000000..e0efea4b2766269d4b5f05790bd6a5f53067a44e GIT binary patch literal 2432122 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 R2;*Wggx-2C1!6E%9snGv4A}qx literal 0 HcmV?d00001 diff --git a/tests/grid_functions/batman.it00000000.bp4/profiling.json b/tests/grid_functions/batman.it00000000.bp4/profiling.json new file mode 100755 index 00000000..838a2c6a --- /dev/null +++ b/tests/grid_functions/batman.it00000000.bp4/profiling.json @@ -0,0 +1,3 @@ +[ +{ "rank": 0, "start": "Mon_Nov_27_11:15:33_2023", "threads": 1, "bytes": 2432122, "mkdir_mus": 336, "aggregation_mus": 0, "meta_sort_merge_mus": 94, "minmax_mus": 0, "memcpy_mus": 250, "buffering_mus": 3653, "transport_0": { "type": "File_POSIX", "close_mus": 148, "write_mus": 2606, "open_mus": 3693}, "transport_1": { "type": "File_POSIX", "close_mus": 0, "write_mus": 172, "open_mus": 3241} } +] diff --git a/tests/grid_functions/batman.it00000001.bp4/data.0 b/tests/grid_functions/batman.it00000001.bp4/data.0 new file mode 100644 index 0000000000000000000000000000000000000000..d23ce73aebed6235bbaff80d02a3a7601c72d9f4 GIT binary patch literal 2432122 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 BxX=Iq literal 0 HcmV?d00001 diff --git a/tests/grid_functions/batman.it00000001.bp4/md.0 b/tests/grid_functions/batman.it00000001.bp4/md.0 new file mode 100644 index 0000000000000000000000000000000000000000..569718cb9a707ea4a3971d719ce8d8e998ba00f8 GIT binary patch literal 29649 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 R2;*Wggx-2C1!6E%9snGv4A}qx literal 0 HcmV?d00001 diff --git a/tests/grid_functions/batman.it00000001.bp4/profiling.json b/tests/grid_functions/batman.it00000001.bp4/profiling.json new file mode 100644 index 00000000..f5116246 --- /dev/null +++ b/tests/grid_functions/batman.it00000001.bp4/profiling.json @@ -0,0 +1,3 @@ +[ +{ "rank": 0, "start": "Mon_Nov_27_11:15:33_2023", "threads": 1, "bytes": 2432122, "mkdir_mus": 333, "aggregation_mus": 0, "meta_sort_merge_mus": 66, "minmax_mus": 0, "memcpy_mus": 215, "buffering_mus": 1018, "transport_0": { "type": "File_POSIX", "close_mus": 163, "write_mus": 2213, "open_mus": 1891}, "transport_1": { "type": "File_POSIX", "close_mus": 0, "write_mus": 209, "open_mus": 6161} } +] diff --git a/tests/test_cactus_grid_functions.py b/tests/test_cactus_grid_functions.py index 8f50f86b..43d1a065 100755 --- a/tests/test_cactus_grid_functions.py +++ b/tests/test_cactus_grid_functions.py @@ -23,6 +23,7 @@ import numpy as np from kuibit import cactus_grid_functions as cg +from kuibit import cactus_ascii_utils as ca from kuibit import grid_data from kuibit import simdir as sd @@ -58,6 +59,10 @@ def test_GridFunctionsDir_string_or_tuple(self): def test_contains(self): self.assertIn("xyz", self.gd) + def test_contains_OpenPMDVars(self): + vars3D = self.gd.xyz + self.assertIn("wavetoyx_u", vars3D) + def test__getitem(self): self.assertIs(self.gd["xy"], self.gd._all_griddata[(0, 1)]) @@ -90,6 +95,7 @@ def test_total_filesize(self): class TestAllGridFunctions(unittest.TestCase): def setUp(self): self.gf = sd.SimDir("tests/grid_functions").gf.xy + self.gf_xyz = sd.SimDir("tests/grid_functions").gf.xyz def test__init(self): self.assertCountEqual(self.gf.dimension, (0, 1)) @@ -136,6 +142,8 @@ def test__init(self): ], ) + self.assertCountEqual(list(self.gf._vars_openpmd_files.keys()), []) + # Here we are not testing that files are correctly organized... def test_keys(self): @@ -183,7 +191,7 @@ def test__getitem(self): with self.assertRaises(KeyError): self.gf["hey"] - # Test a variable from ASCII and one from HDF5 + # Test a variable from ASCII, one from HDF5, and one from OpenPMD # We don't test the details, we just test that object is initialized # with the correct data @@ -197,6 +205,20 @@ def test__getitem(self): filename, "illinoisgrmhd-grmhd_primitives_allbutbi.xy.h5" ) + # OpenPMD + self.assertTrue( + isinstance(self.gf_xyz["wavetoyx_u"], cg.OneGridFunctionOpenPMD) + ) + self.assertEqual(self.gf_xyz["wavetoyx_u"].var_name, "wavetoyx_u") + # self.gf_xyz['wavetoy-u']allfiles is a set with two elements, the + # two iterations + filenames = { + os.path.split(f)[-1] for f in self.gf_xyz["wavetoyx_u"].allfiles + } + self.assertCountEqual( + filenames, {"batman.it00000000.bp4", "batman.it00000001.bp4"} + ) + # ASCII # First, we test that a warning is emitted when we don't have ghost @@ -254,6 +276,10 @@ def setUp(self): # There's only one file self.rho_star_file = self.rho_star.allfiles[0] + # OpenPMD + self.wavetoy = sd.SimDir("tests/grid_functions").gf.xyz["wavetoyx_rho"] + self.wavetoy_file_it0 = sorted(self.wavetoy.allfiles)[0] + # We are going to test all the methods of the baseclass with # HDF5 files @@ -287,6 +313,28 @@ def test__properties_in_file(self): self.P._components_in_file(self.P_file, 2, 0), [0, 1] ) + self.assertCountEqual( + self.wavetoy._iterations_in_file(self.wavetoy_file_it0), [0] + ) + self.assertEqual( + self.wavetoy._min_iteration_in_file(self.wavetoy_file_it0), 0 + ) + self.assertEqual( + self.wavetoy._max_iteration_in_file(self.wavetoy_file_it0), 0 + ) + self.assertCountEqual( + self.wavetoy._ref_levels_in_file(self.wavetoy_file_it0, 0), + [0, 1], + ) + self.assertCountEqual( + self.wavetoy._components_in_file( + self.wavetoy_file_it0, + 0, + 0, + ), + [0, 1, 2, 3], + ) + def test_restarts(self): # TODO: This test is not robust when we are dealing with only one file... # Add a second file and rewrite tests. @@ -299,6 +347,11 @@ def test_iterations(self): self.assertCountEqual(self.P.available_iterations, [0, 1, 2]) self.assertCountEqual(self.P.iterations, [0, 1, 2]) + self.assertEqual(self.wavetoy.min_iteration, 0) + self.assertEqual(self.wavetoy.max_iteration, 1) + self.assertCountEqual(self.wavetoy.available_iterations, [0, 1]) + self.assertCountEqual(self.wavetoy.iterations, [0, 1]) + # Iteration not available with self.assertRaises(ValueError): self.P._files_with_iteration(3) @@ -311,9 +364,14 @@ def test_times(self): self.assertCountEqual(self.P.available_times, [0, 0.25, 0.5]) self.assertCountEqual(self.P.times, [0, 0.25, 0.5]) + self.assertCountEqual(self.wavetoy.available_times, [0, 0.0078125]) + self.assertCountEqual(self.wavetoy.times, [0, 0.0078125]) + def test_iteration_at_time(self): self.assertEqual(self.P.iteration_at_time(0.5), 2) + self.assertEqual(self.wavetoy.iteration_at_time(0.0078125), 1) + # Time not available with self.assertRaises(ValueError): self.P.iteration_at_time(5) @@ -489,6 +547,40 @@ def test_init(self): with self.assertRaises(RuntimeError): self.rho_star._parse_file("/tmp/wrongname") + def test_openpmd(self): + iteration = 0 + component = 0 + + with cg.openpmd_series(self.wavetoy_file_it0) as series: + variable = series.iterations[iteration].meshes[ + "wavetoyx_state_lev00" + ]["wavetoyx_u"] + chunk = variable.available_chunks()[component] + + # Do the actual reading + data = variable.load_chunk(chunk.offset, chunk.extent) + series.flush() + + expected_grid = grid_data.UniformGrid( + [9, 33, 33], + x0=[-1.0, -1.0, -1.0], + x1=[1.0, 0.0, 0.0], + ref_level=0, + num_ghost=[0, 0, 0], + time=0, + iteration=0, + component=0, + ) + + expected_grid_data = grid_data.UniformGridData(expected_grid, data) + + self.assertEqual( + self.wavetoy._read_component_as_uniform_grid_data( + self.wavetoy_file_it0, 0, 0, 0 + ), + expected_grid_data, + ) + def test_clear_cache(self): # Read something self.P[0] @@ -501,3 +593,57 @@ def test_clear_cache(self): # Check that we are clear self.assertIsNone(self.P.alldata[self.P_file][0][0][0]) + + +class TestOneGridFunctionOpenPMD(unittest.TestCase): + def setUp(self): + self.gf = sd.SimDir("tests/grid_functions").gf.xyz + + def test__init(self): + self.assertCountEqual(self.gf.dimension, (0, 1, 2)) + # Here we check that we indexed the correct variables. We must check + # the OpenPMD file + + # There are five files including one OpenPMD file in the test folder: + # 1. illinoisgrmhd-grmhd_primitives_allbutbi.xyz.asc (ASCII one group) + # 2. rho_star.xyz.asc (ASCII one var) + # 3. illinoisgrmhd-grmhd_primitives_allbutbi.xyz.file_0.h5 (HDF5 one group) + # 4. illinoisgrmhd-grmhd_primitives_allbutbi.xyz.file_1.h5 (HDF5 one group) + # 5. batman.it00000000.bp4 (OpenPMD bp4) + + # Here we can we find all the variables + + # assert variables from OpenPMD bp4 file + self.assertCountEqual( + list(self.gf._vars_openpmd_files.keys()), + [ + "wavetoyx_rho", + "wavetoyx_u", + ], + ) + + # assert variables from h5 file + self.assertCountEqual( + list(self.gf._vars_h5_files.keys()), + ["P", "rho_b", "vx", "vy", "vz"], + ) + + # assert variables from ascii file + self.assertCountEqual( + list(self.gf._vars_ascii_files.keys()), + ["P", "rho_b", "vx", "vy", "vz", "rho_star"], + ) + + def test_allfiles(self): + # This is a weak test, we are just testing how many files we have... + # There should be 6 files including the OpenPMD bp4 files + self.assertEqual(len(self.gf.allfiles), 6) + + def test_iterations(self): + wavetoyx_rho = self.gf.fields.wavetoyx_rho + self.assertEqual(wavetoyx_rho.iterations, [0, 1]) + + def test_multiple_mesh_refinement_levels(self): + # wavetouyx_rho variable in the OpenPMD file has 2 mesh refinement levels + wavetoyx_rho0 = self.gf.fields.wavetoyx_rho[0] + self.assertEqual(wavetoyx_rho0.refinement_levels, [0, 1])