From b6c9c0d4802c5861eba602678aee1a2447ed1697 Mon Sep 17 00:00:00 2001 From: monkeyman192 Date: Tue, 27 Jan 2026 15:05:46 +1100 Subject: [PATCH] Lots of changes - see change log --- .github/workflows/pipeline.yml | 2 +- docs/docs/change_log.rst | 14 +- docs/docs/creating_hook_definitions.rst | 14 +- docs/docs/extension_types.rst | 43 +- docs/docs/gui/custom_widgets.rst | 201 + docs/docs/gui/gui.rst | 37 +- docs/docs/inter_mod_functionality.rst | 6 +- docs/docs/libraries/custom_callbacks.rst | 6 +- docs/docs/mod_states.rst | 4 +- docs/docs/partial_structs.rst | 29 +- docs/docs/settings.rst | 2 +- docs/docs/single_file_mods.rst | 4 +- docs/docs/usage.rst | 2 +- docs/docs/writing_mods.rst | 2 +- docs/images/custom_widget_example.png | Bin 0 -> 30154 bytes pymhf/__init__.py | 6 +- pymhf/core/_types.py | 2 + pymhf/core/hooking.py | 44 +- pymhf/core/importing.py | 6 + pymhf/core/mod_loader.py | 149 +- pymhf/extensions/ctypes.py | 91 +- pymhf/gui/decorators.py | 184 +- pymhf/gui/fonts/JetBrainsMono[wght].ttf | Bin 0 -> 303144 bytes pymhf/gui/fonts/OFL.txt | 93 + pymhf/gui/gui.py | 585 +- pymhf/gui/protocols.py | 34 - pymhf/gui/widget_data.py | 162 + pymhf/gui/widgets.py | 641 ++ pymhf/main.py | 14 +- pymhf/utils/partial_struct.py | 55 +- pymhf/utils/winapi.py | 24 + pyproject.toml | 3 + testing/custom_widget.py | 115 + testing/gui_test_mod.py | 220 + testing/gui_test_mod_simple.py | 119 + testing/readme.md | 2 + testing/test_gui.py | 25 + tests/unit/test_partial_structs.py | 72 +- uv.lock | 8651 ++-------------------- 39 files changed, 3109 insertions(+), 8554 deletions(-) create mode 100644 docs/docs/gui/custom_widgets.rst create mode 100644 docs/images/custom_widget_example.png create mode 100644 pymhf/gui/fonts/JetBrainsMono[wght].ttf create mode 100644 pymhf/gui/fonts/OFL.txt delete mode 100644 pymhf/gui/protocols.py create mode 100644 pymhf/gui/widget_data.py create mode 100644 pymhf/gui/widgets.py create mode 100644 testing/custom_widget.py create mode 100644 testing/gui_test_mod.py create mode 100644 testing/gui_test_mod_simple.py create mode 100644 testing/readme.md create mode 100644 testing/test_gui.py diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 202a73b..d20f90e 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -52,7 +52,7 @@ jobs: - name: Build test binaries run: g++ ./tests/programs/src/app.cpp -Wall -o ./tests/programs/app.exe - name: Run unit tests - run: uv run pytest ./tests + run: uv run pytest ./tests/unit build: name: Build wheel and docs runs-on: Windows-2025 diff --git a/docs/docs/change_log.rst b/docs/docs/change_log.rst index 9a121be..9bdc2d5 100644 --- a/docs/docs/change_log.rst +++ b/docs/docs/change_log.rst @@ -1,6 +1,18 @@ Change Log ========== +Current (0.2.2.dev) +------------------- + +- Deprecated the :py:func:`~pymhf.gui.decorators.gui_combobox` decorator. This is replaced by :py:attr:`~pymhf.gui.decorators.ENUM` which is more native and flexible. +- Added the ``is_slider`` argument to the :py:attr:`~pymhf.gui.decorators.INTEGER` and :py:attr:`~pymhf.gui.decorators.FLOAT` decorators to allow creating slider fields rather than numerical entry fields. +- Added a custom widget class which allows mod authors to create completely unique GUI elements which can be bound to the state of the mod - :py:class:`~pymhf.gui.widgets.CustomWidget`. See :doc:`here ` for the full usage guide. +- Added the :py:func:`~pymhf.gui.decorators.gui_group` context manager to allow grouping widgets logically in the gui. (`#93 `_) +- Added the :py:class:`~pymhf.extensions.ctypes.c_char_p32` and :py:class:`~pymhf.extensions.ctypes.c_char_p64` classes as wrappers for ``ctypes.c_uint32`` and ``ctypes.c_uint64`` types. This is to get around issues with using ``ctypes.c_char_p`` as a argument type to annotate ``char*`` types (the binary being hooked would often crash). +- If the ``[pymhf].exe`` attribute is specified in the ``pymhf.toml`` as an absolute path, it will be used over the ``steam_gameid``. This is required if one wants to use the ``[pymhf].start_paused`` attribute. +- Fixed an issue with partial structs inheritence where, if a base class has a `_total_size_` attribute, then the inheriting class would have the wrong offsets for fields. +- Added the :py:class:`~pymhf.extensions.ctypes.c_enum16` type for creating enums whose value is serialized as a 16bit integer. + 0.2.1 (15/11/2025) ------------------ @@ -19,7 +31,7 @@ Next release set will focus on UI/UX as well as utilities, both in terms of the - Fixed some inssues around running python files directly with ``pymhf run`` - Added the option to pass command line arguments to the function when ``pymhf`` starts the process itself. - Added the ``config_overrides`` argument to :py:func:`~pymhf.main.load_mod_file` to allow overriding the static config values. -- Implemented the functionality so that if ``start_paused`` is True, the program will start automatically once injection is completed (no need for manual input any more). +- Implemented the functionality so that if ``[pymhf].start_paused`` is True, the program will start automatically once injection is completed (no need for manual input any more). 0.1.16 (16/08/2025) ------------------- diff --git a/docs/docs/creating_hook_definitions.rst b/docs/docs/creating_hook_definitions.rst index 918f540..3dccc0b 100644 --- a/docs/docs/creating_hook_definitions.rst +++ b/docs/docs/creating_hook_definitions.rst @@ -18,7 +18,7 @@ The best way to see how these decorators are used is with a few code examples. *Imported function* hooks ------------------------- -.. code-block:: py +.. code-block:: python :caption: imported_hook_mod.py :linenos: @@ -58,7 +58,7 @@ Exported functions are those which are provided by the binary itself. There are .. _exported_hook_mod_code: -.. code-block:: py +.. code-block:: python :caption: exported_hook_mod.py :linenos: @@ -132,7 +132,7 @@ Defining functions to hook is done in much the same way as above, however, we si If the binary receives updates, then the ``signature`` is the only option as ``offset`` values will change as the binary does. -.. code-block:: py +.. code-block:: python :caption: normal_hook_mod.py :linenos: @@ -229,7 +229,7 @@ The methods also need the ``typing.overload`` decorator. Note that pyMHF actuall To hook or call a function with an overload, append ``.overload(overload_id: str)`` to the original function. This will refer to the overloaded function. -.. code-block:: py +.. code-block:: python :caption: overloaded_mod.py :linenos: @@ -374,7 +374,7 @@ These types MUST be either a ctypes plain type (eg. ``ctypes.c_uint32``), a ctyp To improve type hinting, it is however possible to specify the type using `typing.Annotated `_. For example, instead of writing -.. code-block:: py +.. code-block:: python @function_hook("AB CD EF") def AwardMoney(self, this: "ctypes._Pointer[Obj]", liChange: ctypes.c_int32) -> ctypes.c_uint64: @@ -382,7 +382,7 @@ For example, instead of writing We can type -.. code-block:: py +.. code-block:: python @function_hook("AB CD EF") def AwardMoney(self, this: "ctypes._Pointer[Obj]", liChange: Annotated[int, ctypes.c_int32]) -> ctypes.c_uint64: @@ -413,7 +413,7 @@ pyMHF makes this easy by providing the :py:meth:`Structure.new_empty() ctypes.c_uint64: + ... + + class ExampleMod(Mod): + @GetLookup.before + def log_lookup(self, lpacName: c_char_p64): + logger.info(f"Got the lookup {lpacName}") + + +:py:class:`~pymhf.extensions.ctypes.c_enum16` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This class is a wrapper around the ``ctypes.c_int32`` type, but it's able to be subscripted to provide a concrete type based on the ``IntEnum`` used. + + :py:class:`~pymhf.extensions.ctypes.c_enum32` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -This class is a wrapper around the ``ctypes.c_uint32`` type, but it's able to be subscripted to provide a concrete type based on the ``IntEnum`` used. +This class is a wrapper around the ``ctypes.c_int32`` type, but it's able to be subscripted to provide a concrete type based on the ``IntEnum`` used. For example, consider the following code: -.. code-block:: py +.. code-block:: python from pymhf.utils.partial_struct import partial_struct + from pymhf.extensions.ctypes import c_enum32 import ctypes from enum import IntEnum from typing import Annotated diff --git a/docs/docs/gui/custom_widgets.rst b/docs/docs/gui/custom_widgets.rst new file mode 100644 index 0000000..f6ba02a --- /dev/null +++ b/docs/docs/gui/custom_widgets.rst @@ -0,0 +1,201 @@ +Custom Widgets +============== + +As well as the collection of built-in widget types provided by pyMHF, it is possible to create completely custom widgets which can be bound to mods. +Doing so is reasonably complicated, but it provides a lot of power, so may be worth the effort! + +Creating a custom widget +------------------------ + +To create a custom widget, you need to create a class which inherits :py:class:`~pymhf.gui.widgets.CustomWidget`. +This class is an `Abstract base class _`, meaning is has a few methods which must be defined on the subclass before python will let it be instantiated. + +Required methods +~~~~~~~~~~~~~~~~ + + - ``draw(self)`` + + This is the main draw command which will be called once when the widget it to be drawn for the + first time. This should create any DearPyGUI widgets which are to be drawn as part of this, as well as creating any variables and binding any callbacks. + Almost any DearPyGUI commands relating to creating widgets should be able to be put here (within reason!). + It is generally recommended that any widgets which are created here have their DearPyGUI ids stored in the ``self.ids`` dictionary associated with the class as they will get cleaned up by default if the widget is removed. + + - ``redraw(self, **kwargs) -> dict[str, Any]``: + + Redraw the widget. + + This will be called each frame but is guaranteed not to be called before the original ``draw`` method. + + This method can be defined with any number of arguments but the function decorated by this class MUST return a dict which doesn't contain any keys which aren't function arguments. + If this decorated a property which also has a setter, the returned dictionary (if any) is passed into that setter by value (ie. it's not spread out - the values must be unpacked from the dictionary inside the setter). + + See the :ref:`example below ` on how these two methods work and can be implemented. + +Widget behaviour +~~~~~~~~~~~~~~~~ + +To make handling the placement of custom widgets as simple as possible, pyMHF defines a few types of "widget behaviours" which a custom widget may have. + +These behaviours are either "continuous" or "separate" + +- **Continuous**: + The widget will be rendered in a row in the existing table which widgets are placed in if possible. + + This table consists of 2 columns, so if you custom widget would nicely fit into a 2 column format (eg. label in left column, entry field in right), then it's recommended that you use this behaviour to make the UI look more seamless. + +- **Separate**: + For a "separate" widget, it will force any existing table to be ended and create a new group for the custom widget to be rendered in. This gives you complete flexibility in what you want to render, however you will need to control the widget of the widget yourself as it will not automatically fill the space horizontally. + + This is due to drawlists in DearPyGUI not expanding automatically and breaking if you put them in a group of width -1 which would normally allow a widget to expand to take up the full width. + +We define the widget behaviour at the top of the custom widget implementation as follows: + +.. code-block:: python + + from pymhf.gui.widgets import CustomWidget, WidgetBehaviour + + class MyWidget(CustomWidget): + widget_behaviour = WidgetBehaviour.SEPARATE + +Example +------- + +The following example has some extra complexity in handling the click events on the drawlist due to some limitations of DearPyGUI. + +.. _custom_widget_mod_code: + +.. code-block:: python + :caption: custom_widget.py + :linenos: + + import math + + import dearpygui.dearpygui as dpg + + from pymhf import Mod + from pymhf.gui.decorators import FLOAT + from pymhf.gui.widgets import CustomWidget, WidgetBehaviour + + + class MovingCircle(CustomWidget): + # Specify that the widget will be drawn separately from the previous widget. + widget_behaviour = WidgetBehaviour.SEPARATE + + def __init__(self, colour: tuple[int, int, int, int] = (255, 0, 0, 255)): + super().__init__() + self.colour = colour + self.center_pos = (200, 200) + self.clicked_on = False + + def click_callback(self, sender, app_data, user_data): + self.clicked_on = True + + def release_mouse(self, sender, app_data, user_data): + self.clicked_on = False + + def draw(self): + # Create a DearPyGUI drawlist to draw a circle which follows the mouse when clicked. + # This code is called when the widget is initially drawn in the GUI and when the + # widget is reloded after the "reload" button is pressed. + with dpg.drawlist(width=500, height=300) as dl: + self.ids["DRAWLIST"] = dl + self.ids["BORDER"] = dpg.draw_rectangle( + pmin=(0, 0), + pmax=(500, 300), + color=(255, 255, 255, 255), + fill=(0, 0, 0, 0), + thickness=1, + ) + self.ids["DOT"] = dpg.draw_circle( + center=self.center_pos, + radius=2, + color=self.colour, + fill=self.colour, + ) + self.ids["CIRCLE"] = dpg.draw_circle( + center=(self.center_pos[0] + 100, self.center_pos[1] + 100), + radius=20, + color=self.colour, + fill=self.colour, + ) + dpg.add_text("Change the value for theta and \nradius below to move the circle.") + + with dpg.item_handler_registry() as ihr: + # Triggers for the left mouse button clicked event within the drawlist bounds + dpg.add_item_clicked_handler( + button=dpg.mvMouseButton_Left, + callback=self.click_callback, + ) + + dpg.bind_item_handler_registry(self.ids["DRAWLIST"], ihr) + + with dpg.handler_registry(): + dpg.add_mouse_release_handler(callback=self.release_mouse) + + def redraw(self, theta: float, radius: float, center_pos: tuple[float, float]): + # This function is called each frame the tab the widget belongs to is selected. + if self.clicked_on: + self.center_pos = tuple(dpg.get_drawing_mouse_pos()) + elif center_pos: + self.center_pos = center_pos + x = self.center_pos[0] + 50 * math.cos(theta) + y = self.center_pos[1] + 50 * math.sin(theta) + + # Update the circle's position using configure_item + dpg.configure_item(self.ids["DOT"], center=self.center_pos) + dpg.configure_item(self.ids["CIRCLE"], center=(x, y), radius=radius) + return {"center_pos": self.center_pos} + + + class GUITest(Mod): + __author__ = "monkeyman192" + __description__ = "Test globals" + + def __init__(self): + super().__init__() + self._theta = 0 + self._radius = 10 + self.center_pos = (200, 200) + + @property + @MovingCircle((255, 0, 123, 255)) + def circle_loc(self): + return { + "theta": self._theta, + "radius": self._radius, + "center_pos": self.center_pos + } + + @circle_loc.setter + def circle_loc(self, value): + self.center_pos = value["center_pos"] + + @property + @FLOAT("Theta", is_slider=True, min_value=0, max_value=2 * math.pi) + def theta(self): + return self._theta + + @theta.setter + def theta(self, value): + self._theta = value + + @property + @FLOAT("Radius", is_slider=True, min_value=0, max_value=50) + def radius(self): + return self._radius + + @radius.setter + def radius(self, value): + self._radius = value + + +The above code will produce a gui like the following: + +.. image:: ../../images/custom_widget_example.png + :alt: Custom widget example GUI + +If we click on anywhere within the border the smaller dot will follow the location of the mouse, and if we drag the theta or radius sliders, the location and size of the larger dot will change. + +Let's break down the above code to see what is going on to get a better idea of what is happening. + +We create the ``MovingCircle`` class which inherits from :py:class:`~pymhf.gui.widgets.CustomWidget` \ No newline at end of file diff --git a/docs/docs/gui/gui.rst b/docs/docs/gui/gui.rst index 5560a95..8f50b3d 100644 --- a/docs/docs/gui/gui.rst +++ b/docs/docs/gui/gui.rst @@ -14,46 +14,49 @@ Clickable elements This decorator is to be applied to a method which takes no arguments. The method will be called when the button is pressed in the gui. -:py:func:`gui_combobox(text: str, items: list[str] = []) ` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This decorator is to be applied to a method which takes no arguments. -The method should have the arguments ``sender`` and ``app_data``. ``app_data`` is the value of the combobox that is selected. -The method will be called when an element of the combobox is selected. - Value elements -------------- Each of these is applied to a property, however the ``@property`` decorator needs to applied later than this decorator (ie. the ``@property`` decorator should be on top of this one.) +If you forget to add the ``@property`` decorator on top of the function, the widget will be rendered in the GUI but it will have the value looking something like the string ````. If the property has a setter then the gui field created will be editable, otherwise it will not be, and for settable properties, changing the entry value will call the setter. Note that these functions will take any of the extra arguments as listed in the link except the following: ``tag``, ``source``, ``user_data``, ``callback``, ``use_internal_label``. These arguments are reserved by pyMHF for our own purposes and any values provided to the decorator will be ignored/removed. -:py:func:`INTEGER(label: str, **kwargs) ` +:py:func:`BOOLEAN(label: str, **kwargs) ` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Create a boolean entry field in the form of a checkbox which can take extra arguments. +To see what extra arguments are available, see the DearPyGUI documentation `here `__. + +:py:func:`INTEGER(label: str, is_slider: bool = False, **kwargs) ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Create an integer entry field which can take extra arguments. To see what extra arguments are available, see the DearPyGUI documentation `here `__. +If ``is_slider`` is ``True``, a slider will be used to render the widget instead. The allowed extra argument for this case can be found `here `__. -:py:func:`BOOLEAN(label: str, **kwargs) ` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +:py:func:`FLOAT(label: str, is_slider: bool = False, **kwargs) ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create an boolean entry field in the form of a checkbox which can take extra arguments. -To see what extra arguments are available, see the DearPyGUI documentation `here `__. +Create a float entry field which can take extra arguments. +Internally this uses double precision when interfacing with DearPyGUI to minimise loss of accuracy. +To see what extra arguments are available, see the DearPyGUI documentation `here `__. +If ``is_slider`` is ``True``, a slider will be used to render the widget instead. The allowed extra argument for this case can be found `here `__. :py:func:`STRING(label: str, **kwargs) ` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create an string entry field which can take extra arguments. +Create a string entry field which can take extra arguments. To see what extra arguments are available, see the DearPyGUI documentation `here `__. -:py:func:`FLOAT(label: str, **kwargs) ` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +:py:func:`ENUM(label: str, **kwargs) ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create an float entry field which can take extra arguments. -To see what extra arguments are available, see the DearPyGUI documentation `here `__. +Create an enum entry field which can take extra arguments. +To see what extra arguments are available, see the DearPyGUI documentation `here `__. Accessing the GUI via code -------------------------- diff --git a/docs/docs/inter_mod_functionality.rst b/docs/docs/inter_mod_functionality.rst index c7bddc2..871052f 100644 --- a/docs/docs/inter_mod_functionality.rst +++ b/docs/docs/inter_mod_functionality.rst @@ -9,7 +9,7 @@ Usage To access other mods we use the :py:data:`~pymhf.core.mod_loader.mod_manager`: -.. code-block:: py +.. code-block:: python from from pymhf.core.mod_loader import mod_manager @@ -23,7 +23,7 @@ Example A simple example is given below: -.. code-block:: py +.. code-block:: python :caption: mod1.py import logging @@ -56,7 +56,7 @@ The above mod won't hook anything, but it will add a numeric field to its mod ta We'll have a second mod in the same folder as the above: -.. code-block:: py +.. code-block:: python :caption: mod2.py import logging diff --git a/docs/docs/libraries/custom_callbacks.rst b/docs/docs/libraries/custom_callbacks.rst index 2e28cba..7fabfa6 100644 --- a/docs/docs/libraries/custom_callbacks.rst +++ b/docs/docs/libraries/custom_callbacks.rst @@ -5,7 +5,7 @@ pyMHF is able to register custom callbacks which are useful for libraries in tha The best way to see this is by an example taken from the NMS.py source code: -.. code-block:: py +.. code-block:: python :caption: decorators.py from pymhf.core import DetourTime @@ -40,7 +40,7 @@ If this isn't provided then the fallback time will be ``DetourTime.NONE`` which These above custom callbacks can then be applied to some function in a mod like so: -.. code-block:: py +.. code-block:: python :caption: main_loop_mod.py import logging @@ -63,7 +63,7 @@ Now that we have defined the custom callbacks, and we have applied them to some It is recommended that theses are implemented in "internal" mods which can be defined like so: -.. code-block:: py +.. code-block:: python :caption: internal_mod.py :linenos: diff --git a/docs/docs/mod_states.rst b/docs/docs/mod_states.rst index 839934b..95b5b81 100644 --- a/docs/docs/mod_states.rst +++ b/docs/docs/mod_states.rst @@ -16,7 +16,7 @@ We want to store this address as it will not change throughout the lifetime of t By setting the mod up as shown below we can experiment with adding extra hooks, or using the data we got from that initial function hook without having to restart the process every time. -.. code-block:: py +.. code-block:: python :caption: mod1.py from dataclasses import dataclass @@ -49,7 +49,7 @@ Generally the types of each field of the ``ModState`` should be a type which is For example, we could implement a vector type as such: -.. code-block:: py +.. code-block:: python :caption: vector_type.py import ctypes diff --git a/docs/docs/partial_structs.rst b/docs/docs/partial_structs.rst index c110b93..bc75e9a 100644 --- a/docs/docs/partial_structs.rst +++ b/docs/docs/partial_structs.rst @@ -8,7 +8,7 @@ pyMHF aims to simplify this process by providing the ``partial_struct`` class de The ``Field`` class is defined as follows: -.. code-block:: py +.. code-block:: python @dataclass class Field: @@ -23,7 +23,7 @@ Usage Below is an example of a struct which we have mapped out that we know has a 32 bit int at the start, 12 bytes of unknown contents, and then another 32 bit int. -.. code-block:: py +.. code-block:: python import ctypes from typing import Annotated @@ -36,7 +36,7 @@ Below is an example of a struct which we have mapped out that we know has a 32 b It is also possible to specify the total size of the struct in bytes by assigning the ``_total_size_`` attribute to the class like so: -.. code-block:: py +.. code-block:: python import ctypes from typing import Annotated @@ -55,7 +55,7 @@ Inheritence It is possible to have a partial struct as the base class of another like so: -.. code-block:: py +.. code-block:: python import ctypes from typing import Annotated @@ -73,7 +73,7 @@ It is possible to have a partial struct as the base class of another like so: In this case, if we look at the ``_fields_`` attribute of the ``Parent`` class it will be generated like so: -.. code-block:: py +.. code-block:: python _fields_ = [ ("a", ctypes.c_uint32), # Offset = 0x0 @@ -89,6 +89,25 @@ From this we can see that (as with c++), the base class will have its fields ser The offsets for parent classes MUST be relative to the start of the entire struct, NOT from the start of the definition after the base class(es). This can be clearly seen in the above example. +In the above example, if we knew the size of the child class, we could also type it as follows and get the same result. + +.. code-block:: python + + import ctypes + from typing import Annotated + from pymhf.utils.partial_struct import partial_struct, Field + + @partial_struct + class Base(ctypes.Structure): + _total_size_ = 0x10 + a: Annotated[ctypes.c_uint32, 0x0] + b: Annotated[ctypes.c_bool, 0x8] + + @partial_struct + class Parent(Base): + c: Annotated[ctypes.c_uint32] + d: ctypes.c_uint32 + Advantages ---------- diff --git a/docs/docs/settings.rst b/docs/docs/settings.rst index 8d7cc4f..36480c1 100644 --- a/docs/docs/settings.rst +++ b/docs/docs/settings.rst @@ -166,7 +166,7 @@ pyMHF has a few "magic" path variables which can be used to make setting up conf To use the "name" versions of the magic strings, they must be surrounded by braces (ie. ``{EXE_DIR}``) as part of the path. -These path variables get resolved as part of a path, so we can provide a path like so ``{EXE_PATH}/../MyMods`` to place things in a folder called ``MyMods`` in the parent directory of the location of the main binary. +These path variables get resolved as part of a path, so we can provide a path like so ``{EXE_DIR}/../MyMods`` to place things in a folder called ``MyMods`` in the parent directory of the location of the main binary. ``EXE_DIR`` ^^^^^^^^^^^ diff --git a/docs/docs/single_file_mods.rst b/docs/docs/single_file_mods.rst index 91ce1cb..8289196 100644 --- a/docs/docs/single_file_mods.rst +++ b/docs/docs/single_file_mods.rst @@ -10,7 +10,7 @@ For more general information regarding providing the data required for a mod see Below is an example single-file mod for the game No Man's Sky: -.. code-block:: py +.. code-block:: python :caption: example_mod.py # /// script @@ -75,7 +75,7 @@ If the game or program is not run through steam, remove the ``steam_gameid`` val Note that by default the GUI will not be installed by ``uv`` and is only available on 64-bit installations of Python due to DearPyGui lacking support for 32-bit. If you want the GUI to be included, add the ``[gui]`` extra to your script dependecies metadata, like so: -.. code-block:: py +.. code-block:: python # /// script # dependencies = ["pymhf[gui]"] diff --git a/docs/docs/usage.rst b/docs/docs/usage.rst index d5eb382..34b82fd 100644 --- a/docs/docs/usage.rst +++ b/docs/docs/usage.rst @@ -13,7 +13,7 @@ From code pyMHF may also be invoked from code in the case of a more complex situation (eg, needing to hook some dynamically generated subprocess). -.. code-block:: py +.. code-block:: python import os.path as op from subprocess import Popen diff --git a/docs/docs/writing_mods.rst b/docs/docs/writing_mods.rst index 62f57b0..0ca31a1 100644 --- a/docs/docs/writing_mods.rst +++ b/docs/docs/writing_mods.rst @@ -87,7 +87,7 @@ This decorator will cause the detour to only be called once then disabled. When applied to a function this decorator will cause the function hook to determine where it was called from. To access this information, you can call a function on the detour method itself. This is seen more clearly by example: -.. code-block:: py +.. code-block:: python class MyHook(NMSMod): @get_caller diff --git a/docs/images/custom_widget_example.png b/docs/images/custom_widget_example.png new file mode 100644 index 0000000000000000000000000000000000000000..234af25f8bb9a7018bc998021521810889404737 GIT binary patch literal 30154 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 NDECITR9fHfzX7=VQ9l3x literal 0 HcmV?d00001 diff --git a/pymhf/__init__.py b/pymhf/__init__.py index 7eea78d..4e36797 100644 --- a/pymhf/__init__.py +++ b/pymhf/__init__.py @@ -459,7 +459,7 @@ def run(): config_choice = CONFIG_SELECT_Q.ask() if config_choice == CFG_OPT_BIN_PATH: if (exe_path := EXE_PATH_Q.ask()) is not None: - pymhf_settings["exe_path"] = exe_path + pymhf_settings["exe"] = exe_path if "steam_gameid" in pymhf_settings: del pymhf_settings["steam_gameid"] else: @@ -467,8 +467,8 @@ def run(): elif config_choice == CFG_OPT_STEAM_ID: if (steam_id := STEAM_ID_Q.ask()) is not None: pymhf_settings["steam_gameid"] = steam_id - if "exe_path" in pymhf_settings: - del pymhf_settings["exe_path"] + if "exe" in pymhf_settings: + del pymhf_settings["exe"] else: return elif config_choice == CFG_OPT_MOD_PATH: diff --git a/pymhf/core/_types.py b/pymhf/core/_types.py index f1ecd81..3066d67 100644 --- a/pymhf/core/_types.py +++ b/pymhf/core/_types.py @@ -98,6 +98,8 @@ class HookProtocol(Protocol): def __call__(self, *args: Any, **kwargs: Any) -> Any: ... + def __func__(self) -> "CallerHookProtocol": ... + class CallerHookProtocol(HookProtocol): def caller_address(self) -> int: diff --git a/pymhf/core/hooking.py b/pymhf/core/hooking.py index ba87375..76bd6d0 100644 --- a/pymhf/core/hooking.py +++ b/pymhf/core/hooking.py @@ -199,7 +199,7 @@ def _one_shot( # If the detour needs the `caller_address` property, add it. if getattr(detour, "_get_caller", False) is True: # We need to get the type of the class and assign the attribute to the class function itself. - detour.__func__.caller_address = lambda: self.caller_address + setattr(detour.__func__, "caller_address", lambda: self.caller_address) def remove_detour(self, detour: HookProtocol): """Remove the provided detour from this FuncHook.""" @@ -249,7 +249,7 @@ def bind(self) -> bool: try: super().__init__(signature=self.signature, target=self.target) - except cyminhook._cyminhook.Error as e: # type: ignore + except cyminhook._cyminhook.Error as e: if e.status == cyminhook._cyminhook.Status.MH_ERROR_ALREADY_CREATED: logger.error("Hook is already created") logger.error(f"Failed to initialize hook {self._name} at 0x{self.target:X}") @@ -263,16 +263,19 @@ def _compound_detour(self, *args): ret = None # Loop over the before detours, keeping the last none-None return value. + i = None try: for i, func in enumerate(self._before_detours): r = func(*args) if r is not None: ret = r + i = None except Exception: - bad_detour = self._before_detours.pop(i) - logger.error(f"There was an error with detour {bad_detour}. It has been disabled.") - logger.error(traceback.format_exc()) - self._disabled_detours.add(bad_detour) + if i is not None: + bad_detour = self._before_detours.pop(i) + logger.error(f"There was an error with detour {bad_detour}. It has been disabled.") + logger.error(traceback.format_exc()) + self._disabled_detours.add(bad_detour) # If we don't have any decorators which NOOP the original function then run as usual. if not self._has_noop: @@ -290,6 +293,8 @@ def _compound_detour(self, *args): # Now loop over the after functions. We'll need to handle the cases of # functions which take the `_result_` kwarg, and those that don't. + i = None + j = None try: for i, func in enumerate(self._after_detours): after_ret = func(*args) @@ -298,13 +303,15 @@ def _compound_detour(self, *args): after_ret = func(*args, _result_=result) j = None except Exception: + bad_detour = None if i is not None: bad_detour = self._after_detours.pop(i) - else: + elif j is not None: bad_detour = self._after_detours_with_results.pop(j) - logger.error(f"There was an error with detour {bad_detour}. It has been disabled.") - logger.error(traceback.format_exc()) - self._disabled_detours.add(bad_detour) + if bad_detour is not None: + logger.error(f"There was an error with detour {bad_detour}. It has been disabled.") + logger.error(traceback.format_exc()) + self._disabled_detours.add(bad_detour) if after_ret is not None: return after_ret @@ -739,14 +746,14 @@ def register_hook(self, hook: HookProtocol): # Otherwise, try lookup the pattern if we have one. elif (hook_pattern := hook._hook_pattern) is not None: hook_offset = find_pattern_in_binary(hook_pattern, False, hook_binary) - elif hook._is_imported_func_hook: + elif hook._is_imported_func_hook and hook._dll_name: hook_binary = hook._dll_name.lower() if (dll_func_ptrs := _internal.imports.get(hook_binary)) is not None: - func_ptr = dll_func_ptrs.get(hook_func_name) - # For now, cast the func_ptr object back to the target location in memory. - # This is wasteful, but simple for now for testing... - hook_offset = ctypes.cast(func_ptr, ctypes.c_void_p).value - hook_offset_is_absolute = True + if func_ptr := dll_func_ptrs.get(hook_func_name): + # For now, cast the func_ptr object back to the target location in memory. + # This is wasteful, but simple for now for testing... + hook_offset = ctypes.cast(func_ptr, ctypes.c_void_p).value + hook_offset_is_absolute = True else: logger.error(f"Cannot find {hook_binary} in the import list") return @@ -839,11 +846,12 @@ def initialize_hooks(self) -> int: rsp_load_bytes = generate_load_stack_pointer_bytes(rsp_buff_addr, jmp_addr, BITS) # Get the original bytes written by minhook so that we can restore them. + len_rsp_load_bytes = len(rsp_load_bytes) orig_bytes = data_at_detour.raw[:0xE] - for i in range(len(rsp_load_bytes)): + for i in range(len_rsp_load_bytes): data_at_detour[i] = rsp_load_bytes[i] for j in range(len(orig_bytes)): - data_at_detour[i + j + 1] = orig_bytes[j] + data_at_detour[len_rsp_load_bytes + j] = orig_bytes[j] logger.info( f"The function {hook_func_id.name} has a modified hook to get the calling address." ) diff --git a/pymhf/core/importing.py b/pymhf/core/importing.py index ce733ba..30ca54d 100644 --- a/pymhf/core/importing.py +++ b/pymhf/core/importing.py @@ -7,6 +7,8 @@ from types import ModuleType from typing import Optional +from pymhf.gui.widget_data import ctx_group, ctx_group_counter + logger = logging.getLogger(__name__) @@ -75,6 +77,10 @@ def parse_file_for_mod(data: str) -> bool: def import_file(fpath: str) -> Optional[ModuleType]: try: + # Ensure the context variables relating to groups are reset before each import to ensure they are + # clean before this next import + ctx_group.set(None) + ctx_group_counter.set(0) module_name = _clean_name(op.splitext(op.basename(fpath))[0]) if op.isdir(fpath): # If a directory is passed in, then add __init__.py to it so that diff --git a/pymhf/core/mod_loader.py b/pymhf/core/mod_loader.py index ed40aff..7b06718 100644 --- a/pymhf/core/mod_loader.py +++ b/pymhf/core/mod_loader.py @@ -15,8 +15,8 @@ from abc import ABC from dataclasses import fields from functools import partial -from types import ModuleType -from typing import TYPE_CHECKING, Any, Optional, Type, TypeVar, Union, overload +from types import MethodType, ModuleType +from typing import TYPE_CHECKING, Any, ClassVar, Optional, Type, TypeVar, Union, cast, overload import keyboard from packaging.version import InvalidVersion @@ -29,7 +29,13 @@ from pymhf.core.importing import import_file from pymhf.core.memutils import get_addressof, map_struct from pymhf.core.utils import does_pid_have_focus, saferun -from pymhf.gui.protocols import ButtonProtocol, ComboBoxProtocol, VariableProtocol +from pymhf.gui.widget_data import ( + CustomWidgetData, + GroupWidgetData, + GUIElementProtocol, + VariableWidgetData, + WidgetData, +) if TYPE_CHECKING: from pymhf.gui.gui import GUI @@ -64,12 +70,16 @@ def _has_hotkey_predicate(value: Any) -> bool: return getattr(value, "_hotkey", False) +def _gui_widget_predicate(value) -> bool: + return getattr(value, "_widget_type", None) is not None + + def _gui_button_predicate(value) -> bool: - return getattr(value, "_is_button", False) and hasattr(value, "_button_text") + return getattr(value, "_is_button", False) def _gui_combobox_predicate(value) -> bool: - return getattr(value, "_is_combobox", False) and hasattr(value, "_combobox_text") + return getattr(value, "_is_combobox", False) def _gui_variable_predicate(value) -> bool: @@ -85,21 +95,21 @@ def _gui_variable_predicate(value) -> bool: class StructEncoder(json.JSONEncoder): - def default(self, obj): - if hasattr(obj, "__json__"): + def default(self, o: Any): + if hasattr(o, "__json__"): return { - "struct": obj.__class__.__qualname__, - "module": obj.__class__.__module__, - "fields": obj.__json__(), + "struct": o.__class__.__qualname__, + "module": o.__class__.__module__, + "fields": o.__json__(), } - return json.JSONEncoder.default(self, obj) + return json.JSONEncoder.default(self, o) class StructDecoder(json.JSONDecoder): def __init__(self): json.JSONDecoder.__init__(self, object_hook=self.object_hook) - def object_hook(self, obj: dict): + def object_hook(self, obj: dict): # type: ignore if (module := obj.get("module")) is not None: if module == "__main__": return globals()[obj["struct"]](**obj["fields"]) @@ -124,6 +134,7 @@ class ModState(ABC): """ _save_fields_: tuple[str] + __dataclass_fields__: ClassVar[dict[str, Any]] def save(self, name: str): """Save the current mod state to a file. @@ -185,8 +196,9 @@ class Mod(ABC): __pymhf_required_version__: Optional[str] = None _custom_callbacks: set[CustomTriggerProtocol] - pymhf_gui: "GUI" + _gui_widgets: list[Union[GUIElementProtocol[WidgetData], GroupWidgetData]] _disabled: bool = False + _no_gui: bool def __init__(self): self._abc_initialised = True @@ -194,21 +206,30 @@ def __init__(self): self.hooks: set[HookProtocol] = self.get_members(_funchook_predicate) self._custom_callbacks = self.get_members(_callback_predicate) self._hotkey_funcs: set[KeyPressProtocol] = self.get_members(_has_hotkey_predicate) - self._gui_buttons: dict[str, ButtonProtocol] = { - x[1].__qualname__: x[1] for x in inspect.getmembers(self, _gui_button_predicate) - } - self._gui_comboboxes: dict[str, ComboBoxProtocol] = { - x[1].__qualname__: x[1] for x in inspect.getmembers(self, _gui_combobox_predicate) - } - # TODO: If this isn't initialised and a call is made to it before it is we have an issue... - self.pymhf_gui = None - # For variables, unless there is a better way, store just the name so we - # can our own special binding of the name to the GUI. - self._gui_variables: dict[str, VariableProtocol] = {} - for x in inspect.getmembers(self.__class__, _gui_variable_predicate): - if x[1].fset is not None: - x[1].fget._has_setter = True - self._gui_variables[x[0]] = x[1].fget + + # Traverse the mod __dict__ and find all properties and bound methods which are registered as needing + # to be bound to a UI element. + self._gui_widgets = [] + group_data: dict[str, GroupWidgetData] = {} + + for obj in type(self).__dict__.values(): + if isinstance(obj, property): + if obj.fget and hasattr(obj.fget, "_widget_data"): + fget = cast(GUIElementProtocol, obj.fget) + if isinstance(fget._widget_data, CustomWidgetData): + func = cast(GUIElementProtocol[CustomWidgetData], MethodType(obj.fget, self)) + func._widget_data.is_property = True + func._widget_data.has_setter = obj.fset is not None + else: + func = cast(GUIElementProtocol[VariableWidgetData], MethodType(obj.fget, self)) + func._widget_data.has_setter = obj.fset is not None + self._handle_widget_data(func, group_data) + + elif hasattr(obj, "_widget_data"): + func = cast(GUIElementProtocol[WidgetData], MethodType(obj, self)) + self._handle_widget_data(func, group_data) + + self.pymhf_gui: Optional[GUI] = None @property def _mod_name(self): @@ -217,6 +238,35 @@ def _mod_name(self): def get_members(self, predicate): return {x[1] for x in inspect.getmembers(self, predicate)} + def _handle_widget_data( + self, + func: GUIElementProtocol[WidgetData], + group_data: dict[str, GroupWidgetData], + ): + # Read the widget data for the particular function and add it to the widget data for the mod. + wd = func._widget_data + if wd.group is not None: + if (group_id := wd.group.group_id) not in group_data: + # Create a new group and if it's a top level one, add it to the gui widgets. + group_data[group_id] = GroupWidgetData( + group_id, + wd.group.group_label, + [], + ) + if "." not in group_id: + self._gui_widgets.append(group_data[group_id]) + # Check to see if the parent is in the group data (it should be!) and add the new + # group as a child. + if "." in group_id: + if (parent_group_name := ".".join(group_id.split(".")[:-1])) in group_data: + group_data[parent_group_name].child_widgets.append(group_data[group_id]) + group_data[group_id].child_widgets.append(func) + else: + # Add to the exiting group + group_data[group_id].child_widgets.append(func) + else: + self._gui_widgets.append(func) + ModClass = TypeVar("ModClass", bound=Mod) @@ -234,6 +284,8 @@ def __getattr__(self, name): class ModManager: + hook_manager: HookManager + def __init__(self): # Internal mapping of mods. # TODO: Probably change datatype @@ -242,8 +294,8 @@ def __init__(self): self.mods: dict[str, Mod] = {} self._mod_hooks: dict[str, list] = {} self.mod_states: dict[str, list[tuple[str, ModState]]] = {} + # Mod path mapping is to enable dependency checking between mods. self._mod_paths: dict[str, ModuleType] = {} - self.hook_manager: HookManager = None # Keep a mapping of the hotkey callbacks self.hotkey_callbacks: dict[tuple[str, str], Any] = {} @@ -297,14 +349,15 @@ def _load_module(self, module: ModuleType) -> bool: f"__pymhf_required_version__ defined on mod {mod.__name__} is not a valid version string" ) mod_version = None - if mod_version is None or mod_version <= pymhf_version: - self._preloaded_mods[mod_name] = mod - else: - logger.error( - f"Mod {mod.__name__} requires a newer verison of " - f"pyMHF ({mod_version} ≥ {pymhf_version})! " - "Please update" - ) + if pymhf_version: + if mod_version is None or mod_version <= pymhf_version: + self._preloaded_mods[mod_name] = mod + else: + logger.error( + f"Mod {mod.__name__} requires a newer verison of " + f"pyMHF ({mod_version} ≥ {pymhf_version})! " + "Please update" + ) else: self._preloaded_mods[mod_name] = mod # Only get mod states if the mod name doesn't already have a cached @@ -329,11 +382,11 @@ def load_mod(self, fpath) -> Optional[ModuleType]: # TODO: Can probably move the duplicated functionality between this and the next method into a single # function. - def load_single_mod(self, fpath: str, bind: bool = True): + def load_single_mod(self, fpath: str, bind: bool = True) -> tuple[int, int]: """Load a single mod file. - Params - ------ + Parameters + ---------- folder The path of the folder to be loaded. All mod files within this directory will be loaded and installed. @@ -343,6 +396,11 @@ def load_single_mod(self, fpath: str, bind: bool = True): necessary. If this function is called with False, then it MUST be called again with True before the hooks are enabled. + + Returns + ------- + A tuple of 2 ints. The first value is the number of mods loaded, and the second is the number of hooks + loaded. """ self.load_mod(fpath) # Once all the mods in the folder have been loaded, then parse the mod @@ -362,8 +420,8 @@ def load_single_mod(self, fpath: str, bind: bool = True): def load_mod_folder(self, folder: str, bind: bool = True, deep_search: bool = False) -> tuple[int, int]: """Load the mod folder. - Params - ------ + Parameters + ---------- folder The path of the folder to be loaded. All mod files within this directory will be loaded and installed. @@ -375,6 +433,11 @@ def load_mod_folder(self, folder: str, bind: bool = True, deep_search: bool = Fa are enabled. deep_search Whether to search down into sub-folders. + + Returns + ------- + A tuple of 2 ints. The first value is the number of mods loaded, and the second is the number of hooks + loaded. """ for file in os.listdir(folder): fullpath = op.join(folder, file) @@ -506,7 +569,7 @@ def reload(self, name: str, gui: "GUI"): if ( _module := getattr(member_type.__class__, "__module__", None) ) is not None and isinstance(member_type, ctypes.Structure): - if _module == module.__spec__.name: + if module.__spec__ and _module == module.__spec__.name: # In this case, the instance of the attribute in the ModState was # defined in the module that is being reloaded. We need to # re-instantiate it so that we can get any potential changes to diff --git a/pymhf/extensions/ctypes.py b/pymhf/extensions/ctypes.py index 8a4ed08..5fcd5e8 100644 --- a/pymhf/extensions/ctypes.py +++ b/pymhf/extensions/ctypes.py @@ -5,10 +5,99 @@ from enum import IntEnum from typing import Generic, Type, TypeVar, Union +from typing_extensions import TypeAlias + _cenum_type_cache = {} IE = TypeVar("IE", bound=IntEnum) +# Bypass hack to allow ctypes basic types to be subclassed. +# c/o https://github.com/python/cpython/issues/73456#issuecomment-1093737626 +super_bypass: TypeAlias = super + + +class c_char_p64(ctypes.c_uint64): + """This is a thin wrapper around the uint64 type because python has issues having char* <-> c_char_p as + the function argument type and then accessing the value. + This class avoids the issue by casting the underlying integer value to a ``ctypes.c_char_p`` and getting + the value of this.""" + + @property + def _value(self) -> bytes: + if val := super_bypass(c_char_p64, self).value: # type: ignore + return ctypes.c_char_p(val).value or b"" + return b"" + + def __str__(self): + return self._value.decode() + + def __bytes__(self): + return self._value + + +class c_char_p32(ctypes.c_uint32): + """This is a thin wrapper around the uint32 type because python has issues having char* <-> c_char_p as + the function argument type and then accessing the value. + This class avoids the issue by casting the underlying integer value to a ``ctypes.c_char_p`` and getting + the value of this.""" + + @property + def _value(self) -> bytes: + if val := super_bypass(c_char_p32, self).value: # type: ignore + return ctypes.c_char_p(val).value or b"" + return b"" + + def __str__(self): + return self._value.decode() + + def __bytes__(self): + return self._value + + +class c_enum16(ctypes.c_int16, Generic[IE]): + """c_int16 wrapper for enums. This doesn't have the full set of features an enum would normally have, + but just enough to make it useful.""" + + _enum_type: Type[IE] + + @classmethod + def _members(cls): + return list(cls._enum_type.__members__.keys()) + + @property + def _enum_value(self) -> IE: + return self._enum_type(self.value) + + @property + def name(self) -> str: + return self._enum_value.name + + def __str__(self) -> str: + try: + return self._enum_value.__str__() + except ValueError: + # In this case the value is probably invalid. Return a string... + return f"INVALID ENUM VALID: {self.value}" + + def __repr__(self) -> str: + return self._enum_value.__repr__() + + def __eq__(self, other) -> bool: + return other == self.value + + def __class_getitem__(cls: Type["c_enum16"], enum_type: Type[IE]): + """Get the actual concrete type based on the enum_type provided. + This will be cached so we only generate one instance of the type per IntEnum.""" + if not issubclass(enum_type, IntEnum): + raise TypeError(f"Indexed type {enum_type!r} of type {enum_type} is not an IntEnum") + if enum_type in _cenum_type_cache: + return _cenum_type_cache[enum_type] + else: + _cls: Type[c_enum16[IE]] = types.new_class(f"c_enum16[{enum_type}]", (c_enum16,)) + _cls._enum_type = enum_type + _cenum_type_cache[enum_type] = _cls + return _cls + class c_enum32(ctypes.c_int32, Generic[IE]): """c_int32 wrapper for enums. This doesn't have the full set of features an enum would normally have, @@ -59,7 +148,7 @@ def __class_getitem__(cls: Type["c_enum32"], enum_type: Type[IE]): ctypes._SimpleCData, ctypes.Structure, ctypes._Pointer, - ctypes._Pointer_orig, # The original, un-monkeypatched ctypes._Pointer object + ctypes._Pointer_orig, # The original, un-monkeypatched ctypes._Pointer object # type: ignore ctypes.Array, ctypes.Union, c_enum32, diff --git a/pymhf/gui/decorators.py b/pymhf/gui/decorators.py index 8041bee..c5c41d4 100644 --- a/pymhf/gui/decorators.py +++ b/pymhf/gui/decorators.py @@ -1,43 +1,64 @@ -from typing import Any, Callable, Optional - -from pymhf.gui.protocols import ButtonProtocol, ComboBoxProtocol, VariableProtocol, VariableType - - -def gui_button(text: str): - def inner(func) -> ButtonProtocol: - func._is_button = True - func._button_text = text +from contextlib import contextmanager +from enum import Enum +from hashlib import md5 +from logging import getLogger +from typing import TYPE_CHECKING, Any, Callable, Optional, Type, Union, cast + +from pymhf.gui.widget_data import ( + ButtonWidgetData, + EnumVariableWidgetData, + GroupData, + GUIElementProtocol, + VariableType, + VariableWidgetData, + ctx_group, + ctx_group_counter, +) + +logger = getLogger(__name__) + +if TYPE_CHECKING: + from pymhf.core.mod_loader import Mod + + +@contextmanager +def gui_group(group_label: Optional[str] = None): + """Add all the gui elements defined within this context manager to the same group. + This can be nested to create sub-groups to arbitrary depth.""" + # Generate a group id based on the index of the group in the mod. + # This can change if the order of a group changes which will mean that if two groups change order they + # will be deleted and redrawn rather than simply moved, but this is an unlikely case to happen too often. + group_id = md5(str(ctx_group_counter.get()).encode()).hexdigest() + ctx_group_counter.set(ctx_group_counter.get() + 1) + if (curr_ctx_group := ctx_group.get()) is None: + meta = GroupData(group_id, group_label) + else: + meta = GroupData(curr_ctx_group.group_id + "." + group_id, group_label) + ctx_group.set(meta) + yield + ctx_group.set(curr_ctx_group) + + +def gui_button(label: str): + def inner(func: Callable[..., Any]) -> GUIElementProtocol[ButtonWidgetData]: + func = cast(GUIElementProtocol, func) + func._widget_data = ButtonWidgetData(func.__qualname__, label) return func return inner -def gui_combobox(text: str, items: Optional[list[str]] = None): - if items is None: - items = [] - - def inner(func) -> ComboBoxProtocol: - func._is_combobox = True - func._combobox_text = text - func._items = items - return func - - return inner +def gui_combobox(label: str, items: Union[list[str], None] = None): + logger.warning("@gui_combobox is no longer supported. Use @ENUM instead to bind to an enum or list.") -def no_gui(cls): +def no_gui(cls: "Mod"): """Mark the mod as not requiring a tab in the gui.""" - setattr(cls, "_no_gui", True) + cls._no_gui = True return cls class gui_variable: - @staticmethod - def _set_default_attributes(func: Callable[..., Any], label: Optional[str] = None): - func._is_variable = True - func._label_text = label - func._has_setter = False - @staticmethod def _clean_extra_args(args: dict): """Remove any keywords from the args so that they don't override the values we need to provide.""" @@ -48,73 +69,117 @@ def _clean_extra_args(args: dict): args.pop("use_internal_label", None) @classmethod - def INTEGER(cls, label: Optional[str] = None, **extra_args): + def ENUM(cls, label: str, enum: Type[Enum], **extra_args): + """Create an enum entry field which can take extra arguments. + To see what extra arguments are available, see the DearPyGUI documentation + `here `__. + + Note: This decorator MUST be applied closer to the decorated function than the ``@property`` decorator + """ + + def inner(func: Callable[..., Any]) -> GUIElementProtocol[EnumVariableWidgetData]: + func = cast(GUIElementProtocol, func) + gui_variable._clean_extra_args(extra_args) + func._widget_data = EnumVariableWidgetData(func.__qualname__, label, enum, extra_args) + return func + + return inner + + @classmethod + def INTEGER(cls, label: str, is_slider: bool = False, **extra_args): """Create an integer entry field which can take extra arguments. - To see what extra arguments are available, see the DearPyGUI documentation: - https://dearpygui.readthedocs.io/en/latest/reference/dearpygui.html#dearpygui.dearpygui.add_input_int + To see what extra arguments are available, see the DearPyGUI documentation + `here `__. + If ``is_slider`` is ``True``, a slider will be used to render the widget instead. + The allowed extra argument for this case can be found + `here `__. Note: This decorator MUST be applied closer to the decorated function than the ``@property`` decorator """ - def inner(func: Callable[..., Any]) -> VariableProtocol: - gui_variable._set_default_attributes(func, label) - func._variable_type = VariableType.INTEGER + def inner(func: Callable[..., Any]) -> GUIElementProtocol[VariableWidgetData]: + func = cast(GUIElementProtocol, func) gui_variable._clean_extra_args(extra_args) - func._extra_args = extra_args + func._widget_data = VariableWidgetData( + func.__qualname__, + label, + VariableType.INTEGER, + is_slider, + extra_args, + ) return func return inner @classmethod - def STRING(cls, label: Optional[str] = None, **extra_args): - """Create an string entry field which can take extra arguments. - To see what extra arguments are available, see the DearPyGUI documentation: - https://dearpygui.readthedocs.io/en/latest/reference/dearpygui.html#dearpygui.dearpygui.add_input_text + def STRING(cls, label: str, **extra_args): + """Create a string entry field which can take extra arguments. + To see what extra arguments are available, see the DearPyGUI documentation + `here `__. Note: This decorator MUST be applied closer to the decorated function than the ``@property`` decorator """ - def inner(func: Callable[..., Any]) -> VariableProtocol: - gui_variable._set_default_attributes(func, label) - func._variable_type = VariableType.STRING + def inner(func: Callable[..., Any]) -> GUIElementProtocol[VariableWidgetData]: + func = cast(GUIElementProtocol, func) gui_variable._clean_extra_args(extra_args) - func._extra_args = extra_args + func._widget_data = VariableWidgetData( + func.__qualname__, + label, + VariableType.STRING, + False, + extra_args, + ) return func return inner @classmethod - def FLOAT(cls, label: Optional[str] = None, **extra_args): - """Create an float entry field which can take extra arguments. - To see what extra arguments are available, see the DearPyGUI documentation: - https://dearpygui.readthedocs.io/en/latest/reference/dearpygui.html#dearpygui.dearpygui.add_input_double + def FLOAT(cls, label: str, is_slider: bool = False, **extra_args): + """Create a float entry field which can take extra arguments. + Internally this uses double precision when interfacing with DearPyGUI to minimise loss of accuracy. + To see what extra arguments are available, see the DearPyGUI documentation + `here `__. + If ``is_slider`` is ``True``, a slider will be used to render the widget instead. + The allowed extra argument for this case can be found + `here `__. Note: This decorator MUST be applied closer to the decorated function than the ``@property`` decorator """ - def inner(func: Callable[..., Any]) -> VariableProtocol: - gui_variable._set_default_attributes(func, label) - func._variable_type = VariableType.FLOAT + def inner(func: Callable[..., Any]) -> GUIElementProtocol[VariableWidgetData]: + func = cast(GUIElementProtocol, func) gui_variable._clean_extra_args(extra_args) - func._extra_args = extra_args + func._widget_data = VariableWidgetData( + func.__qualname__, + label, + VariableType.FLOAT, + is_slider, + extra_args, + ) return func return inner @classmethod - def BOOLEAN(cls, label: Optional[str] = None, **extra_args): - """Create an boolean entry field in the form of a checkbox which can take extra arguments. - To see what extra arguments are available, see the DearPyGUI documentation: - https://dearpygui.readthedocs.io/en/latest/reference/dearpygui.html#dearpygui.dearpygui.add_checkbox + def BOOLEAN(cls, label: str, **extra_args): + """Create a boolean entry field in the form of a checkbox which can take extra arguments. + To see what extra arguments are available, see the DearPyGUI documentation + `here `__. Note: This decorator MUST be applied closer to the decorated function than the ``@property`` decorator """ - def inner(func: Callable[..., Any]) -> VariableProtocol: - gui_variable._set_default_attributes(func, label) - func._variable_type = VariableType.BOOLEAN + def inner(func: Callable[..., Any]) -> GUIElementProtocol[VariableWidgetData]: + func = cast(GUIElementProtocol, func) gui_variable._clean_extra_args(extra_args) - func._extra_args = extra_args + func._widget_data = VariableWidgetData( + func.__qualname__, + label, + VariableType.BOOLEAN, + False, + extra_args, + ) return func return inner @@ -124,3 +189,4 @@ def inner(func: Callable[..., Any]) -> VariableProtocol: BOOLEAN = gui_variable.BOOLEAN STRING = gui_variable.STRING FLOAT = gui_variable.FLOAT +ENUM = gui_variable.ENUM diff --git a/pymhf/gui/fonts/JetBrainsMono[wght].ttf b/pymhf/gui/fonts/JetBrainsMono[wght].ttf new file mode 100644 index 0000000000000000000000000000000000000000..b60e77f5dbf5505436c1904cb7a9ac4111ee76d0 GIT binary patch literal 303144 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

p_r)^;F^SB&oAwAUvat>AaH*WM-R9KsutQD*d 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%0D_|qoNNhGUnvG#&**I3n#=L$~UCJ(F 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 Z%h#_b*~^!E-WSq^XhsVQb2wuQ{{qd0QA+>- literal 0 HcmV?d00001 diff --git a/pymhf/gui/fonts/OFL.txt b/pymhf/gui/fonts/OFL.txt new file mode 100644 index 0000000..8bee414 --- /dev/null +++ b/pymhf/gui/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/pymhf/gui/gui.py b/pymhf/gui/gui.py index 249f481..6be86f8 100644 --- a/pymhf/gui/gui.py +++ b/pymhf/gui/gui.py @@ -1,8 +1,11 @@ +import ctypes import logging +import os.path as op +from collections import defaultdict +from dataclasses import dataclass from enum import Enum -from typing import Optional, TypedDict, Union +from typing import Optional, TypedDict, Union, cast -# import win32con import dearpygui.dearpygui as dpg import win32gui @@ -11,7 +14,16 @@ from pymhf.core._types import pymhfConfig from pymhf.core.mod_loader import Mod, ModManager from pymhf.gui.hexview import HexView -from pymhf.gui.protocols import ButtonProtocol, ComboBoxProtocol, VariableProtocol, VariableType +from pymhf.gui.widget_data import ( + ButtonWidgetData, + CustomWidgetData, + GroupWidgetData, + GUIElementProtocol, + VariableType, + VariableWidgetData, + WidgetData, +) +from pymhf.gui.widgets import CustomWidget, Group, Variable, Widget from pymhf.utils.winapi import set_window_transparency SETTINGS_NAME = "_pymhf_gui_settings" @@ -19,6 +31,8 @@ DETAILS_NAME = "_pymhf_gui_details" WINDOW_TITLE = "pyMHF" +FONT_DIR = op.join(op.dirname(__file__), "fonts") + # TODO: # - add keyboard shortcut to show or hide the GUI # - Add support for mod states @@ -28,23 +42,34 @@ rootLogger = logging.getLogger("") -class WidgetType(Enum): - BUTTON = 0 - VARIABLE = 1 - TEXT = 2 - COMBOBOX = 3 +@dataclass +class VariableData: + mod: Mod + variable_name: str + variable_type: VariableType + has_setter: bool class Widgets(TypedDict): - buttons: dict[str, Union[int, str]] - comboboxes: dict[str, list[tuple[Union[int, str], WidgetType]]] - variables: dict[str, list[tuple[Union[int, str], WidgetType]]] + buttons: dict[str, GUIElementProtocol[ButtonWidgetData]] + variables: dict[str, GUIElementProtocol[VariableWidgetData]] + + +class WidgetDiff(TypedDict): + type: str def toggle_on_top(item: int, value: bool): dpg.set_viewport_always_top(value) +def get_id(widget: Union[GUIElementProtocol[WidgetData], GroupWidgetData]) -> str: + if isinstance(widget, GroupWidgetData): + return widget.id_ + else: + return widget._widget_data.id_ + + class GUI: hex_view: HexView @@ -56,21 +81,40 @@ def __init__(self, mod_manager: ModManager, config: pymhfConfig): dpg.create_context() dpg.create_viewport( title=WINDOW_TITLE, - width=int(600 * self.scale), + width=int(800 * self.scale), height=int(800 * self.scale), decorated=True, always_on_top=self.always_on_top, ) dpg.setup_dearpygui() - dpg.set_global_font_scale(self.scale) - self.tracking_variables: dict[str, list[tuple[str, Mod, str, bool]]] = {} - self.tabs: dict[int, str] = {} + + with dpg.font_registry(): + self.default_font = dpg.add_font(op.join(FONT_DIR, "JetBrainsMono[wght].ttf"), 32) + + self.tracking_variables: dict[str, dict[str, VariableData]] = defaultdict(lambda: {}) + self.redrawing_widgets: dict[str, dict[str, CustomWidget]] = defaultdict(lambda: {}) + self.broken_widgets: dict[str, list[VariableData]] = {} + self.tabs: dict[Union[int, str], str] = {} self._shown = True self._handle = None - self._current_tab: Optional[str] = None + self._current_tab = "" self.mod_manager = mod_manager - self.widgets: dict[str, Widgets] = {} + self.widget_data: dict[str, list[Union[GUIElementProtocol[WidgetData], GroupWidgetData]]] = {} + self.widget_mapping: dict[str, dict[str, Widget]] = {} + + self.collapsing_header_theme = dpg.add_theme() + collapsing_header_theme_component = dpg.add_theme_component( + dpg.mvCollapsingHeader, parent=self.collapsing_header_theme + ) + dpg.add_theme_color( + dpg.mvThemeCol_WindowBg, [100, 50, 150, 255], parent=collapsing_header_theme_component + ) + # dpg.add_theme_color( + # dpg.mvThemeCol_ChildBg, + # [150, 150, 150, 255], + # parent=collapsing_header_theme_component + # ) # Keep track of the viewport dimensions and position. # NOTE: These are ONLY updated when the viewport is minimised by the `hide_window` method. @@ -108,21 +152,25 @@ def hide_window(self): # self._shown = False def toggle_debug_mode(self, _sender, is_debug): - try: + if "logging" in self.config: self.config["logging"]["log_level"] = is_debug and "debug" or "info" - except KeyError: - pass + else: + self.config["logging"] = {"log_level": is_debug and "debug" or "info"} + if is_debug: rootLogger.setLevel(logging.DEBUG) else: rootLogger.setLevel(logging.INFO) def toggle_show_gui(self, _sender, show_gui): - self.config["gui"]["shown"] = show_gui + if "gui" in self.config: + self.config["gui"]["shown"] = show_gui + else: + self.config["gui"] = {"shown": show_gui} def add_hex_tab(self): - tab = dpg.add_tab(label="Hex View", tag=HEX_NAME, parent="tabbar") - tab_alias = dpg.get_alias_id(tab) + dpg.add_tab(label="Hex View", tag=HEX_NAME, parent="tabbar") + tab_alias = dpg.get_alias_id(HEX_NAME) self.tabs[tab_alias] = HEX_NAME self.hex_view = HexView(HEX_NAME) @@ -134,11 +182,16 @@ def add_settings_tab(self): dpg.add_bool_value(tag="always_on_top", default_value=self.always_on_top) dpg.add_bool_value(tag="is_debug", default_value=self.is_debug) dpg.add_bool_value(tag="show_gui", default_value=True) - tab = dpg.add_tab(label="Settings", tag=SETTINGS_NAME, parent="tabbar") - tab_alias = dpg.get_alias_id(tab) + dpg.add_tab(label="Settings", tag=SETTINGS_NAME, parent="tabbar") + tab_alias = dpg.get_alias_id(SETTINGS_NAME) self.tabs[tab_alias] = SETTINGS_NAME - with dpg.table(header_row=False, parent=SETTINGS_NAME, policy=dpg.mvTable_SizingStretchProp): + with dpg.table( + header_row=False, + parent=SETTINGS_NAME, + no_pad_innerX=True, + width=-1, + ): dpg.add_table_column() dpg.add_table_column() @@ -164,8 +217,9 @@ def add_settings_tab(self): dpg.add_slider_float( default_value=1, max_value=1, - min_value=0, + min_value=0.25, callback=self.alpha_callback, + width=-1, ) # Add a checkbox to toggle whether the window should stay always on top. @@ -180,8 +234,8 @@ def _toggle_show_pyd(self, item: int, value: bool): self._hide_pyd_modules = value def add_details_tab(self): - tab = dpg.add_tab(label="Details", tag=DETAILS_NAME, parent="tabbar") - tab_alias = dpg.get_alias_id(tab) + dpg.add_tab(label="Details", tag=DETAILS_NAME, parent="tabbar") + tab_alias = dpg.get_alias_id(DETAILS_NAME) self.tabs[tab_alias] = DETAILS_NAME imports = _internal.imports @@ -205,148 +259,223 @@ def add_details_tab(self): for func_name in names: dpg.add_tree_node(label=func_name, parent=module_tree, leaf=True, bullet=True) - def reload_tab(self, cls: Mod): + def reload_tab(self, mod: Mod): """Reload the tab for the specific mod.""" - name = cls.__class__.__name__ - cls.pymhf_gui = self - widgets = self.widgets.get(name, {}) - - self.reload_buttons(cls, widgets) - self.reload_comboboxes(cls, widgets) - self.reload_variables(cls, widgets) - - def reload_buttons(self, cls: Mod, widgets: Widgets): - """Reload all the buttons. Any new buttons will be added, any old ones will be removed, and any that - remain will be reconfigured to point to the new bound method with any modified parameters (such as - button label.) - """ - button_widgets = widgets["buttons"] - - existing_button_names = set([b for b in button_widgets.keys()]) - mod_button_names = set([b for b in cls._gui_buttons.keys()]) - - new_buttons = mod_button_names - existing_button_names - for button_name in new_buttons: - self.add_button(cls._gui_buttons[button_name]) - - remaining_buttons = existing_button_names & mod_button_names - for button_name in remaining_buttons: - _button = cls._gui_buttons[button_name] - dpg.configure_item( - button_widgets[button_name], - label=_button._button_text, - callback=_button, - ) - - removed_buttons = existing_button_names - mod_button_names - for button_name in removed_buttons: - dpg.delete_item(button_widgets[button_name]) - button_widgets.pop(button_name) - - def reload_comboboxes(self, cls: Mod, widgets: Widgets): - """Reload all the comboboxes. Any new combos will be added, any old ones will be removed, and any that - remain will be reconfigured to point to the new bound method with any modified parameters (such as - combo label and items). - """ - combo_widgets = widgets["comboboxes"] - - existing_combo_names = set([c for c in combo_widgets.keys()]) - mod_combo_names = set([c for c in cls._gui_comboboxes.keys()]) - - new_combos = mod_combo_names - existing_combo_names - for combo_name in new_combos: - self.add_combobox(cls._gui_comboboxes[combo_name]) - - remaining_combos = existing_combo_names & mod_combo_names - for combo_name in remaining_combos: - _combo = cls._gui_comboboxes[combo_name] - # Combo boxes have their text prepended. - for var_id, var_type in combo_widgets[combo_name]: - if var_type == WidgetType.TEXT: - dpg.set_value(var_id, _combo._combobox_text) + mod_name = mod._mod_name + mod.pymhf_gui = self + widgets = self.widget_data.pop(mod_name, []) + + changes, deletions = self.diff_widgets(widgets, mod._gui_widgets) + + # Handle the deletes first. + for line in deletions: + self.handle_diff_row(mod, line) + + # Then any changes. + for line in changes: + self.handle_diff_row(mod, line) + + self.widget_data[mod_name] = mod._gui_widgets + + def diff_widgets( + self, + old_widgets: list[Union[GUIElementProtocol[WidgetData], GroupWidgetData]], + new_widgets: list[Union[GUIElementProtocol[WidgetData], GroupWidgetData]], + parent: Optional[str] = None, + ) -> tuple[list[dict], list[dict]]: + # Calculate the diff between the old widgets and the new widgets + changes = [] + deletions = [] + old_widget_map = {get_id(x): x for x in old_widgets} + removed_widgets = set(old_widget_map.keys()) - set(get_id(x) for x in new_widgets) + + # Loop over the new widgets and compare to the old ones. + prev_existing_widget = None + for widget in new_widgets: + widget_id = get_id(widget) + # Check to see if the previous result is a new widget and inject our own id so it knows what it is + # before. + if changes and "surrounding_widgets" in changes[-1]: + changes[-1]["surrounding_widgets"]["before"] = widget_id + # If there is an existing old widget we're going to just change its configuration. + if (old_widget := old_widget_map.get(widget_id)) is not None: + # For group widgets we need to get a sub diff (recursively) + if isinstance(widget, GroupWidgetData): + old_widget = cast(GroupWidgetData, old_widget) + sub_changes, sub_deletions = self.diff_widgets( + old_widget.child_widgets, + widget.child_widgets, + old_widget.id_, + ) + changes.append( + { + "type": "change", + "old": old_widget.id_, + "new": widget, + "children": {"changes": sub_changes, "deletions": sub_deletions}, + } + ) + # Otherwise we just write the plain change. + elif isinstance(widget._widget_data, CustomWidgetData): + # TODO: Potentially make this smarter to use the reload method if there is one. + # For now, we will remove the widget and then redraw it. + deletions.append({"type": "remove", "old": widget_id}) + changes.append( + { + "type": "add", + "new": widget, + "surrounding_widgets": { + "after": prev_existing_widget, + "before": None, + "parent": parent, + }, + } + ) else: - dpg.configure_item(var_id, items=_combo._items, callback=_combo) - - removed_combos = existing_combo_names - mod_combo_names - for combo_name in removed_combos: - for var_id, _ in combo_widgets[combo_name]: - dpg.delete_item(var_id) - combo_widgets.pop(combo_name) - - def reload_variables(self, cls: Mod, widgets: Widgets): - """Reload all variables associated with a mod. - Note that this will not work for changing an existing variables' type. - To do this, remove (comment out) the property, reload the mod, and then uncomment, change the type and - reload again to have it add it back. - """ - variable_widgets = widgets["variables"] - - existing_variable_names = set([v for v in variable_widgets.keys()]) - mod_variable_names = set([v for v in cls._gui_variables.keys()]) - - new_variables = mod_variable_names - existing_variable_names - for variable_name in new_variables: - self.add_variable(cls, variable_name, cls._gui_variables[variable_name]) - - remaining_variables = existing_variable_names & mod_variable_names - for variable_name in remaining_variables: - # Loop over the text and variable ids so we may update them. - for var_id, var_type in variable_widgets[variable_name]: - if var_type == WidgetType.TEXT: - dpg.set_value(var_id, cls._gui_variables[variable_name]._label_text) + # Other types we generally just pass the old and new data and let the handler handle it. + # The one exception is for variables when their type changes. + # We could handle this at least partially, but it's much simpler to just delete and add + # the variable again as a different type. + # We also do the same if the WidgetData type changes too since there are too many ways + # this could break... + if isinstance(old_widget, GroupWidgetData): + logger.warning( + "A widget was somehow changed from a group to an actual widget. This will be " + "ignored." + ) + continue + delete_redraw = False + if type(old_widget._widget_data) is not type(widget._widget_data): + delete_redraw = True + elif ( + isinstance(old_widget._widget_data, VariableWidgetData) + and isinstance(widget._widget_data, VariableWidgetData) + ) and (old_widget._widget_data.variable_type != widget._widget_data.variable_type): + delete_redraw = True + + if delete_redraw: + deletions.append({"type": "remove", "old": widget_id}) + changes.append( + { + "type": "add", + "new": widget, + "surrounding_widgets": { + "after": prev_existing_widget, + "before": None, + "parent": parent, + }, + } + ) + else: + changes.append({"type": "change", "old": get_id(old_widget), "new": widget}) + prev_existing_widget = widget_id + # If the widget doesn't exist in the old set then we add it as a new widget. + else: + changes.append( + { + "type": "add", + "new": widget, + "surrounding_widgets": { + "after": prev_existing_widget, + "before": None, + "parent": parent, + }, + } + ) + prev_existing_widget = widget_id + # Finally, delete all the old widgets which don't exist any more. + for widget_id in removed_widgets: + deletions.append({"type": "remove", "old": widget_id}) + + return changes, deletions + + def handle_diff_row(self, mod: Mod, line: dict): + mod_name = mod._mod_name + widget_mapping = self.widget_mapping[mod_name] + if line["type"] == "remove": + if (widget := widget_mapping.get(line["old"])) is not None: + widget.remove() + # Try remove the widget from any tracking or redrawing data. + self.tracking_variables[mod_name].pop(widget.id_, None) + self.redrawing_widgets[mod_name].pop(widget.id_, None) + elif line["type"] == "change": + if (widget := widget_mapping.get(line["old"])) is not None: + if "children" in line: + cast(Group, widget).reload(mod, line["new"], line["children"], self) else: - dpg.configure_item(var_id, user_data=(cls, variable_name)) - - removed_variables = existing_variable_names - mod_variable_names - for variable_name in removed_variables: - # Remove the variable itself which dpg uses to store the value, as well as all widgets (text and - # inputs) associated with it. - name = cls.__class__.__name__ - tag = f"{name}.{variable_name}" - dpg.delete_item(tag) - for var_id, _ in variable_widgets[variable_name]: - dpg.delete_item(var_id) - variable_widgets.pop(variable_name) - - def add_tab(self, cls: Mod): + widget.reload(mod, line["new"]) + # Update the mod instance pointed to by the tracking variables. + if widget.id_ in self.tracking_variables[mod_name]: + widget_data = cast(VariableWidgetData, line["new"]._widget_data) + tracking_data = self.tracking_variables[mod_name][widget.id_] + tracking_data.mod = mod + tracking_data.has_setter = widget_data.has_setter + tracking_data.variable_name = cast(Variable, widget).variable_name + tracking_data.variable_type = widget_data.variable_type + + elif line["type"] == "add": + widget = Widget.create(line["new"], widget_mapping) + widget._draw(widget_mapping, surrounding_widgets=line["surrounding_widgets"]) + # Add the new widget to the tracking or redrawing data if required. + if isinstance(widget, Variable) or isinstance(widget, CustomWidget): + self.tracking_variables[mod_name][widget.id_] = VariableData( + mod, + widget.variable_name, + widget.variable_type, + widget.has_setter, + ) + if isinstance(widget, CustomWidget): + self.redrawing_widgets[mod_name][widget.id_] = widget + + def add_tab(self, mod: Mod): """Add the mod as a new tab in the GUI.""" # Check to see if the `no_gui` decorator has been applied to the class. # If so, don't add it now. - if getattr(cls, "_no_gui", False) is True: + if getattr(mod, "_no_gui", False) is True: return - name = cls.__class__.__name__ - cls.pymhf_gui = self + mod_name = mod._mod_name + mod.pymhf_gui = self - tab = dpg.add_tab(label=name, tag=name, parent="tabbar") - tab_alias = dpg.get_alias_id(tab) - dpg.set_item_user_data(name, cls) - self.tabs[tab_alias] = name - self.widgets[name] = { - "buttons": {}, - "variables": {}, - "comboboxes": {}, - } + dpg.add_tab(label=mod_name, tag=mod_name, parent="tabbar") + tab_alias = dpg.get_alias_id(mod_name) + dpg.set_item_user_data(mod_name, mod) + self.tabs[tab_alias] = mod_name + self.widget_mapping[mod_name] = {} dpg.add_button( label="Reload Mod", callback=self.mod_manager._gui_reload, - user_data=(cls._mod_name, self), - parent=name, + user_data=(mod._mod_name, self), + parent=mod_name, ) - dpg.add_separator(parent=name) - - for _button in cls._gui_buttons.values(): - self.add_button(_button) - - for _combobox in cls._gui_comboboxes.values(): - self.add_combobox(_combobox) - - for variable_name, getter in cls._gui_variables.items(): - self.add_variable(cls, variable_name, getter) + dpg.add_separator(parent=mod_name) + + # Push the mod name to the container stack so that we can draw everthing under it. + dpg.push_container_stack(mod_name) + + # Go over all the widget data and create the actual widget instances for the gui. + self.widget_data[mod_name] = mod._gui_widgets + widget_mapping = self.widget_mapping[mod_name] + for func in mod._gui_widgets: + widget = Widget.create(func, widget_mapping) + widget._draw(widget_mapping) + dpg.pop_container_stack() + + # Parse the widgets and extract any tracking info out. + for widget_id, widget in self.widget_mapping[mod_name].items(): + if isinstance(widget, Variable) or isinstance(widget, CustomWidget): + self.tracking_variables[mod_name][widget_id] = VariableData( + mod, + widget.variable_name, + widget.variable_type, + widget.has_setter, + ) + if isinstance(widget, CustomWidget): + self.redrawing_widgets[mod_name][widget_id] = widget - def change_tab(self, sender: str, app_data: int): + def change_tab(self, _: str, app_data: int): self._current_tab = self.tabs[app_data] def add_window(self): @@ -359,132 +488,56 @@ def add_window(self): ): dpg.add_tab_bar(tag="tabbar", callback=self.change_tab) - def add_button(self, callback: ButtonProtocol): - name = callback.__self__.__class__.__name__ - meth_name = callback.__qualname__ - button = dpg.add_button(label=callback._button_text, callback=callback, parent=name) - self.widgets[name]["buttons"][meth_name] = button - - def add_combobox(self, callback: ComboBoxProtocol): - name = callback.__self__.__class__.__name__ - meth_name = callback.__qualname__ - - with dpg.group(horizontal=True, parent=name): - txt_id = dpg.add_text(callback._combobox_text) - combobox = dpg.add_combo( - items=callback._items, - callback=callback, - ) - self.widgets[name]["comboboxes"][meth_name] = [(txt_id, WidgetType.TEXT)] - self.widgets[name]["comboboxes"][meth_name].append((combobox, WidgetType.COMBOBOX)) - - def add_variable_gui_elements(self, cls: Mod, variable: str, getter: VariableProtocol): - name = cls.__class__.__name__ - tag = f"{name}.{variable}" - - def on_update(_, app_data, user_data): - setattr(user_data[0], user_data[1], app_data) - - with dpg.group(horizontal=True, parent=name): - input_id = None - txt_id = dpg.add_text(getter._label_text) - self.widgets[name]["variables"][variable] = [(txt_id, WidgetType.TEXT)] - if getter._has_setter: - if getter._variable_type == VariableType.INTEGER: - extra_args = {"on_enter": False} - extra_args.update(getter._extra_args) - input_id = dpg.add_input_int( - source=tag, - callback=on_update, - user_data=(cls, variable), - **extra_args, - ) - elif getter._variable_type == VariableType.STRING: - extra_args = {"on_enter": False} - extra_args.update(getter._extra_args) - input_id = dpg.add_input_text( - source=tag, - callback=on_update, - user_data=(cls, variable), - **extra_args, - ) - elif getter._variable_type == VariableType.FLOAT: - extra_args = {"on_enter": False} - extra_args.update(getter._extra_args) - input_id = dpg.add_input_double( - source=tag, - callback=on_update, - user_data=(cls, variable), - **extra_args, - ) - elif getter._variable_type == VariableType.BOOLEAN: - extra_args = {} - extra_args.update(getter._extra_args) - input_id = dpg.add_checkbox( - source=tag, - callback=on_update, - user_data=(cls, variable), - **extra_args, - ) - if input_id is not None: - self.widgets[name]["variables"][variable].append((input_id, WidgetType.VARIABLE)) - else: - txt_id = dpg.add_text(source=tag) - self.widgets[name]["variables"][variable].append((txt_id, WidgetType.TEXT)) - - def add_variable(self, cls: Mod, variable: str, getter: VariableProtocol): - name = cls.__class__.__name__ - tag = f"{name}.{variable}" - value = getattr(cls, variable) - with dpg.value_registry(): - # If there is no setter, the value type has to be a string - if not getter._has_setter: - dpg.add_string_value(tag=tag, default_value=str(value)) - else: - if getter._variable_type == VariableType.INTEGER: - dpg.add_int_value(tag=tag, default_value=value) - elif getter._variable_type == VariableType.STRING: - dpg.add_string_value(tag=tag, default_value=value) - elif getter._variable_type == VariableType.FLOAT: - dpg.add_double_value(tag=tag, default_value=value) - elif getter._variable_type == VariableType.BOOLEAN: - dpg.add_bool_value(tag=tag, default_value=value) - self.add_variable_gui_elements(cls, variable, getter) - if name not in self.tracking_variables: - self.tracking_variables[name] = [] - self.tracking_variables[name].append( - ( - tag, - cls, - variable, - getter._variable_type == VariableType.STRING or not getter._has_setter, - ) - ) - - def remove_tab(self, cls: Mod): + def remove_tab(self, mod: Mod): """Remove the tab associated with the provided class.""" - name = cls.__class__.__name__ + name = mod.__class__.__name__ self.tabs.pop(dpg.get_alias_id(name)) dpg.delete_item(name) def run(self): try: + ctypes.windll.shcore.SetProcessDpiAwareness(2) + dpg.bind_font(self.default_font) dpg.show_viewport() dpg.set_primary_window(WINDOW_TITLE, True) self.hwnd = win32gui.FindWindow(None, WINDOW_TITLE) - self._current_tab = list(self.tabs.values())[0] + if self.tabs: + self._current_tab = list(self.tabs.values())[0] while dpg.is_dearpygui_running(): # For each tracking variable, update the value. - for vars in self.tracking_variables.get(self._current_tab, []): + for tag, vars in self.tracking_variables.get(self._current_tab, {}).items(): + if vars in self.broken_widgets.get(self._current_tab, []): + continue try: - tag, cls, var, is_str = vars - if is_str: - dpg.set_value(tag, str(getattr(cls, var))) + # Handle custom widgets first since they may also satisfy the other conditions. + if vars.variable_type == VariableType.CUSTOM: + # Call redraw on the widget. + values = getattr(vars.mod, vars.variable_name) + widget = self.redrawing_widgets[self._current_tab][tag] + res = widget.redraw(**values) + # If we get a return value from redraw and the property has a setter, pass the + # value through to complete the cycle. + if vars.has_setter and res: + setattr(vars.mod, vars.variable_name, res) + # Enum with setter. + elif vars.variable_type == VariableType.ENUM and vars.has_setter: + val = cast(Enum, getattr(vars.mod, vars.variable_name)) + dpg.set_value(tag, val.name) + # Read-only variable. + elif vars.variable_type == VariableType.STRING or not vars.has_setter: + dpg.set_value(tag, repr(getattr(vars.mod, vars.variable_name))) + # "Normal" variable. else: - dpg.set_value(tag, getattr(cls, var)) + dpg.set_value(tag, getattr(vars.mod, vars.variable_name)) except Exception: # If we can't set the value, don't crash the whole program. - pass + logger.exception( + f"There was an exception handling the variable {vars.variable_name}. It will be " + "removed from the pool of variables which get updated." + ) + if self._current_tab not in self.broken_widgets: + self.broken_widgets[self._current_tab] = [] + self.broken_widgets[self._current_tab].append(vars) dpg.render_dearpygui_frame() dpg.destroy_context() except Exception: diff --git a/pymhf/gui/protocols.py b/pymhf/gui/protocols.py deleted file mode 100644 index 4327d12..0000000 --- a/pymhf/gui/protocols.py +++ /dev/null @@ -1,34 +0,0 @@ -from enum import Enum -from typing import Any, Protocol - - -class VariableType(Enum): - INTEGER = 0 - FLOAT = 1 - STRING = 2 - BOOLEAN = 3 - - -class ButtonProtocol(Protocol): - _is_button: bool - _button_text: str - - def __call__(self, *args: Any, **kwargs: Any) -> Any: ... - - -class ComboBoxProtocol(Protocol): - _is_combobox: bool - _combobox_text: str - _items: list[str] - - def __call__(self, *args: Any, **kwargs: Any) -> Any: ... - - -class VariableProtocol(Protocol): - _is_variable: bool - _variable_type: VariableType - _label_text: str - _has_setter: bool - _extra_args: dict - - def __call__(self, *args: Any, **kwargs: Any) -> Any: ... diff --git a/pymhf/gui/widget_data.py b/pymhf/gui/widget_data.py new file mode 100644 index 0000000..e063c47 --- /dev/null +++ b/pymhf/gui/widget_data.py @@ -0,0 +1,162 @@ +from contextvars import ContextVar +from enum import Enum +from typing import TYPE_CHECKING, Any, Generic, NamedTuple, Optional, Protocol, Type, TypeVar, Union + +if TYPE_CHECKING: + from pymhf.gui.widgets import Widget + + +class GroupData(NamedTuple): + # group_id is auto-generated + group_id: str + group_label: Optional[str] + + @property + def indentation(self) -> int: + return len(self.group_id.split(".")) + + +ctx_group = ContextVar[Optional[GroupData]]("group", default=None) +ctx_group.set(None) +ctx_group_counter = ContextVar[int]("group_counter", default=0) +ctx_group_counter.set(0) + + +class WidgetType(Enum): + NONE = -1 + BUTTON = 0 + VARIABLE = 1 + TEXT = 2 + CUSTOM = 3 + + +class VariableType(Enum): + NONE = -1 + INTEGER = 0 + FLOAT = 1 + STRING = 2 + BOOLEAN = 3 + ENUM = 4 + CUSTOM = 5 + + +# Widget data - This is the info that we provide from the decorator and bind to our decorated function. + + +class WidgetData: + def __init__(self, id_: str, label: str): + self.id_ = id_ + self.label = label + self.group = ctx_group.get() + self.widget_type = WidgetType.NONE + + def asdict(self): + return {"label": self.label} + + +class CustomWidgetData(WidgetData): + def __init__( + self, + id_: str, + label: str, + widget_cls: "Widget", + ): + super().__init__(id_, label) + self.widget_type = WidgetType.CUSTOM + self.widget_cls = widget_cls + self.is_property = False + self.has_setter = False + + def asdict(self): + return super().asdict() + + +class GroupWidgetData(WidgetData): + def __init__( + self, + id_: str, + label: Optional[str], + child_widgets: list[Union["GUIElementProtocol[WidgetData]", "GroupWidgetData"]], + ): + super().__init__(id_, label or "") + self.child_widgets = child_widgets + + def asdict(self): + children = [] + for child in self.child_widgets: + if isinstance(child, WidgetData): + children.append(child.asdict()) + else: + children.append(child) + return {"id_": self.id_, "label": self.label, "child_widgets": children} + + +class ButtonWidgetData(WidgetData): + def __init__(self, id_: str, label: str): + super().__init__(id_, label) + self.widget_type = WidgetType.BUTTON + + def asdict(self): + return {**super().asdict()} + + +class VariableWidgetData(WidgetData): + def __init__( + self, + id_: str, + label: str, + variable_type: VariableType = VariableType.NONE, + is_slider: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label) + self.variable_type = variable_type + self.has_setter = False + self.is_slider = is_slider + self.extra_args = extra_args + self.widget_type = WidgetType.VARIABLE + + def asdict(self): + return { + **super().asdict(), + "variable_type": self.variable_type, + "has_setter": self.has_setter, + "is_slider": self.is_slider, + "extra_args": self.extra_args, + } + + +class EnumVariableWidgetData(VariableWidgetData): + def __init__( + self, + id_: str, + label: str, + enum: Type[Enum], + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, VariableType.ENUM, False, extra_args) + self.enum = enum + + def asdict(self): + return { + **super().asdict(), + "enum": self.enum, + } + + +WD = TypeVar("WD", bound=WidgetData, covariant=True) + + +class GUIElementProtocol(Generic[WD], Protocol): + """Base protocol for all GUI elements.""" + + # All the widget data is contained within this object. + _widget_data: WD + + @property + def __self__(self) -> Type: ... + + @property + def __name__(self) -> str: ... + + def __call__(self, *args: Any, **kwargs: Any) -> Any: ... diff --git a/pymhf/gui/widgets.py b/pymhf/gui/widgets.py new file mode 100644 index 0000000..d1aaca0 --- /dev/null +++ b/pymhf/gui/widgets.py @@ -0,0 +1,641 @@ +from abc import ABC, abstractmethod +from contextlib import contextmanager +from enum import Enum +from typing import TYPE_CHECKING, Any, Optional, Type, TypedDict, Union, cast + +import dearpygui.dearpygui as dpg + +from pymhf.gui.widget_data import ( + ButtonWidgetData, + CustomWidgetData, + EnumVariableWidgetData, + GroupWidgetData, + GUIElementProtocol, + VariableType, + VariableWidgetData, + WidgetData, +) + +if TYPE_CHECKING: + from pymhf.core.mod_loader import Mod + from pymhf.gui.gui import GUI + +INDENT = 32 + + +class WidgetSurrounds(TypedDict, total=False): + """Simple container for info about the surrounding widgets.""" + + after: Optional[str] + before: Optional[str] + parent: Optional[str] + + +class WidgetBehaviour(Enum): + UNDEFINED = -1 + CONTINUOUS = 0 + SEPARATE = 1 + + +class Widget(ABC): + widget_behaviour: WidgetBehaviour + + def __init__(self, id_: str): + self.ids: dict[str, Union[int, str]] = {} + self.id_ = id_ + # This is the root DearPyGUI id of the widget. It will be either the group containing the widget, or + # the id of the row depending on the widget behaviour. + self._root_dpg_id = 0 + if ( + not hasattr(self, "widget_behaviour") + or getattr(self, "widget_behaviour") == WidgetBehaviour.UNDEFINED + ): + raise TypeError( + f"Widget {self.__class__.__qualname__!r} does not have a valid widget_behaviour defined." + ) + + @staticmethod + def _get_parent_table(item: Union[str, int, None] = None): + """Get the first table containing the current widget.""" + if not item: + return None + item_ = item + while True: + if parent := dpg.get_item_info(item_).get("parent"): + if dpg.get_item_info(parent).get("type") == "mvAppItemType::mvTable": + return parent + item_ = parent + return None + + @contextmanager + def handle_widget_behaviour( + self, + widget_mapping: dict[str, "Widget"], + surrounding_widgets: Optional[WidgetSurrounds] = None, + ): + """Based on the widget behaviour, clean up from the previous widgets, or attach to them, and then + retrn some (optional) extra information which may be required later. + """ + extra = {} + manual_parent_id = None + if self.widget_behaviour == WidgetBehaviour.CONTINUOUS: + after_dpg_id = 0 + parent_dpg_id = 0 + before = None + after = None + parent = None + if surrounding_widgets: + before = surrounding_widgets.get("before") + after = surrounding_widgets.get("after") + parent = surrounding_widgets.get("parent") + if before is not None: + # Lookup the widget. + if (before_widget := widget_mapping.get(before)) is not None: + extra["before"] = before_widget._root_dpg_id + if after is not None: + if (after_widget := widget_mapping.get(after)) is not None: + after_dpg_id = after_widget._root_dpg_id + if parent is not None: + if (parent_widget := widget_mapping.get(parent)) is not None: + parent_dpg_id = parent_widget._root_dpg_id + + self._join_or_create_new_table(after_dpg_id, parent_dpg_id) + elif self.widget_behaviour == WidgetBehaviour.SEPARATE: + self._force_end_table() + if surrounding_widgets: + if (before := surrounding_widgets.get("before")) is not None: + # Lookup the widget. + if (before_widget := widget_mapping.get(before)) is not None: + extra["before"] = Widget._get_parent_table(before_widget._root_dpg_id) + # Check to see if we have a specific parent (eg. a group) and push it to the stack if so. + if (parent := surrounding_widgets.get("parent")) is not None: + if (parent_widget := widget_mapping.get(parent)) is not None: + if manual_parent_id := parent_widget._root_dpg_id: + dpg.push_container_stack(manual_parent_id) + yield extra + # Now do clean up if required + if self.widget_behaviour == WidgetBehaviour.SEPARATE: + if manual_parent_id: + # Remove it from the stack. This may be wasteful but it is much simpler than trying to keep it + # around just in case something else needs it. + if manual_parent_id == dpg.top_container_stack(): + dpg.pop_container_stack() + + def _join_or_create_new_table(self, after: int, parent: int): + prev_type = None + + # Check the top of the stack and get its' type. + if top_stack := dpg.top_container_stack(): + prev_type = dpg.get_item_info(top_stack).get("type") + # If the top of the stack is a table, then we just add directly to it. + if prev_type == "mvAppItemType::mvTable": + return + else: + if after: + # Find the table which contained the last object and push it to the stack. + if parent_table := Widget._get_parent_table(after): + dpg.push_container_stack(parent_table) + return + if parent: + dpg.push_container_stack(parent) + # If we get there then we either don't have an previous items, or they don't belong to a table, so + # we create one. + table = dpg.add_table( + show=True, + header_row=False, + borders_outerH=False, + borders_outerV=False, + borders_innerV=False, + borders_innerH=False, + width=-1, + ) + dpg.push_container_stack(table) + dpg.add_table_column() + dpg.add_table_column() + + def _force_end_table(self): + if top_stack := dpg.top_container_stack(): + item_info = dpg.get_item_info(top_stack) + if item_info["type"] == "mvAppItemType::mvTable": + # Remove the previous table from the container stack. + dpg.pop_container_stack() + + @classmethod + def create( + cls, + func: Union[GUIElementProtocol[WidgetData], GroupWidgetData], + widget_mapping: dict[str, "Widget"], + ): + if isinstance(func, GroupWidgetData): + data = func + else: + data = func._widget_data + widget_id = data.id_ + """ Create an instance based on the widget data passed in and register it with the widget mapping. """ + widget = None + if isinstance(data, ButtonWidgetData): + widget = Button(widget_id, data.label, cast(GUIElementProtocol[ButtonWidgetData], func)) + elif isinstance(data, VariableWidgetData): + func = cast(GUIElementProtocol[WidgetData], func) + # Extract all the info we need and then pass it into the various constructors. + dict_data = data.asdict() + label = dict_data["label"] + has_setter = dict_data.get("has_setter", False) + extra_args = dict_data.get("extra_args", {}) + is_slider = dict_data.get("is_slider", False) + mod = cast("Mod", func.__self__) + variable_name = func.__name__ + + if data.variable_type == VariableType.INTEGER: + widget = IntVariable(widget_id, label, mod, variable_name, has_setter, is_slider, extra_args) + elif data.variable_type == VariableType.FLOAT: + widget = FloatVariable( + widget_id, + label, + mod, + variable_name, + has_setter, + is_slider, + extra_args, + ) + elif data.variable_type == VariableType.BOOLEAN: + widget = BoolVariable(widget_id, label, mod, variable_name, has_setter, extra_args) + elif data.variable_type == VariableType.STRING: + widget = StringVariable(widget_id, label, mod, variable_name, has_setter, extra_args) + elif data.variable_type == VariableType.ENUM: + data = cast(EnumVariableWidgetData, data) + widget = EnumVariable(widget_id, label, mod, variable_name, data.enum, has_setter, extra_args) + elif isinstance(data, GroupWidgetData): + child_widgets: list[Widget] = [] + for cw in data.child_widgets: + if (widget := Widget.create(cw, widget_mapping)) is not None: + child_widgets.append(widget) + widget = Group(widget_id, data.label, child_widgets) + elif isinstance(data, CustomWidgetData): + func = cast(GUIElementProtocol[CustomWidgetData], func) + widget = cast(CustomWidget, data.widget_cls) + # Set the widget id as it won't have been set + widget.id_ = widget_id + widget._set_property_values(cast("Mod", func.__self__), func.__name__, data.has_setter) + else: + raise TypeError(f"Unknown widget type: {type(data)}") + if not widget: + raise TypeError(f"Unknown widget type: {type(data)}") + widget_mapping[widget_id] = widget + return widget + + def _draw( + self, + widget_mapping: dict[str, "Widget"], + surrounding_widgets: Optional[WidgetSurrounds] = None, + ): + # This is the actual draw entry point. + # It will wrap the draw call so that the widget behaviour is respected and any extra data is applied. + with self.handle_widget_behaviour(widget_mapping, surrounding_widgets) as extra: + if self.widget_behaviour == WidgetBehaviour.SEPARATE: + with dpg.group(**extra) as grp: + self._root_dpg_id = grp + if isinstance(self, Group): + self.draw(widget_mapping) + else: + self.draw() + else: + with dpg.table_row(**extra) as row: + self._root_dpg_id = row + self.draw() + + @abstractmethod + def draw(self): + """This is the main draw command which will be called once when the widget it to be drawn for the + first time. This should create any DearPyGUI widgets which are to be drawn as part of this, as well + as creating any variables and binding any callbacks.""" + pass + + @abstractmethod + def reload(self, mod: "Mod", new_widget: GUIElementProtocol[WidgetData]): + pass + + def remove(self): + # Auto-delete all the dpg widgets associated with this custom widget. + # We can simply delete the root id and it will cascade and delete all children, however, in the off + # chance that this is None, fallback to deleting all the widgets manually. + if self._root_dpg_id is not None: + dpg.delete_item(self._root_dpg_id) + else: + for widget_id in self.ids.values(): + try: + dpg.delete_item(widget_id) + except SystemError: + # We don't care. It may have already been deleted. + pass + + +class CustomWidget(Widget, ABC): + widget_behaviour = WidgetBehaviour.UNDEFINED + is_property: bool + + has_setter: bool + mod: "Mod" + variable_name: str + + def __init__(self, id_: Optional[str] = None): + super().__init__(id_ or "") + self.variable_type = VariableType.CUSTOM + + def __call__(self, func): + func = cast(GUIElementProtocol, func) + func._widget_data = CustomWidgetData(func.__qualname__, "", self) + self.func = func + return func + + def _set_property_values(self, mod: "Mod", variable_name: str, has_setter: bool = False): + """Called if this custom widget is a property""" + self.mod = mod + self.variable_name = variable_name + self.has_setter = has_setter + + def reload(self, mod: "Mod", new_widget: GUIElementProtocol[CustomWidgetData]): # type: ignore + # It's unlikely any inheriting class will override this, so just implement this and then instead + # we will remove the instance of the custom widget and draw it again upon reload. + pass + + @abstractmethod + def redraw(self, *args: Any, **kwargs: Any) -> Optional[dict[str, Any]]: + """Redraw the widget. This will be called each frame. + This method is guaranteed not to be called before the original `draw` method. + This method can be defined with any number of arguments but the function decorated by this class MUST + return a dict which doesn't contain any keys which aren't function arguments. + If this decorated a property which also has a setter, the returned dictionary (if any) is passed into + that setter by value (ie. it's not spread out - the values must be unpacked from the dictionary + inside the setter). + """ + pass + + +class Group(Widget): + widget_behaviour = WidgetBehaviour.SEPARATE + + def __init__(self, id_: str, label: Optional[str], child_widgets: Optional[list[Widget]]): + super().__init__(id_) + self.label = label + self.child_widgets = child_widgets or [] + + def draw(self, widget_mapping: dict[str, Widget]): # type: ignore + if not widget_mapping: + raise ValueError("widget_mapping must not be None for a Group.") + with dpg.collapsing_header( + label=self.label or "", + default_open=False, + tag=self.id_, + ) as ch: + with dpg.group(indent=INDENT): + self.dpg_id = ch + self.ids["SELF"] = ch + for widget in self.child_widgets: + widget._draw(widget_mapping) + self._force_end_table() + + def reload( # type: ignore + self, + mod: "Mod", + new_widget: GroupWidgetData, + new_sub_config: dict[str, list[dict]], + gui: "GUI", + ): + if new_widget.label != self.label: + dpg.configure_item( + self.ids["SELF"], + label=new_widget.label, + ) + for line in new_sub_config["deletions"]: + gui.handle_diff_row(mod, line) + for line in new_sub_config["changes"]: + gui.handle_diff_row(mod, line) + + def remove(self): + for widget in self.child_widgets: + widget.remove() + super().remove() + + +class Button(Widget): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__(self, id_: str, label: str, callback: GUIElementProtocol): + super().__init__(id_) + self.label = label + self.callback = callback + + def draw(self): + button_id = dpg.add_button( + tag=self.id_, + label=self.label, + callback=self.callback, + width=-1, + ) + self.ids["BUTTON"] = button_id + + def reload(self, mod: "Mod", new_widget: GUIElementProtocol[ButtonWidgetData]): # type: ignore + new_config = {} + widget_data = new_widget._widget_data + if widget_data.label != self.label: + new_config["label"] = widget_data.label + # The callback will ALWAYS change because we have a new instance of the Mod. + new_config["callback"] = new_widget + if new_config: + dpg.configure_item( + self.ids["BUTTON"], + **new_config, + ) + + +class Variable(Widget): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + variable_type: VariableType = VariableType.NONE, + has_setter: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_) + self.label = label + self.variable_type = variable_type + self.has_setter = has_setter + self.extra_args = extra_args + self.mod = mod + self.variable_name = variable_name + self.initial_value = getattr(self.mod, self.variable_name) + + def update_variable(self, _, app_data, user_data): + setattr(user_data[0], user_data[1], app_data) + + def draw(self): + with dpg.value_registry(): + if not self.has_setter: + dpg.add_string_value(tag=self.id_, default_value=repr(self.initial_value)) + else: + self._add_variable_value(tag=self.id_, default_value=self.initial_value) + + self.ids["LABEL"] = dpg.add_text(self.label) + if self.has_setter: + extra_args: dict[str, Any] = {} + extra_args.update(self.extra_args or {}) + self.ids["INPUT"] = self._add_editable_field(extra_args) + else: + self.ids["TEXT"] = dpg.add_text(source=self.id_) + + def _add_variable_value(self, tag: str, default_value: Any): + raise NotImplementedError() + + def _add_editable_field(self, extra_args: dict[str, Any]): + raise NotImplementedError() + + def reload(self, mod: "Mod", new_widget: GUIElementProtocol[VariableWidgetData]): # type: ignore + # Update variable label + widget_data = new_widget._widget_data + if widget_data.label != self.label: + dpg.set_value(self.ids["LABEL"], widget_data.label) + self.mod = mod + + # Handle the case of the variable having a setter change. + # If it hasn't changed, then we can configure the existing data if it has a setter. + if widget_data.has_setter != self.has_setter: + # We need to push the root row element to the stack so that we can draw inside it. + dpg.push_container_stack(self._root_dpg_id) + if widget_data.has_setter: + # Now has a setter: + dpg.delete_item(self.ids["TEXT"]) + extra_args: dict[str, Any] = {} + extra_args.update(self.extra_args or {}) + self.ids["INPUT"] = self._add_editable_field(extra_args) + else: + dpg.delete_item(self.ids["INPUT"]) + self.ids["TEXT"] = dpg.add_text(source=self.id_) + self.has_setter = widget_data.has_setter + dpg.pop_container_stack() + else: + if self.has_setter: + dpg.configure_item( + self.ids["INPUT"], + user_data=(self.mod, self.variable_name), + ) + + def remove(self): + super().remove() + # Delete the value from the registry as well. + dpg.delete_item(self.id_) + + +class IntVariable(Variable): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + has_setter: bool = False, + is_slider: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, mod, variable_name, VariableType.INTEGER, has_setter, extra_args) + self.is_slider = is_slider + + def _add_variable_value(self, tag: str, default_value: int): + dpg.add_int_value(tag=tag, default_value=default_value) + + def _add_editable_field(self, extra_args: dict[str, Any]): + if self.is_slider: + return dpg.add_slider_int( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + else: + extra_args.update({"on_enter": False}) + return dpg.add_input_int( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + + +class FloatVariable(Variable): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + has_setter: bool = False, + is_slider: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, mod, variable_name, VariableType.FLOAT, has_setter, extra_args) + self.is_slider = is_slider + + def _add_variable_value(self, tag: str, default_value: float): + dpg.add_double_value(tag=tag, default_value=default_value) + + def _add_editable_field(self, extra_args: dict[str, Any]): + if self.is_slider: + return dpg.add_slider_double( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + else: + extra_args.update({"on_enter": False}) + return dpg.add_input_double( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + + +class StringVariable(Variable): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + has_setter: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, mod, variable_name, VariableType.FLOAT, has_setter, extra_args) + + def _add_variable_value(self, tag: str, default_value: str): + dpg.add_string_value(tag=tag, default_value=default_value) + + def _add_editable_field(self, extra_args: dict[str, Any]): + extra_args.update({"on_enter": False}) + return dpg.add_input_text( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + + +class BoolVariable(Variable): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + has_setter: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, mod, variable_name, VariableType.BOOLEAN, has_setter, extra_args) + + def _add_variable_value(self, tag: str, default_value: bool): + dpg.add_bool_value(tag=tag, default_value=default_value) + + def _add_editable_field(self, extra_args: dict[str, Any]): + return dpg.add_checkbox( + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + **extra_args, + ) + + +class EnumVariable(Variable): + widget_behaviour = WidgetBehaviour.CONTINUOUS + + def __init__( + self, + id_: str, + label: str, + mod: "Mod", + variable_name: str, + enum: Type[Enum], + has_setter: bool = False, + extra_args: Optional[dict] = None, + ): + super().__init__(id_, label, mod, variable_name, VariableType.ENUM, has_setter, extra_args) + self.enum = enum + + def _add_variable_value(self, tag: str, default_value: Enum): + dpg.add_string_value(tag=tag, default_value=default_value.name) + + def _add_editable_field(self, extra_args: dict[str, Any]): + # Get the names of the enum members and convert to a list to bind to the combo box. + # We also need a specific on_update function for each enum so that we have have the + # associated enum scoped to the function for casting the value to the enum itself. + enum_names = [x.name for x in self.enum] + + return dpg.add_combo( + items=enum_names, + source=self.id_, + callback=self.update_variable, + user_data=(self.mod, self.variable_name), + width=-1, + **extra_args, + ) + + def update_variable(self, _, app_data, user_data): + setattr(user_data[0], user_data[1], getattr(self.enum, app_data, None)) diff --git a/pymhf/main.py b/pymhf/main.py index 8ae64b6..7de6a23 100644 --- a/pymhf/main.py +++ b/pymhf/main.py @@ -76,13 +76,13 @@ def get_process_when_ready( cmd: list[str], target: str, required_assemblies: Optional[list[str]] = None, - is_steam: bool = True, start_paused: bool = False, ) -> tuple[Optional[dllinject.pyRunner], Optional[WrappedProcess]]: target_process: Optional[WrappedProcess] = None parent_process = None # If we are running something which is under steam, make sure steam is # running first. + is_steam = cmd[0].startswith("steam://") if is_steam: for p in psutil.process_iter(["name", "pid"]): if p.name().lower() == "steam.exe": @@ -241,11 +241,10 @@ def run_module( if op.isfile(module_path): _module_path = op.dirname(module_path) - is_steam = False if steam_gameid: cmd = [f"steam://rungameid/{steam_gameid}"] - is_steam = True - elif binary_exe is not None: + # If there is a binary exe, let it take priority. + if binary_exe is not None: if op.isabs(binary_exe): binary_path = binary_exe cmd = [binary_path] @@ -259,7 +258,9 @@ def run_module( cmd = [binary_path] binary_exe = op.basename(binary_path) else: - if start_exe is True: + # If we get here we want to fail unless we are actually able to load from steam, in which case + # we'll use that. + if start_exe is True and not steam_gameid: raise ValueError( "[tool.pymhf].exe must be a full path or path relative to the running script if no " "steam_gameid is provided and start_exe is not true" @@ -281,7 +282,6 @@ def run_module( cmd + cmd_args, binary_exe, required_assemblies, - is_steam, start_paused, ) else: @@ -521,7 +521,7 @@ def close_callback(x): while True: try: if pm_binary.read_bool(sentinel_addr) is True: - print("pyMHF injection complete!") + print("pyMHF injection on paused binary complete. Resuming exe.") break except KeyboardInterrupt: # Kill the injected code even though we are still waiting for it to start up. diff --git a/pymhf/utils/partial_struct.py b/pymhf/utils/partial_struct.py index 3315f48..1684b3d 100644 --- a/pymhf/utils/partial_struct.py +++ b/pymhf/utils/partial_struct.py @@ -41,20 +41,31 @@ def partial_struct(cls: _T) -> _T: if not hasattr(cls, "__annotations__"): cls._fields_ = _fields_ return cls - # List of field names to exclude. - # These are to ensure that when a partial struct subclasses from another it doesn't get the fields twice. - exclude_fields = set() + + # Do some analysis on the closest base class to find the last non-padding bytes and size. + subclass_fields = set() subclass_size = 0 + for subclass in cls.__mro__[1:]: if hasattr(subclass, "_fields_"): for field in subclass._fields_: - exclude_fields.add(field[0]) - subclass_size += ctypes.sizeof(subclass) - # If there are, loop over the annotations and extract the info we need to construct the _fields_. + subclass_fields.add(field[0]) + if hasattr(subclass, "_total_size_"): + subclass_size = subclass._total_size_ + else: + subclass_size = ctypes.sizeof(subclass) + + _in_subclass = True + for field_name, annotation in get_type_hints(cls, include_extras=True, localns=_locals).items(): # Ingore any fields which we have picked up from any subclasses. - if field_name in exclude_fields: + if _in_subclass and field_name in subclass_fields: continue + elif _in_subclass: + # Fields are always in order. Once we have a name which isn't in the subclass then we swap this + # flag and set our current position to be the size of the subclass. + _in_subclass = False + curr_position = subclass_size if not isinstance(annotation, _AnnotatedAlias): # In this case it's just the type. field_type = annotation @@ -72,25 +83,25 @@ def partial_struct(cls: _T) -> _T: else: field_type = annotation.__origin__ field_offset = metadata - # Check to make sure that the `field_type` is not a string(as can happen when we have a - # self-reference). - if isinstance(field_type, str): - field_type = getattr(annotation, "__origin__", None) - if field_type is None: - raise ValueError( - f"The provided metadata {metadata} for field {field_name!r} is invalid. " - "If the type in the `Field` component of the annotation is a string, please ensure the " - "first argument of the Annotation is also the same string so that the type can be " - "resolved." - ) + # Check to make sure that the `field_type` is not a string(as can happen when we have a + # self-reference). + if isinstance(field_type, str): + field_type = getattr(annotation, "__origin__", None) + if field_type is None: + raise ValueError( + f"The provided metadata {metadata} for field {field_name!r} is invalid. " + "If the type in the `Field` component of the annotation is a string, please ensure " + "the first argument of the Annotation is also the same string so that the type can " + "be resolved." + ) if not issubclass(field_type, get_args(CTYPES)): raise ValueError(f"The field {field_name!r} has an invalid type: {field_type}") if field_offset is not None and not isinstance(field_offset, int): raise ValueError(f"The field {field_name!r} has an invalid offset: {field_offset!r}") # Correct the field offset by the size of the subclass. - if field_offset and field_offset - subclass_size > curr_position: - padding_bytes = field_offset - subclass_size - curr_position - _fields_.append((f"_padding_{curr_position:X}", ctypes.c_ubyte * padding_bytes)) + if field_offset and field_offset > curr_position: + padding_bytes = field_offset - curr_position + _fields_.append((f"_padding_0x{curr_position:X}", ctypes.c_ubyte * padding_bytes)) curr_position += padding_bytes field_alignment = ctypes.alignment(field_type) if field_alignment and (curr_position % field_alignment != 0): @@ -103,6 +114,6 @@ def partial_struct(cls: _T) -> _T: curr_position += ctypes.sizeof(field_type) if total_size and curr_position < total_size: padding_bytes = total_size - curr_position - _fields_.append((f"_padding_{curr_position:X}", ctypes.c_ubyte * padding_bytes)) + _fields_.append((f"_padding_0x{curr_position:X}", ctypes.c_ubyte * padding_bytes)) cls._fields_ = _fields_ return cls diff --git a/pymhf/utils/winapi.py b/pymhf/utils/winapi.py index cba030e..2c4a0b2 100644 --- a/pymhf/utils/winapi.py +++ b/pymhf/utils/winapi.py @@ -147,6 +147,30 @@ class _Misc(ctypes.Union): VirtualQueryEx.restype = ctypes.c_size_t +GetFinalPathNameByHandleA = ctypes.windll.kernel32.GetFinalPathNameByHandleA +GetFinalPathNameByHandleA.argtypes = [ + wintypes.HANDLE, + wintypes.LPSTR, + wintypes.DWORD, + wintypes.DWORD, +] +GetFinalPathNameByHandleA.restype = wintypes.DWORD + + +def get_filepath_from_handle(handle: int) -> str: + buffer = ctypes.create_string_buffer(b"", MAX_EXE_NAME_SIZE) + res = GetFinalPathNameByHandleA(handle, buffer, MAX_EXE_NAME_SIZE, 0) + if res: + return buffer.value.decode() + if errcode := GetLastError(): + if errcode == 0x6: + # This is ERROR_INVALID_HANDLE + raise ValueError(f"ERROR_INVALID_HANDLE (0x6): {handle}") + else: + raise ValueError(f"There was an error determining the filepath for handle {handle}: {errcode}") + return "" + + def get_exe_path_from_pid(proc: pymem.Pymem) -> str: """Get the name of the exe which was run to create the pymem process.""" name_buffer = ctypes.create_string_buffer(b"", MAX_EXE_NAME_SIZE) diff --git a/pyproject.toml b/pyproject.toml index ae1becd..486a19e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,6 +59,9 @@ dev = [ [tool.uv] python-preference = "only-system" +environments = [ + "sys_platform == 'win32'", +] [tool.setuptools.package-dir] pymhf = "pymhf" diff --git a/testing/custom_widget.py b/testing/custom_widget.py new file mode 100644 index 0000000..03bfda9 --- /dev/null +++ b/testing/custom_widget.py @@ -0,0 +1,115 @@ +import math + +import dearpygui.dearpygui as dpg + +from pymhf import Mod +from pymhf.gui.decorators import FLOAT +from pymhf.gui.widgets import CustomWidget, WidgetBehaviour + + +class MovingCircle(CustomWidget): + widget_behaviour = WidgetBehaviour.SEPARATE + + def __init__(self, colour: tuple[int, int, int, int] = (255, 0, 0, 255)): + super().__init__() + self.colour = colour + self.center_pos = (200, 200) + self.clicked_on = False + + def click_callback(self, sender, app_data, user_data): + self.clicked_on = True + + def release_mouse(self, sender, app_data, user_data): + self.clicked_on = False + + def draw(self): + dpg.add_text("Example canvas:") + with dpg.drawlist(width=500, height=300) as dl: + self.ids["DRAWLIST"] = dl + self.ids["BORDER"] = dpg.draw_rectangle( + pmin=(0, 0), + pmax=(500, 300), + color=(255, 255, 255, 255), + fill=(0, 0, 0, 0), + thickness=1, + ) + self.ids["DOT"] = dpg.draw_circle( + center=self.center_pos, + radius=2, + color=self.colour, + fill=self.colour, + ) + self.ids["CIRCLE"] = dpg.draw_circle( + center=(self.center_pos[0] + 100, self.center_pos[1] + 100), + radius=20, + color=self.colour, + fill=self.colour, + ) + dpg.add_text("Change the value for theta and \nradius below to move the circle.") + + with dpg.item_handler_registry() as ihr: + # Triggers for the left mouse button clicked event within the drawlist bounds + dpg.add_item_clicked_handler( + button=dpg.mvMouseButton_Left, + callback=self.click_callback, + ) + + dpg.bind_item_handler_registry(self.ids["DRAWLIST"], ihr) + + with dpg.handler_registry(): + dpg.add_mouse_release_handler(callback=self.release_mouse) + + def redraw(self, theta: float, radius: float, center_pos: tuple[float, float]): + if self.clicked_on: + self.center_pos = tuple(dpg.get_drawing_mouse_pos()) + elif center_pos: + self.center_pos = center_pos + x = self.center_pos[0] + 50 * math.cos(theta) + y = self.center_pos[1] + 50 * math.sin(theta) + + # Update the circle's position using configure_item + dpg.configure_item(self.ids["DOT"], center=self.center_pos) + dpg.configure_item(self.ids["CIRCLE"], center=(x, y), radius=radius) + return {"center_pos": self.center_pos} + + +class GUITest(Mod): + __author__ = "monkeyman192" + __description__ = "Test globals" + + def __init__(self): + super().__init__() + self.theta = 0 + self.radius = 10 + self.center_pos = (200, 200) + + @property + @MovingCircle((255, 0, 123, 255)) + def circle_loc(self): + return { + "theta": self.theta, + "radius": self.radius, + "center_pos": self.center_pos + } + + @circle_loc.setter + def circle_loc(self, value): + self.center_pos = value["center_pos"] + + @property + @FLOAT("Theta", is_slider=True, min_value=0, max_value=2 * math.pi) + def theta(self): + return self.theta + + @theta.setter + def theta(self, value): + self.theta = value + + @property + @FLOAT("Radius", is_slider=True, min_value=0, max_value=50) + def radius(self): + return self.radius + + @radius.setter + def radius(self, value): + self.radius = value diff --git a/testing/gui_test_mod.py b/testing/gui_test_mod.py new file mode 100644 index 0000000..626ce62 --- /dev/null +++ b/testing/gui_test_mod.py @@ -0,0 +1,220 @@ +import math +from dataclasses import dataclass +from enum import IntEnum +from typing import Optional + +import dearpygui.dearpygui as dpg + +from pymhf import Mod, ModState +from pymhf.gui.decorators import BOOLEAN, ENUM, FLOAT, INTEGER, STRING, gui_button, gui_group +from pymhf.gui.widgets import CustomWidget, WidgetBehaviour + + +class eLanguageRegion(IntEnum): + English = 0x0 + USEnglish = 0x1 + French = 0x2 + Italian = 0x3 + German = 0x4 + Spanish = 0x5 + Russian = 0x6 + Polish = 0x7 + Dutch = 0x8 + Portuguese = 0x9 + LatinAmericanSpanish = 0xA + BrazilianPortuguese = 0xB + Japanese = 0xC + TraditionalChinese = 0xD + SimplifiedChinese = 0xE + TencentChinese = 0xF + Korean = 0x10 + + +@dataclass +class State(ModState): + radius: float = 20 + theta: float = 0 + center_pos: tuple[float, float] = (200, 200) + + +class MovingCircle(CustomWidget): + widget_behaviour = WidgetBehaviour.SEPARATE + + def __init__(self, colour: tuple[int, int, int, int] = (255, 0, 0, 255)): + super().__init__() + self.colour = colour + self.center_pos = (200, 200) + self.clicked_on = False + + def click_callback(self, sender, app_data, user_data): + self.clicked_on = True + + def release_mouse(self, sender, app_data, user_data): + self.clicked_on = False + + def draw(self): + dpg.add_text("Example canvas:") + with dpg.drawlist(width=500, height=300) as dl: + self.ids["DRAWLIST"] = dl + self.ids["BORDER"] = dpg.draw_rectangle( + pmin=(0, 0), + pmax=(500, 300), + color=(255, 255, 255, 255), + fill=(0, 0, 0, 0), + thickness=1, + ) + self.ids["DOT"] = dpg.draw_circle( + center=self.center_pos, + radius=2, + color=self.colour, + fill=self.colour, + ) + self.ids["CIRCLE"] = dpg.draw_circle( + center=(self.center_pos[0] + 100, self.center_pos[1] + 100), + radius=20, + color=self.colour, + fill=self.colour, + ) + dpg.add_text("Change the value for theta and \nradius below to move the circle.") + + with dpg.item_handler_registry() as ihr: + # Triggers for the left mouse button clicked event within the drawlist bounds + dpg.add_item_clicked_handler( + button=dpg.mvMouseButton_Left, + callback=self.click_callback, + ) + with dpg.handler_registry(): + dpg.add_mouse_release_handler(callback=self.release_mouse) + + dpg.bind_item_handler_registry(self.ids["DRAWLIST"], ihr) + + def redraw(self, theta: float, radius: float, center_pos: Optional[tuple[float, float]] = None): + if self.clicked_on: + self.center_pos = tuple(dpg.get_drawing_mouse_pos()) + elif center_pos: + self.center_pos = center_pos + x = self.center_pos[0] + 50 * math.cos(theta) + y = self.center_pos[1] + 50 * math.sin(theta) + + # Update the circle's position using configure_item + dpg.configure_item(self.ids["DOT"], center=self.center_pos) + dpg.configure_item(self.ids["CIRCLE"], center=(x, y), radius=radius) + return {"center_pos": self.center_pos} + + +class GUITest(Mod): + __author__ = "monkeyman192" + __description__ = "Test globals" + mod_state = State() + + def __init__(self): + super().__init__() + self._enum_val = eLanguageRegion.Japanese + self._walk_speed = 10 + self.t = 0 + self.r = 20 + + @property + @MovingCircle((255, 0, 123, 255)) + def circle_loc(self): + return { + "theta": self.mod_state.theta, + "radius": self.mod_state.radius, + "center_pos": self.mod_state.center_pos + } + + @circle_loc.setter + def circle_loc(self, value): + self.mod_state.center_pos = value["center_pos"] + + @property + @FLOAT("Theta", is_slider=True, min_value=0, max_value=2 * math.pi) + def theta(self): + return self.mod_state.theta + + @theta.setter + def theta(self, value): + self.mod_state.theta = value + + @property + @FLOAT("Radius", is_slider=True, min_value=0, max_value=50) + def radius(self): + return self.mod_state.radius + + @radius.setter + def radius(self, value): + self.mod_state.radius = value + + with gui_group("Some a fields"): + @property + @FLOAT("Walk speed") + def ground_walk_speed(self): + return self._walk_speed + + @ground_walk_speed.setter + def ground_walk_speed(self, value): + self._walk_speed = value + + @property + @FLOAT("Run speed") + def ground_run_speed(self): + return 2 * self._walk_speed + + @property + @FLOAT("Jetpack fuel") + def jetpack_fuel(self): + return 42 + + @property + @MovingCircle((0, 0, 255, 255)) + def circle_loc2(self): + return { + "theta": 2 * self.mod_state.theta, + "radius": 2 * self.mod_state.radius, + } + + @property + @INTEGER("Voxel X") + def voxel_x(self): + return 1 + + with gui_group("Some subfields"): + @property + @MovingCircle((255, 0, 255, 255)) + def circle_loc3(self): + return { + "theta": 3 * self.mod_state.theta, + "radius": 3 * self.mod_state.radius, + } + + @gui_button("Do the thing? 77") + def the_thing99(self): + print("AABBA Doing the thing...???") + + @gui_button("Do the thing?") + def the_thing(self): + print("AAA Doing the thing...!!") + + @gui_button("Add 10 nanites") + def add_nanites(self): + print("Button pressed") + + @property + @BOOLEAN("Player is running!!!") + def player_is_running(self): + return True + + @property + @STRING("The language:") + def readonly_enum(self): + return self._enum_val.name + + @property + @ENUM("Editable enum:", eLanguageRegion) + def editable_enum(self): + return self._enum_val + + @editable_enum.setter + def editable_enum(self, value): + print(f"Setting {self._enum_val} to {value!r}") + self._enum_val = value diff --git a/testing/gui_test_mod_simple.py b/testing/gui_test_mod_simple.py new file mode 100644 index 0000000..fc84640 --- /dev/null +++ b/testing/gui_test_mod_simple.py @@ -0,0 +1,119 @@ +import math + +import dearpygui.dearpygui as dpg + +from pymhf import Mod +from pymhf.gui.decorators import FLOAT +from pymhf.gui.widgets import CustomWidget, WidgetBehaviour + + +class MovingCircle(CustomWidget): + # Specify that the widget will be drawn separately from the previous widget. + widget_behaviour = WidgetBehaviour.SEPARATE + + def __init__(self, colour: tuple[int, int, int, int] = (255, 0, 0, 255)): + super().__init__() + self.colour = colour + self.center_pos = (200, 200) + self.clicked_on = False + + def click_callback(self, sender, app_data, user_data): + self.clicked_on = True + + def release_mouse(self, sender, app_data, user_data): + self.clicked_on = False + + def draw(self): + # Create a DearPyGUI drawlist to draw a circle which follows the mouse when clicked. + # This code is called when the widget is initially drawn in the GUI and when the + # widget is reloded after the "reload" button is pressed. + with dpg.drawlist(width=500, height=300) as dl: + self.ids["DRAWLIST"] = dl + self.ids["BORDER"] = dpg.draw_rectangle( + pmin=(0, 0), + pmax=(500, 300), + color=(255, 255, 255, 255), + fill=(0, 0, 0, 0), + thickness=1, + ) + self.ids["DOT"] = dpg.draw_circle( + center=self.center_pos, + radius=2, + color=self.colour, + fill=self.colour, + ) + self.ids["CIRCLE"] = dpg.draw_circle( + center=(self.center_pos[0] + 100, self.center_pos[1] + 100), + radius=20, + color=self.colour, + fill=self.colour, + ) + dpg.add_text("Change the value for theta and \nradius below to move the circle.") + + with dpg.item_handler_registry() as ihr: + # Triggers for the left mouse button clicked event within the drawlist bounds + dpg.add_item_clicked_handler( + button=dpg.mvMouseButton_Left, + callback=self.click_callback, + ) + + dpg.bind_item_handler_registry(self.ids["DRAWLIST"], ihr) + + with dpg.handler_registry(): + dpg.add_mouse_release_handler(callback=self.release_mouse) + + def redraw(self, theta: float, radius: float, center_pos: tuple[float, float]): + # This function is called each frame the tab the widget belongs to is selected. + if self.clicked_on: + self.center_pos = tuple(dpg.get_drawing_mouse_pos()) + elif center_pos: + self.center_pos = center_pos + x = self.center_pos[0] + 50 * math.cos(theta) + y = self.center_pos[1] + 50 * math.sin(theta) + + # Update the circle's position using configure_item + dpg.configure_item(self.ids["DOT"], center=self.center_pos) + dpg.configure_item(self.ids["CIRCLE"], center=(x, y), radius=radius) + return {"center_pos": self.center_pos} + + +class GUITest(Mod): + __author__ = "monkeyman192" + __description__ = "Test globals" + + def __init__(self): + super().__init__() + self._theta = 0 + self._radius = 10 + self.center_pos = (200, 200) + + @property + @MovingCircle((255, 0, 123, 255)) + def circle_loc(self): + return { + "theta": self._theta, + "radius": self._radius, + "center_pos": self.center_pos + } + + @circle_loc.setter + def circle_loc(self, value): + self.center_pos = value["center_pos"] + + @property + @FLOAT("Theta", is_slider=True, min_value=0, max_value=2 * math.pi) + def theta(self): + return self._theta + + @theta.setter + def theta(self, value): + self._theta = value + + @property + @FLOAT("Radius", is_slider=True, min_value=0, max_value=50) + def radius(self): + return self._radius + + @radius.setter + def radius(self, value): + self._radius = value diff --git a/testing/readme.md b/testing/readme.md new file mode 100644 index 0000000..16320dd --- /dev/null +++ b/testing/readme.md @@ -0,0 +1,2 @@ +This folder contains some scripts which can be used to test pyMHF in a more local dev sense. +They are not meant to be used like unit tests, more just to aid in development of pyMHF itself. \ No newline at end of file diff --git a/testing/test_gui.py b/testing/test_gui.py new file mode 100644 index 0000000..c9ab2b3 --- /dev/null +++ b/testing/test_gui.py @@ -0,0 +1,25 @@ +import os.path as op +from logging import StreamHandler, getLogger + +from pymhf.core.hooking import hook_manager +from pymhf.core.mod_loader import mod_manager +from pymhf.gui.gui import GUI + +logger = getLogger() +logger.addHandler(StreamHandler()) + + +def run_gui(): + mod_manager.hook_manager = hook_manager + mod_manager.load_single_mod(op.join(op.dirname(__file__), "gui_test_mod_simple.py")) + gui = GUI(mod_manager, {"gui": {"scale": 1}}) + for mod in mod_manager.mods.values(): + gui.add_tab(mod) + gui.add_hex_tab() + gui.add_settings_tab() + gui.add_details_tab() + gui.run() + + +if __name__ == "__main__": + run_gui() diff --git a/tests/unit/test_partial_structs.py b/tests/unit/test_partial_structs.py index f6b8a82..e58568a 100644 --- a/tests/unit/test_partial_structs.py +++ b/tests/unit/test_partial_structs.py @@ -18,7 +18,7 @@ class Test(ctypes.Structure): assert Test._fields_ == [ ("a", ctypes.c_uint32), - ("_padding_4", ctypes.c_ubyte * 0xC), + ("_padding_0x4", ctypes.c_ubyte * 0xC), ("b", ctypes.c_uint32), ] @@ -48,7 +48,7 @@ class Test(ctypes.Structure): assert Test._fields_ == [ ("a", c_enum32[Alphabet]), - ("_padding_4", ctypes.c_ubyte * 0xC), + ("_padding_0x4", ctypes.c_ubyte * 0xC), ("b", ctypes.c_uint32), ] @@ -74,9 +74,9 @@ class Test(ctypes.Structure): assert Test._fields_ == [ ("a", ctypes.c_uint32), - ("_padding_4", ctypes.c_ubyte * 0xC), + ("_padding_0x4", ctypes.c_ubyte * 0xC), ("b", ctypes.c_uint32), - ("_padding_14", ctypes.c_ubyte * 0x4), + ("_padding_0x14", ctypes.c_ubyte * 0x4), ] data = bytearray( @@ -108,9 +108,9 @@ class Sub(ctypes.Structure): ("a", ctypes.c_uint32), ("b_sub", Test.Sub), ("c", ctypes.c_uint32), - ("_padding_C", ctypes.c_ubyte * 0x4), + ("_padding_0xC", ctypes.c_ubyte * 0x4), ("d", ctypes.c_uint32), - ("_padding_14", ctypes.c_ubyte * 0x4), + ("_padding_0x14", ctypes.c_ubyte * 0x4), ] data = bytearray( @@ -147,9 +147,9 @@ class Test(ctypes.Structure): ("a", ctypes.c_uint32), ("b_sub", Sub), ("c", Sub), - ("_padding_C", ctypes.c_ubyte * 0x4), + ("_padding_0xC", ctypes.c_ubyte * 0x4), ("d", ctypes.c_uint32), - ("_padding_14", ctypes.c_ubyte * 0x4), + ("_padding_0x14", ctypes.c_ubyte * 0x4), ] data = bytearray( @@ -180,7 +180,7 @@ class Test(ctypes.Structure): assert Test._fields_ == [ ("a", ctypes.c_uint32), - ("_padding_4", ctypes.c_ubyte * 0x6), + ("_padding_0x4", ctypes.c_ubyte * 0x6), ("a_bool", ctypes.c_bool), ("b", ctypes.POINTER(ctypes.c_uint32)), ("c", ctypes.c_uint32), @@ -352,6 +352,10 @@ class GrandParent(Parent): data_parent = bytearray( b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00" ) + data_grandparent = bytearray( + b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00" + b"\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00" + ) base = Base.from_buffer(data_base) assert base.a == 1 @@ -368,6 +372,56 @@ class GrandParent(Parent): assert parent.c == 5 assert parent.d == 6 + gparent = GrandParent.from_buffer(data_grandparent) + assert gparent.a == 1 + assert gparent.b is True + assert gparent.c == 5 + assert gparent.d == 6 + assert gparent.e is True + + +def test_total_size_inheritence(): + # Test the case of a base and parent class having different _total_size_'s. + @partial_struct + class Base(ctypes.Structure): + _total_size_ = 0x10 + + a: Annotated[int, Field(ctypes.c_uint32)] + b: Annotated[bool, Field(ctypes.c_bool, 0x8)] + + @partial_struct + class Parent(Base): + _total_size_ = 0x30 + c: Annotated[ctypes.c_uint32, 0x20] + d: ctypes.c_uint32 + + # Check the sizes and reading for the base class. + data_too_small = bytearray(b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00") + with pytest.raises( + ValueError, match=re.escape("Buffer size too small (12 instead of at least 16 bytes)") + ): + Base.from_buffer(data_too_small) + + data_just_right = bytearray(b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00") + obj = Base.from_buffer(data_just_right) + assert obj.a == 1 + assert obj.b is True + + print("------------------") + print(ctypes.sizeof(Parent)) + print(Parent._fields_) + + # Check sizes and reading parent class. + data_too_small2 = bytearray( + b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" + b"\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" + b"\x01\x00\x00\x00\x02\x00\x00\x00" + ) + with pytest.raises( + ValueError, match=re.escape("Buffer size too small (40 instead of at least 48 bytes)") + ): + Parent.from_buffer(data_too_small2) + def test_invalid_cases(): # Invalid type type diff --git a/uv.lock b/uv.lock index 6376252..e233e66 100644 --- a/uv.lock +++ b/uv.lock @@ -1,10 +1,13 @@ version = 1 -revision = 1 +revision = 3 requires-python = ">=3.9, <4" resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", + "python_full_version < '3.10' and sys_platform == 'win32'", +] +supported-markers = [ + "sys_platform == 'win32'", ] [[package]] @@ -12,23 +15,20 @@ name = "accessible-pygments" version = "0.0.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pygments" }, + { name = "pygments", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903 }, + { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" }, ] [[package]] name = "aiosqlite" -version = "0.21.0" +version = "0.22.1" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454 } +sdist = { url = "https://files.pythonhosted.org/packages/4e/8a/64761f4005f17809769d23e518d915db74e6310474e733e3593cfc854ef1/aiosqlite-0.22.1.tar.gz", hash = "sha256:043e0bd78d32888c0a9ca90fc788b38796843360c855a7262a532813133a0650", size = 14821, upload-time = "2025-12-23T19:25:43.997Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792 }, + { url = "https://files.pythonhosted.org/packages/00/b7/e3bf5133d697a08128598c8d0abc5e16377b51465a33756de24fa7dee953/aiosqlite-0.22.1-py3-none-any.whl", hash = "sha256:21c002eb13823fad740196c5a2e9d8e62f6243bd9e7e4a1f87fb5e44ecb4fceb", size = 17405, upload-time = "2025-12-23T19:25:42.139Z" }, ] [[package]] @@ -36,11 +36,11 @@ name = "alabaster" version = "0.7.16" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/3e/13dd8e5ed9094e734ac430b5d0eb4f2bb001708a8b7856cbf8e084e001ba/alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", size = 23776 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/3e/13dd8e5ed9094e734ac430b5d0eb4f2bb001708a8b7856cbf8e084e001ba/alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", size = 23776, upload-time = "2024-01-10T00:56:10.189Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 }, + { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511, upload-time = "2024-01-10T00:56:08.388Z" }, ] [[package]] @@ -48,52 +48,52 @@ name = "alabaster" version = "1.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210 } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210, upload-time = "2024-07-26T18:15:03.762Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929 }, + { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929, upload-time = "2024-07-26T18:15:02.05Z" }, ] [[package]] name = "attrs" version = "25.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251 } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615 }, + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, ] [[package]] name = "babel" version = "2.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, ] [[package]] name = "backports-tarfile" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406 } +sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406, upload-time = "2024-05-28T17:01:54.731Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181 }, + { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181, upload-time = "2024-05-28T17:01:53.112Z" }, ] [[package]] name = "beautifulsoup4" -version = "4.14.2" +version = "4.14.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "soupsieve" }, - { name = "typing-extensions" }, + { name = "soupsieve", marker = "sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/77/e9/df2358efd7659577435e2177bfa69cba6c33216681af51a707193dec162a/beautifulsoup4-4.14.2.tar.gz", hash = "sha256:2a98ab9f944a11acee9cc848508ec28d9228abfd522ef0fad6a02a72e0ded69e", size = 625822 } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/fe/3aed5d0be4d404d12d36ab97e2f1791424d9ca39c2f754a6285d59a3b01d/beautifulsoup4-4.14.2-py3-none-any.whl", hash = "sha256:5ef6fa3a8cbece8488d66985560f97ed091e22bbc4e9c2338508a9d5de6d4515", size = 106392 }, + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, ] [[package]] @@ -101,376 +101,176 @@ name = "cattrs" version = "25.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "attrs" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, - { name = "typing-extensions" }, + { name = "attrs", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/00/2432bb2d445b39b5407f0a90e01b9a271475eea7caf913d7a86bcb956385/cattrs-25.3.0.tar.gz", hash = "sha256:1ac88d9e5eda10436c4517e390a4142d88638fe682c436c93db7ce4a277b884a", size = 509321 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/00/2432bb2d445b39b5407f0a90e01b9a271475eea7caf913d7a86bcb956385/cattrs-25.3.0.tar.gz", hash = "sha256:1ac88d9e5eda10436c4517e390a4142d88638fe682c436c93db7ce4a277b884a", size = 509321, upload-time = "2025-10-07T12:26:08.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/2b/a40e1488fdfa02d3f9a653a61a5935ea08b3c2225ee818db6a76c7ba9695/cattrs-25.3.0-py3-none-any.whl", hash = "sha256:9896e84e0a5bf723bc7b4b68f4481785367ce07a8a02e7e9ee6eb2819bc306ff", size = 70738 }, + { url = "https://files.pythonhosted.org/packages/d8/2b/a40e1488fdfa02d3f9a653a61a5935ea08b3c2225ee818db6a76c7ba9695/cattrs-25.3.0-py3-none-any.whl", hash = "sha256:9896e84e0a5bf723bc7b4b68f4481785367ce07a8a02e7e9ee6eb2819bc306ff", size = 70738, upload-time = "2025-10-07T12:26:06.603Z" }, ] [[package]] name = "certifi" version = "2025.11.12" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438 }, -] - -[[package]] -name = "cffi" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811 }, - { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402 }, - { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217 }, - { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079 }, - { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475 }, - { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829 }, - { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211 }, - { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036 }, - { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613 }, - { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476 }, - { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374 }, - { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597 }, - { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574 }, - { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971 }, - { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972 }, - { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078 }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 }, - { url = "https://files.pythonhosted.org/packages/9b/13/c92e36358fbcc39cf0962e83223c9522154ee8630e1df7c0b3a39a8124e2/cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c", size = 208813 }, - { url = "https://files.pythonhosted.org/packages/15/12/a7a79bd0df4c3bff744b2d7e52cc1b68d5e7e427b384252c42366dc1ecbc/cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165", size = 216498 }, - { url = "https://files.pythonhosted.org/packages/a3/ad/5c51c1c7600bdd7ed9a24a203ec255dccdd0ebf4527f7b922a0bde2fb6ed/cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534", size = 203243 }, - { url = "https://files.pythonhosted.org/packages/32/f2/81b63e288295928739d715d00952c8c6034cb6c6a516b17d37e0c8be5600/cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f", size = 203158 }, - { url = "https://files.pythonhosted.org/packages/1f/74/cc4096ce66f5939042ae094e2e96f53426a979864aa1f96a621ad128be27/cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63", size = 216548 }, - { url = "https://files.pythonhosted.org/packages/e8/be/f6424d1dc46b1091ffcc8964fa7c0ab0cd36839dd2761b49c90481a6ba1b/cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2", size = 218897 }, - { url = "https://files.pythonhosted.org/packages/f7/e0/dda537c2309817edf60109e39265f24f24aa7f050767e22c98c53fe7f48b/cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65", size = 211249 }, - { url = "https://files.pythonhosted.org/packages/2b/e7/7c769804eb75e4c4b35e658dba01de1640a351a9653c3d49ca89d16ccc91/cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322", size = 218041 }, + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709 }, - { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814 }, - { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467 }, - { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280 }, - { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454 }, - { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609 }, - { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849 }, - { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586 }, - { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290 }, - { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663 }, - { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964 }, - { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064 }, - { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015 }, - { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792 }, - { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198 }, - { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262 }, - { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988 }, - { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324 }, - { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742 }, - { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863 }, - { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837 }, - { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550 }, - { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162 }, - { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019 }, - { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310 }, - { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022 }, - { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383 }, - { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098 }, - { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991 }, - { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456 }, - { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978 }, - { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969 }, - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346 }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874 }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076 }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601 }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376 }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825 }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583 }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366 }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300 }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465 }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404 }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092 }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408 }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746 }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889 }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641 }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779 }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035 }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542 }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524 }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395 }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680 }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045 }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687 }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014 }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044 }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940 }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104 }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743 }, - { url = "https://files.pythonhosted.org/packages/46/7c/0c4760bccf082737ca7ab84a4c2034fcc06b1f21cf3032ea98bd6feb1725/charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9", size = 209609 }, - { url = "https://files.pythonhosted.org/packages/bb/a4/69719daef2f3d7f1819de60c9a6be981b8eeead7542d5ec4440f3c80e111/charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d", size = 149029 }, - { url = "https://files.pythonhosted.org/packages/e6/21/8d4e1d6c1e6070d3672908b8e4533a71b5b53e71d16828cc24d0efec564c/charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608", size = 144580 }, - { url = "https://files.pythonhosted.org/packages/a7/0a/a616d001b3f25647a9068e0b9199f697ce507ec898cacb06a0d5a1617c99/charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc", size = 162340 }, - { url = "https://files.pythonhosted.org/packages/85/93/060b52deb249a5450460e0585c88a904a83aec474ab8e7aba787f45e79f2/charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e", size = 159619 }, - { url = "https://files.pythonhosted.org/packages/dd/21/0274deb1cc0632cd587a9a0ec6b4674d9108e461cb4cd40d457adaeb0564/charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1", size = 153980 }, - { url = "https://files.pythonhosted.org/packages/28/2b/e3d7d982858dccc11b31906976323d790dded2017a0572f093ff982d692f/charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3", size = 152174 }, - { url = "https://files.pythonhosted.org/packages/6e/ff/4a269f8e35f1e58b2df52c131a1fa019acb7ef3f8697b7d464b07e9b492d/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6", size = 151666 }, - { url = "https://files.pythonhosted.org/packages/da/c9/ec39870f0b330d58486001dd8e532c6b9a905f5765f58a6f8204926b4a93/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88", size = 145550 }, - { url = "https://files.pythonhosted.org/packages/75/8f/d186ab99e40e0ed9f82f033d6e49001701c81244d01905dd4a6924191a30/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1", size = 163721 }, - { url = "https://files.pythonhosted.org/packages/96/b1/6047663b9744df26a7e479ac1e77af7134b1fcf9026243bb48ee2d18810f/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf", size = 152127 }, - { url = "https://files.pythonhosted.org/packages/59/78/e5a6eac9179f24f704d1be67d08704c3c6ab9f00963963524be27c18ed87/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318", size = 161175 }, - { url = "https://files.pythonhosted.org/packages/e5/43/0e626e42d54dd2f8dd6fc5e1c5ff00f05fbca17cb699bedead2cae69c62f/charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c", size = 155375 }, - { url = "https://files.pythonhosted.org/packages/e9/91/d9615bf2e06f35e4997616ff31248c3657ed649c5ab9d35ea12fce54e380/charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505", size = 99692 }, - { url = "https://files.pythonhosted.org/packages/d1/a9/6c040053909d9d1ef4fcab45fddec083aedc9052c10078339b47c8573ea8/charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966", size = 107192 }, - { url = "https://files.pythonhosted.org/packages/f0/c6/4fa536b2c0cd3edfb7ccf8469fa0f363ea67b7213a842b90909ca33dd851/charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50", size = 100220 }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402 }, +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/e9/91/d9615bf2e06f35e4997616ff31248c3657ed649c5ab9d35ea12fce54e380/charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505", size = 99692, upload-time = "2025-10-14T04:42:28.425Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a9/6c040053909d9d1ef4fcab45fddec083aedc9052c10078339b47c8573ea8/charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966", size = 107192, upload-time = "2025-10-14T04:42:29.482Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c6/4fa536b2c0cd3edfb7ccf8469fa0f363ea67b7213a842b90909ca33dd851/charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50", size = 100220, upload-time = "2025-10-14T04:42:30.632Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, -] - -[[package]] -name = "cryptography" -version = "46.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667 }, - { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807 }, - { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615 }, - { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800 }, - { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707 }, - { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541 }, - { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464 }, - { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838 }, - { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596 }, - { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782 }, - { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381 }, - { url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728 }, - { url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078 }, - { url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460 }, - { url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237 }, - { url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344 }, - { url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564 }, - { url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415 }, - { url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457 }, - { url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074 }, - { url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569 }, - { url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941 }, - { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089 }, - { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029 }, - { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222 }, - { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280 }, - { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958 }, - { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714 }, - { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970 }, - { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236 }, - { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642 }, - { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126 }, - { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573 }, - { url = "https://files.pythonhosted.org/packages/da/38/f59940ec4ee91e93d3311f7532671a5cef5570eb04a144bf203b58552d11/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b", size = 4243992 }, - { url = "https://files.pythonhosted.org/packages/b0/0c/35b3d92ddebfdfda76bb485738306545817253d0a3ded0bfe80ef8e67aa5/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb", size = 4409944 }, - { url = "https://files.pythonhosted.org/packages/99/55/181022996c4063fc0e7666a47049a1ca705abb9c8a13830f074edb347495/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717", size = 4242957 }, - { url = "https://files.pythonhosted.org/packages/ba/af/72cd6ef29f9c5f731251acadaeb821559fe25f10852f44a63374c9ca08c1/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9", size = 4409447 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "cyminhook" version = "0.1.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3d/78/3d8f1505964f448c19bf0fc238a536d04e7dbcd28c050f464fb4d0e8f7db/cyminhook-0.1.5.tar.gz", hash = "sha256:3764af8a1a256d0359d175324099c239b7783a75b8ec40da3264f26a7b59167f", size = 46835 } +sdist = { url = "https://files.pythonhosted.org/packages/3d/78/3d8f1505964f448c19bf0fc238a536d04e7dbcd28c050f464fb4d0e8f7db/cyminhook-0.1.5.tar.gz", hash = "sha256:3764af8a1a256d0359d175324099c239b7783a75b8ec40da3264f26a7b59167f", size = 46835, upload-time = "2024-11-02T10:56:35.465Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/6b/fab4e01bf1f5423977f7a894dd5af652e77f04dd302474c788c6b9169df4/cyminhook-0.1.5-cp310-cp310-win32.whl", hash = "sha256:6f17444ecd5e5890af0a29ded6b4fa27e51b725564e22df59e2d21efdbd2f069", size = 58287 }, - { url = "https://files.pythonhosted.org/packages/e8/de/5f94d21cae2273d403ab511bbe14335adedae632aeff49a9fbdeba9bdb59/cyminhook-0.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:8e70a29b0d7ad896c1b3443c99a8c5f6f3d6e4f56af42f3a509c931c106dd6b1", size = 68782 }, - { url = "https://files.pythonhosted.org/packages/f4/c6/92fe41988faff66cca437cd13a2efc2de318653ea2ec1cbbc02a2f2221bb/cyminhook-0.1.5-cp311-cp311-win32.whl", hash = "sha256:681888e3266374b19ad4fb5ffcd86d904035dfa827fd689c423b5c72b7c05ad8", size = 58189 }, - { url = "https://files.pythonhosted.org/packages/91/17/808a0f1fc446a0f2f4d158e54cf6c8a725492b49eb409e77680f3f91d795/cyminhook-0.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:f82a7e4a36071ea09967ccec7a8f37a30aa709fee19e3c5bb6f0dd66be2ea06d", size = 68905 }, - { url = "https://files.pythonhosted.org/packages/1c/5c/6ca47c22aa5853c60f71c7b3f9b389732646d7aea853fb3dc46fa40b4056/cyminhook-0.1.5-cp312-cp312-win32.whl", hash = "sha256:a1fd7e30e072a2501ca5837f301ab7c0c1a9b176dd067c7c02c7883b676f5899", size = 57216 }, - { url = "https://files.pythonhosted.org/packages/b1/79/362fdf90ad968fd6d7c79c19160996d47f06741f44e8dcb9ac8887fcab0c/cyminhook-0.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:e5a1ec2a3c4455416f46b1e691e01d17b986c8c2ebc8ded3f24fd7abe5ae0ca4", size = 67731 }, - { url = "https://files.pythonhosted.org/packages/7f/94/614701eff1cfdad106aa1ce6ce21aebb18dba1b486088ee5cbc1162b5254/cyminhook-0.1.5-cp313-cp313-win32.whl", hash = "sha256:a3fea767936e162d670b7068f76a339304b6a22c6e1e1776176defa427af0c31", size = 56466 }, - { url = "https://files.pythonhosted.org/packages/28/f3/9ef7f482a31f7eb6cba83f5e1c91165edb1f10ef229b13b79bbdfddc6e01/cyminhook-0.1.5-cp313-cp313-win_amd64.whl", hash = "sha256:e270ee9fa94f35da6232bca625762b7ce3c9c18a431af8519f5fa151bdf29e52", size = 67001 }, - { url = "https://files.pythonhosted.org/packages/8a/47/41d3b6c7fa97cf36ae9f6a560b321cc4787b39e393d031179840f79eca34/cyminhook-0.1.5-cp39-cp39-win32.whl", hash = "sha256:331e95b6e630d79d66ef6cac36c30165806e6b084657fa4646336b53b0a5eb27", size = 58795 }, - { url = "https://files.pythonhosted.org/packages/0c/68/636540403f4ef340df74edd1b5457c82a7fa227f531b67388661d1116589/cyminhook-0.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:52799fbd020e60b53444c098c79682d779f2f8e473daba5e8e08b06bd42be33a", size = 69402 }, + { url = "https://files.pythonhosted.org/packages/69/6b/fab4e01bf1f5423977f7a894dd5af652e77f04dd302474c788c6b9169df4/cyminhook-0.1.5-cp310-cp310-win32.whl", hash = "sha256:6f17444ecd5e5890af0a29ded6b4fa27e51b725564e22df59e2d21efdbd2f069", size = 58287, upload-time = "2024-11-02T10:56:13.844Z" }, + { url = "https://files.pythonhosted.org/packages/e8/de/5f94d21cae2273d403ab511bbe14335adedae632aeff49a9fbdeba9bdb59/cyminhook-0.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:8e70a29b0d7ad896c1b3443c99a8c5f6f3d6e4f56af42f3a509c931c106dd6b1", size = 68782, upload-time = "2024-11-02T10:56:15.532Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c6/92fe41988faff66cca437cd13a2efc2de318653ea2ec1cbbc02a2f2221bb/cyminhook-0.1.5-cp311-cp311-win32.whl", hash = "sha256:681888e3266374b19ad4fb5ffcd86d904035dfa827fd689c423b5c72b7c05ad8", size = 58189, upload-time = "2024-11-02T10:56:17.023Z" }, + { url = "https://files.pythonhosted.org/packages/91/17/808a0f1fc446a0f2f4d158e54cf6c8a725492b49eb409e77680f3f91d795/cyminhook-0.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:f82a7e4a36071ea09967ccec7a8f37a30aa709fee19e3c5bb6f0dd66be2ea06d", size = 68905, upload-time = "2024-11-02T10:56:18.128Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5c/6ca47c22aa5853c60f71c7b3f9b389732646d7aea853fb3dc46fa40b4056/cyminhook-0.1.5-cp312-cp312-win32.whl", hash = "sha256:a1fd7e30e072a2501ca5837f301ab7c0c1a9b176dd067c7c02c7883b676f5899", size = 57216, upload-time = "2024-11-02T10:56:19.59Z" }, + { url = "https://files.pythonhosted.org/packages/b1/79/362fdf90ad968fd6d7c79c19160996d47f06741f44e8dcb9ac8887fcab0c/cyminhook-0.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:e5a1ec2a3c4455416f46b1e691e01d17b986c8c2ebc8ded3f24fd7abe5ae0ca4", size = 67731, upload-time = "2024-11-02T10:56:20.544Z" }, + { url = "https://files.pythonhosted.org/packages/7f/94/614701eff1cfdad106aa1ce6ce21aebb18dba1b486088ee5cbc1162b5254/cyminhook-0.1.5-cp313-cp313-win32.whl", hash = "sha256:a3fea767936e162d670b7068f76a339304b6a22c6e1e1776176defa427af0c31", size = 56466, upload-time = "2024-11-02T10:56:21.537Z" }, + { url = "https://files.pythonhosted.org/packages/28/f3/9ef7f482a31f7eb6cba83f5e1c91165edb1f10ef229b13b79bbdfddc6e01/cyminhook-0.1.5-cp313-cp313-win_amd64.whl", hash = "sha256:e270ee9fa94f35da6232bca625762b7ce3c9c18a431af8519f5fa151bdf29e52", size = 67001, upload-time = "2024-11-02T10:56:23.487Z" }, + { url = "https://files.pythonhosted.org/packages/8a/47/41d3b6c7fa97cf36ae9f6a560b321cc4787b39e393d031179840f79eca34/cyminhook-0.1.5-cp39-cp39-win32.whl", hash = "sha256:331e95b6e630d79d66ef6cac36c30165806e6b084657fa4646336b53b0a5eb27", size = 58795, upload-time = "2024-11-02T10:56:33.176Z" }, + { url = "https://files.pythonhosted.org/packages/0c/68/636540403f4ef340df74edd1b5457c82a7fa227f531b67388661d1116589/cyminhook-0.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:52799fbd020e60b53444c098c79682d779f2f8e473daba5e8e08b06bd42be33a", size = 69402, upload-time = "2024-11-02T10:56:34.408Z" }, ] [[package]] name = "dearpygui" -version = "2.1.0" +version = "2.1.1" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/26/93db234a69d01ae84ed61abb991a3da5555410abdf38d5932fb7ed594e12/dearpygui-2.1.0-cp310-cp310-macosx_10_6_x86_64.whl", hash = "sha256:374d4c605affdf8a49eef4cf434f76e17df374590e51745b62c67025d1d41ec3", size = 2101011 }, - { url = "https://files.pythonhosted.org/packages/ef/13/0301fd7fd3ac01ed23003873681c835f18d14267953c54ff6889cb1d0212/dearpygui-2.1.0-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:074985fa9d1622edda89c7f113d7a25ae5543f2e3f684bba3601e688c873936f", size = 1874384 }, - { url = "https://files.pythonhosted.org/packages/5d/54/5e53d99a1d352f387bd18250d8bcfe9e60594eefc062f246f61810c1bd80/dearpygui-2.1.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:49808389f1d1acfb4f5cbd9f1b1ec188fbcd2d828414094864f7035e27158db2", size = 2636636 }, - { url = "https://files.pythonhosted.org/packages/34/44/2508c4ba08b28cc9e827a04ae00fc73dbe6820531241eb43ba28f370372b/dearpygui-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:792c1cd34dd0d03bf15838cc1e66ad01282c672ef0d2b9981368b6dcd37e67d3", size = 1810184 }, - { url = "https://files.pythonhosted.org/packages/92/fe/66293fc40254a29f060efd3398f2b1001ed79263ae1837db9ec42caa8f1d/dearpygui-2.1.0-cp311-cp311-macosx_10_6_x86_64.whl", hash = "sha256:03e5dc0b3dd2f7965e50bbe41f3316a814408064b582586de994d93afedb125c", size = 2100924 }, - { url = "https://files.pythonhosted.org/packages/c4/4d/9fa1c3156ba7bbf4dc89e2e322998752fccfdc3575923a98dd6a4da48911/dearpygui-2.1.0-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b5b37710c3fa135c48e2347f39ecd1f415146e86db5d404707a0bf72d16bd304", size = 1874441 }, - { url = "https://files.pythonhosted.org/packages/5a/3c/af5673b50699e1734296a0b5bcef39bb6989175b001ad1f9b0e7888ad90d/dearpygui-2.1.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:b0cfd7ac7eaa090fc22d6aa60fc4b527fc631cee10c348e4d8df92bb39af03d2", size = 2636574 }, - { url = "https://files.pythonhosted.org/packages/7f/db/ed4db0bb3d88e7a8c405472641419086bef9632c4b8b0489dc0c43519c0d/dearpygui-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:a9af54f96d3ef30c5db9d12cdf3266f005507396fb0da2e12e6b22b662161070", size = 1810266 }, - { url = "https://files.pythonhosted.org/packages/55/9d/20a55786cc9d9266395544463d5db3be3528f7d5244bc52ba760de5dcc2d/dearpygui-2.1.0-cp312-cp312-macosx_10_6_x86_64.whl", hash = "sha256:1270ceb9cdb8ecc047c42477ccaa075b7864b314a5d09191f9280a24c8aa90a0", size = 2101499 }, - { url = "https://files.pythonhosted.org/packages/a7/b2/39d820796b7ac4d0ebf93306c1f031bf3516b159408286f1fb495c6babeb/dearpygui-2.1.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:ce9969eb62057b9d4c88a8baaed13b5fbe4058caa9faf5b19fec89da75aece3d", size = 1874385 }, - { url = "https://files.pythonhosted.org/packages/fc/26/c29998ffeb5eb8d638f307851e51a81c8bd4aeaf89ad660fc67ea4d1ac1a/dearpygui-2.1.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:a3ca8cf788db63ef7e2e8d6f277631b607d548b37606f080ca1b42b1f0a9b183", size = 2635863 }, - { url = "https://files.pythonhosted.org/packages/28/9c/3ab33927f1d8c839c5b7033a33d44fc9f0aeb00c264fc9772cb7555a03c4/dearpygui-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:43f0e4db9402f44fc3683a1f5c703564819de18cc15a042de7f1ed1c8cb5d148", size = 1810460 }, - { url = "https://files.pythonhosted.org/packages/8b/84/4efef98dc19140155c3bbc173473f8ca01ec0b10c5175598acd93b82d8a9/dearpygui-2.1.0-cp313-cp313-macosx_10_6_x86_64.whl", hash = "sha256:5c32402f75f87ca23faedc626975f546098bcbc71e1dc8b22ddc6054f4c800f1", size = 2101488 }, - { url = "https://files.pythonhosted.org/packages/74/c6/ad8054a70069f5777639c1376892b946fa009ad0ed7b1009f75428458367/dearpygui-2.1.0-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:f776c4c81195b2e7248305db21c7d429881d306a9557a8a4e4f002eb477cd247", size = 1874341 }, - { url = "https://files.pythonhosted.org/packages/2c/d3/8dcfc6df643834706b5ee72f169121db519aab4aa270ba9de41908013ee3/dearpygui-2.1.0-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:3900ce7f68e8967dc937adbd9088a7c294fd676fa878d9905e4f25b0d76232ae", size = 2636147 }, - { url = "https://files.pythonhosted.org/packages/7a/c7/7d9f839516cb30a5f55c6a1055fa518d986dae841ae2ecccdea9cea266b1/dearpygui-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:205def95d6862e80ee908d080f5a8065f30421d87ddfa88a3607a5c8e253a9bb", size = 1810439 }, - { url = "https://files.pythonhosted.org/packages/5a/d2/ac6fb941f7206c2f0cc2bb008647d17eadf04f636f8e59a85e09701b913d/dearpygui-2.1.0-cp39-cp39-macosx_10_6_x86_64.whl", hash = "sha256:0d228a4934c642fb01f1602b71b11f54e8b739ee3902a98fd71618ddca088213", size = 2101015 }, - { url = "https://files.pythonhosted.org/packages/55/82/86ee6385556783f5e3e6279888c21ea31e226c347ea8ffb4403a79f79660/dearpygui-2.1.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4e4c2df52ffee0810652bdb165972dad2ca8d89c65ea37d69d6157576adba2d7", size = 2636538 }, - { url = "https://files.pythonhosted.org/packages/26/2f/6cf64bfc46d0aac54273be8182a8ac185cea9028a323b01d43a27c5ee33e/dearpygui-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:c337fb8b27f6fbdae89fdb5f36a377e09f955642c025005b1be9b96eef73df3b", size = 1810293 }, + { url = "https://files.pythonhosted.org/packages/ad/ba/169f29ceec2a404e66577a0ed408785a7cf2e75748205f80d24c48dc5ad5/dearpygui-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5bf454047f7dc7c77c98721fd98aaaf276fa82f954699c95dfe80916a7060136", size = 1808682, upload-time = "2025-11-14T14:47:23.635Z" }, + { url = "https://files.pythonhosted.org/packages/f3/b5/2ec29d9b47c30ecee96c6f6a0cf229f2898ce3e133a1a0e5b0cd5db82e6b/dearpygui-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:6141184ff59fa4b8df1b81b077cb8cc2b2ef9c0ff92e69c6063062b6d251f426", size = 1808736, upload-time = "2025-11-14T14:47:26.46Z" }, + { url = "https://files.pythonhosted.org/packages/5e/58/d01538556103d544a5a5b4cbcb00646ff92d8a97f0a6283a56bede4307c8/dearpygui-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f2291313d2035f8a4108e13f60d8c1a0e7c19af7554a7739a3fd15b3d5af8f7", size = 1808971, upload-time = "2025-11-14T14:47:28.15Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3a/5a71ab350e580cf88e1669f2d27bdc698df7bcda665edc459a9fe217234d/dearpygui-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:0901c6ba9c717599df9469576184ca851de6cde242b2d9f9ab10bc35a7219656", size = 1808916, upload-time = "2025-11-14T14:47:30.363Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/1780c1165c435afe4b35aa664ae48881101bdb32476efeae5588d520bcb2/dearpygui-2.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:7c719adbc382f688c84c576e8d752cfe861b41b9d83ed1fd065e20944c11afbf", size = 1866074, upload-time = "2025-11-14T14:47:31.897Z" }, + { url = "https://files.pythonhosted.org/packages/4c/82/7adbcc6842c738ee5bdf2e6a4ce93cb3db64b4757ef40af1eb735d13299a/dearpygui-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:91b0e81d92246e1d2ebd2e95ba06f88edbfebe4b39cee581f7da239368953a67", size = 1808743, upload-time = "2025-11-14T14:47:35.103Z" }, ] [[package]] name = "docutils" version = "0.21.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444 } +resolution-markers = [ + "python_full_version == '3.10.*' and sys_platform == 'win32'", + "python_full_version < '3.10' and sys_platform == 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444, upload-time = "2024-04-23T18:57:18.24Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, + { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408, upload-time = "2024-04-23T18:57:14.835Z" }, ] [[package]] -name = "esbonio" -version = "0.16.5" +name = "docutils" +version = "0.22.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version >= '3.11' and sys_platform == 'win32'", ] -dependencies = [ - { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pygls", version = "1.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyspellchecker", marker = "python_full_version < '3.10'" }, - { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/67/c5/0c89af3da1f3133b53f3ba8ae677ed4d4ddff33eec50dbf32c95e01ed2d2/esbonio-0.16.5.tar.gz", hash = "sha256:acab2e16c6cf8f7232fb04e0d48514ce50566516b1f6fcf669ccf2f247e8b10f", size = 145347 } +sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750, upload-time = "2025-12-18T19:00:26.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/ca/a0296fca375d4324f471bb34d2ce8a585b48fb9eae21cf9abe00913eb899/esbonio-0.16.5-py3-none-any.whl", hash = "sha256:04ba926e3603f7b1fde1abc690b47afd60749b64b1029b6bce8e1de0bb284921", size = 170830 }, + { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, ] [[package]] name = "esbonio" -version = "1.0.0" +version = "0.16.5" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "aiosqlite", marker = "python_full_version >= '3.10'" }, - { name = "docutils", marker = "python_full_version >= '3.10'" }, - { name = "platformdirs", version = "4.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pygls", version = "2.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "tomli", marker = "python_full_version == '3.10.*'" }, - { name = "websockets", marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/85/03b0944176b7eca5174959dc6f6606ddd87e054a91e8174a593eb8723e06/esbonio-1.0.0.tar.gz", hash = "sha256:9d1c3d3e074b3f7fe285147cd713fbda0290472864756772020aebf19f5935c0", size = 123653 } + { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pygls", version = "1.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pyspellchecker", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/c5/0c89af3da1f3133b53f3ba8ae677ed4d4ddff33eec50dbf32c95e01ed2d2/esbonio-0.16.5.tar.gz", hash = "sha256:acab2e16c6cf8f7232fb04e0d48514ce50566516b1f6fcf669ccf2f247e8b10f", size = 145347, upload-time = "2024-09-23T18:57:57.823Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/73/a6/e1368fc807e7abe7ca7ef224e9c13f96be7c943be364e6ff869e96d7e633/esbonio-1.0.0-py3-none-any.whl", hash = "sha256:049aa76d5d637f0f79c86d690de4b74bc2be302c68425c4fe6c83b241ac0634c", size = 118424 }, + { url = "https://files.pythonhosted.org/packages/d8/ca/a0296fca375d4324f471bb34d2ce8a585b48fb9eae21cf9abe00913eb899/esbonio-0.16.5-py3-none-any.whl", hash = "sha256:04ba926e3603f7b1fde1abc690b47afd60749b64b1029b6bce8e1de0bb284921", size = 170830, upload-time = "2024-09-23T18:57:56.568Z" }, ] [[package]] -name = "ewmhlib" -version = "0.2" +name = "esbonio" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", +] dependencies = [ - { name = "python-xlib", marker = "sys_platform == 'linux'" }, - { name = "typing-extensions" }, + { name = "aiosqlite", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "platformdirs", version = "4.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pygls", version = "2.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "websockets", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, ] +sdist = { url = "https://files.pythonhosted.org/packages/b5/85/03b0944176b7eca5174959dc6f6606ddd87e054a91e8174a593eb8723e06/esbonio-1.0.0.tar.gz", hash = "sha256:9d1c3d3e074b3f7fe285147cd713fbda0290472864756772020aebf19f5935c0", size = 123653, upload-time = "2025-10-28T20:03:15.425Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/3a/46ca34abf0725a754bc44ef474ad34aedcc3ea23b052d97b18b76715a6a9/EWMHlib-0.2-py3-none-any.whl", hash = "sha256:f5b07d8cfd4c7734462ee744c32d490f2f3233fa7ab354240069344208d2f6f5", size = 46657 }, + { url = "https://files.pythonhosted.org/packages/73/a6/e1368fc807e7abe7ca7ef224e9c13f96be7c943be364e6ff869e96d7e633/esbonio-1.0.0-py3-none-any.whl", hash = "sha256:049aa76d5d637f0f79c86d690de4b74bc2be302c68425c4fe6c83b241ac0634c", size = 118424, upload-time = "2025-10-28T20:03:13.855Z" }, ] [[package]] name = "exceptiongroup" -version = "1.3.0" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.13' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749 } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674 }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] name = "iced-x86" version = "1.21.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/7a/0838fc746873d8b46da350fd3d6caf07f16a1c049712c72838d2c26de681/iced-x86-1.21.0.tar.gz", hash = "sha256:1248b00647dd83b911214895eafbeb2642caa3007de2796ffad1c69aa6d8cd87", size = 231145 } +sdist = { url = "https://files.pythonhosted.org/packages/53/7a/0838fc746873d8b46da350fd3d6caf07f16a1c049712c72838d2c26de681/iced-x86-1.21.0.tar.gz", hash = "sha256:1248b00647dd83b911214895eafbeb2642caa3007de2796ffad1c69aa6d8cd87", size = 231145, upload-time = "2024-01-20T16:21:49.837Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/68/d5439a9ee27890c7c54275289197c77e4f3ce4fa5c2d3ac0fe0b39fd057f/iced_x86-1.21.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bf4ff01b891dac585f40ee86ba482becdf7208d33c788f590dbff19409a02a41", size = 905048 }, - { url = "https://files.pythonhosted.org/packages/5d/08/054cac5c4f435a243e423323783992c78c7c2f22cf2269fcca145b8423af/iced_x86-1.21.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:489789377bfc1fe432bd2a8a5780c9f3e7c35be2e6133b0de5432cd901cad32c", size = 949386 }, - { url = "https://files.pythonhosted.org/packages/f5/79/32adda497116cc7d1034a1fbce1a0ccbb39b466b55b57f67235744f2ff9b/iced_x86-1.21.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:45edcd725f2375c873f20071e4ec41085b12b66278c0b0a4e5a36f9c84cfeefc", size = 957119 }, - { url = "https://files.pythonhosted.org/packages/dc/29/710748a217e5cb696d3b51ad5128a8747c3c681e17fe62351962907576b3/iced_x86-1.21.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:091bdc151115bd84741f6a4597a216c8a553dda8b5b5eeccbba1ebec0cda0ffd", size = 982742 }, - { url = "https://files.pythonhosted.org/packages/f0/d6/5fc671564a1d0116db978a6d38bd49d1a2d4b791569cb160d72b98c8d0cd/iced_x86-1.21.0-cp38-abi3-win32.whl", hash = "sha256:75cc281aafdccbb81bdf7e159e64540808e827db6aa167c38ce6b1615fb9da8e", size = 844783 }, - { url = "https://files.pythonhosted.org/packages/04/9e/ab21c70472b605bbcaca5a181cfda56b0750b061f4a946192888142ec37c/iced_x86-1.21.0-cp38-abi3-win_amd64.whl", hash = "sha256:04e04a8cc49ca7d89448fb78e3bab4ae364cf1fc888c996540a791c9999077c1", size = 886006 }, + { url = "https://files.pythonhosted.org/packages/f0/d6/5fc671564a1d0116db978a6d38bd49d1a2d4b791569cb160d72b98c8d0cd/iced_x86-1.21.0-cp38-abi3-win32.whl", hash = "sha256:75cc281aafdccbb81bdf7e159e64540808e827db6aa167c38ce6b1615fb9da8e", size = 844783, upload-time = "2024-01-20T16:21:43.394Z" }, + { url = "https://files.pythonhosted.org/packages/04/9e/ab21c70472b605bbcaca5a181cfda56b0750b061f4a946192888142ec37c/iced_x86-1.21.0-cp38-abi3-win_amd64.whl", hash = "sha256:04e04a8cc49ca7d89448fb78e3bab4ae364cf1fc888c996540a791c9999077c1", size = 886006, upload-time = "2024-01-20T16:21:44.715Z" }, ] [[package]] @@ -478,41 +278,41 @@ name = "id" version = "1.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "requests" }, + { name = "requests", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/22/11/102da08f88412d875fa2f1a9a469ff7ad4c874b0ca6fed0048fe385bdb3d/id-1.5.0.tar.gz", hash = "sha256:292cb8a49eacbbdbce97244f47a97b4c62540169c976552e497fd57df0734c1d", size = 15237 } +sdist = { url = "https://files.pythonhosted.org/packages/22/11/102da08f88412d875fa2f1a9a469ff7ad4c874b0ca6fed0048fe385bdb3d/id-1.5.0.tar.gz", hash = "sha256:292cb8a49eacbbdbce97244f47a97b4c62540169c976552e497fd57df0734c1d", size = 15237, upload-time = "2024-12-04T19:53:05.575Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/cb/18326d2d89ad3b0dd143da971e77afd1e6ca6674f1b1c3df4b6bec6279fc/id-1.5.0-py3-none-any.whl", hash = "sha256:f1434e1cef91f2cbb8a4ec64663d5a23b9ed43ef44c4c957d02583d61714c658", size = 13611 }, + { url = "https://files.pythonhosted.org/packages/9f/cb/18326d2d89ad3b0dd143da971e77afd1e6ca6674f1b1c3df4b6bec6279fc/id-1.5.0-py3-none-any.whl", hash = "sha256:f1434e1cef91f2cbb8a4ec64663d5a23b9ed43ef44c4c957d02583d61714c658", size = 13611, upload-time = "2024-12-04T19:53:03.02Z" }, ] [[package]] name = "idna" version = "3.11" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582 } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008 }, + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] name = "imagesize" version = "1.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026, upload-time = "2022-07-01T12:21:05.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769 }, + { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769, upload-time = "2022-07-01T12:21:02.467Z" }, ] [[package]] name = "importlib-metadata" -version = "8.7.0" +version = "8.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp" }, + { name = "zipp", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656 }, + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, ] [[package]] @@ -520,11 +320,11 @@ name = "iniconfig" version = "2.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793 } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050 }, + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] [[package]] @@ -532,12 +332,12 @@ name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] @@ -545,44 +345,35 @@ name = "jaraco-classes" version = "3.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "more-itertools" }, + { name = "more-itertools", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780 } +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777 }, + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, ] [[package]] name = "jaraco-context" -version = "6.0.1" +version = "6.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "backports-tarfile", marker = "python_full_version < '3.12'" }, + { name = "backports-tarfile", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912 } +sdist = { url = "https://files.pythonhosted.org/packages/8d/7d/41acf8e22d791bde812cb6c2c36128bb932ed8ae066bcb5e39cb198e8253/jaraco_context-6.0.2.tar.gz", hash = "sha256:953ae8dddb57b1d791bf72ea1009b32088840a7dd19b9ba16443f62be919ee57", size = 14994, upload-time = "2025-12-24T19:21:35.784Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825 }, + { url = "https://files.pythonhosted.org/packages/c7/0c/1e0096ced9c55f9c6c6655446798df74165780375d3f5ab5f33751e087ae/jaraco_context-6.0.2-py3-none-any.whl", hash = "sha256:55fc21af4b4f9ca94aa643b6ee7fe13b1e4c01abf3aeb98ca4ad9c80b741c786", size = 6988, upload-time = "2025-12-24T19:21:34.557Z" }, ] [[package]] name = "jaraco-functools" -version = "4.3.0" +version = "4.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "more-itertools" }, + { name = "more-itertools", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755 } +sdist = { url = "https://files.pythonhosted.org/packages/0f/27/056e0638a86749374d6f57d0b0db39f29509cce9313cf91bdc0ac4d91084/jaraco_functools-4.4.0.tar.gz", hash = "sha256:da21933b0417b89515562656547a77b4931f98176eb173644c0d35032a33d6bb", size = 19943, upload-time = "2025-12-21T09:29:43.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408 }, -] - -[[package]] -name = "jeepney" -version = "0.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010 }, + { url = "https://files.pythonhosted.org/packages/fd/c4/813bb09f0985cb21e959f21f2464169eca882656849adf727ac7bb7e1767/jaraco_functools-4.4.0-py3-none-any.whl", hash = "sha256:9eec1e36f45c818d9bf307c8948eb03b2b56cd44087b3cdc989abca1f20b9176", size = 10481, upload-time = "2025-12-21T09:29:42.27Z" }, ] [[package]] @@ -590,43 +381,36 @@ name = "jinja2" version = "3.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markupsafe" }, + { name = "markupsafe", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "keyboard" version = "0.13.5" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyobjc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'darwin'" }, - { name = "pyobjc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'darwin'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/79/75/c969f2258e908c39aadfc57d1cb78247dc49e6d36371bb3a48c194640c01/keyboard-0.13.5.zip", hash = "sha256:63ed83305955939ca5c9a73755e5cc43e8242263f5ad5fd3bb7e0b032f3d308b", size = 71798 } +sdist = { url = "https://files.pythonhosted.org/packages/79/75/c969f2258e908c39aadfc57d1cb78247dc49e6d36371bb3a48c194640c01/keyboard-0.13.5.zip", hash = "sha256:63ed83305955939ca5c9a73755e5cc43e8242263f5ad5fd3bb7e0b032f3d308b", size = 71798, upload-time = "2020-03-23T21:47:06.614Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/88/287159903c5b3fc6d47b651c7ab65a54dcf9c9916de546188a7f62870d6d/keyboard-0.13.5-py3-none-any.whl", hash = "sha256:8e9c2422f1217e0bd84489b9ecd361027cc78415828f4fe4f88dd4acd587947b", size = 58098 }, + { url = "https://files.pythonhosted.org/packages/55/88/287159903c5b3fc6d47b651c7ab65a54dcf9c9916de546188a7f62870d6d/keyboard-0.13.5-py3-none-any.whl", hash = "sha256:8e9c2422f1217e0bd84489b9ecd361027cc78415828f4fe4f88dd4acd587947b", size = 58098, upload-time = "2020-03-23T21:47:05.023Z" }, ] [[package]] name = "keyring" -version = "25.6.0" +version = "25.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, - { name = "jaraco-classes" }, - { name = "jaraco-context" }, - { name = "jaraco-functools" }, - { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.12' and sys_platform == 'win32'" }, + { name = "jaraco-classes", marker = "sys_platform == 'win32'" }, + { name = "jaraco-context", marker = "sys_platform == 'win32'" }, + { name = "jaraco-functools", marker = "sys_platform == 'win32'" }, { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, - { name = "secretstorage", version = "3.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'linux'" }, - { name = "secretstorage", version = "3.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750 } +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085 }, + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" }, ] [[package]] @@ -634,15 +418,15 @@ name = "lsprotocol" version = "2023.0.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "attrs", marker = "python_full_version < '3.10'" }, - { name = "cattrs", marker = "python_full_version < '3.10'" }, + { name = "attrs", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "cattrs", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/f6/6e80484ec078d0b50699ceb1833597b792a6c695f90c645fbaf54b947e6f/lsprotocol-2023.0.1.tar.gz", hash = "sha256:cc5c15130d2403c18b734304339e51242d3018a05c4f7d0f198ad6e0cd21861d", size = 69434 } +sdist = { url = "https://files.pythonhosted.org/packages/9d/f6/6e80484ec078d0b50699ceb1833597b792a6c695f90c645fbaf54b947e6f/lsprotocol-2023.0.1.tar.gz", hash = "sha256:cc5c15130d2403c18b734304339e51242d3018a05c4f7d0f198ad6e0cd21861d", size = 69434, upload-time = "2024-01-09T17:21:12.625Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/37/2351e48cb3309673492d3a8c59d407b75fb6630e560eb27ecd4da03adc9a/lsprotocol-2023.0.1-py3-none-any.whl", hash = "sha256:c75223c9e4af2f24272b14c6375787438279369236cd568f596d4951052a60f2", size = 70826 }, + { url = "https://files.pythonhosted.org/packages/8d/37/2351e48cb3309673492d3a8c59d407b75fb6630e560eb27ecd4da03adc9a/lsprotocol-2023.0.1-py3-none-any.whl", hash = "sha256:c75223c9e4af2f24272b14c6375787438279369236cd568f596d4951052a60f2", size = 70826, upload-time = "2024-01-09T17:21:14.491Z" }, ] [[package]] @@ -650,16 +434,16 @@ name = "lsprotocol" version = "2025.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] dependencies = [ - { name = "attrs", marker = "python_full_version >= '3.10'" }, - { name = "cattrs", marker = "python_full_version >= '3.10'" }, + { name = "attrs", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "cattrs", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/26/67b84e6ec1402f0e6764ef3d2a0aaf9a79522cc1d37738f4e5bb0b21521a/lsprotocol-2025.0.0.tar.gz", hash = "sha256:e879da2b9301e82cfc3e60d805630487ac2f7ab17492f4f5ba5aaba94fe56c29", size = 74896 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/26/67b84e6ec1402f0e6764ef3d2a0aaf9a79522cc1d37738f4e5bb0b21521a/lsprotocol-2025.0.0.tar.gz", hash = "sha256:e879da2b9301e82cfc3e60d805630487ac2f7ab17492f4f5ba5aaba94fe56c29", size = 74896, upload-time = "2025-06-17T21:30:18.156Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/f0/92f2d609d6642b5f30cb50a885d2bf1483301c69d5786286500d15651ef2/lsprotocol-2025.0.0-py3-none-any.whl", hash = "sha256:f9d78f25221f2a60eaa4a96d3b4ffae011b107537facee61d3da3313880995c7", size = 76250 }, + { url = "https://files.pythonhosted.org/packages/7b/f0/92f2d609d6642b5f30cb50a885d2bf1483301c69d5786286500d15651ef2/lsprotocol-2025.0.0-py3-none-any.whl", hash = "sha256:f9d78f25221f2a60eaa4a96d3b4ffae011b107537facee61d3da3313880995c7", size = 76250, upload-time = "2025-06-17T21:30:19.455Z" }, ] [[package]] @@ -667,14 +451,14 @@ name = "markdown-it-py" version = "3.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version < '3.10'" }, + { name = "mdurl", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, ] [[package]] @@ -682,180 +466,97 @@ name = "markdown-it-py" version = "4.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version >= '3.10'" }, + { name = "mdurl", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070 } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321 }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631 }, - { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057 }, - { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050 }, - { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681 }, - { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705 }, - { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524 }, - { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282 }, - { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745 }, - { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571 }, - { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056 }, - { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932 }, - { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631 }, - { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058 }, - { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287 }, - { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940 }, - { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887 }, - { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692 }, - { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471 }, - { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923 }, - { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572 }, - { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077 }, - { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876 }, - { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615 }, - { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020 }, - { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332 }, - { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947 }, - { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962 }, - { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760 }, - { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529 }, - { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015 }, - { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540 }, - { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105 }, - { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906 }, - { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374 }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980 }, - { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990 }, - { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784 }, - { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588 }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041 }, - { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543 }, - { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113 }, - { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911 }, - { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658 }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066 }, - { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639 }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569 }, - { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284 }, - { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801 }, - { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769 }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642 }, - { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612 }, - { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200 }, - { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973 }, - { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619 }, - { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408 }, - { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005 }, - { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048 }, - { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821 }, - { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606 }, - { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043 }, - { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747 }, - { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341 }, - { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073 }, - { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661 }, - { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069 }, - { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670 }, - { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598 }, - { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261 }, - { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835 }, - { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733 }, - { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672 }, - { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819 }, - { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426 }, - { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146 }, - { url = "https://files.pythonhosted.org/packages/56/23/0d8c13a44bde9154821586520840643467aee574d8ce79a17da539ee7fed/markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", size = 11623 }, - { url = "https://files.pythonhosted.org/packages/fd/23/07a2cb9a8045d5f3f0890a8c3bc0859d7a47bfd9a560b563899bec7b72ed/markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", size = 12049 }, - { url = "https://files.pythonhosted.org/packages/bc/e4/6be85eb81503f8e11b61c0b6369b6e077dcf0a74adbd9ebf6b349937b4e9/markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", size = 21923 }, - { url = "https://files.pythonhosted.org/packages/6f/bc/4dc914ead3fe6ddaef035341fee0fc956949bbd27335b611829292b89ee2/markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", size = 20543 }, - { url = "https://files.pythonhosted.org/packages/89/6e/5fe81fbcfba4aef4093d5f856e5c774ec2057946052d18d168219b7bd9f9/markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", size = 20585 }, - { url = "https://files.pythonhosted.org/packages/f6/f6/e0e5a3d3ae9c4020f696cd055f940ef86b64fe88de26f3a0308b9d3d048c/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", size = 21387 }, - { url = "https://files.pythonhosted.org/packages/c8/25/651753ef4dea08ea790f4fbb65146a9a44a014986996ca40102e237aa49a/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", size = 20133 }, - { url = "https://files.pythonhosted.org/packages/dc/0a/c3cf2b4fef5f0426e8a6d7fce3cb966a17817c568ce59d76b92a233fdbec/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", size = 20588 }, - { url = "https://files.pythonhosted.org/packages/cd/1b/a7782984844bd519ad4ffdbebbba2671ec5d0ebbeac34736c15fb86399e8/markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", size = 14566 }, - { url = "https://files.pythonhosted.org/packages/18/1f/8d9c20e1c9440e215a44be5ab64359e207fcb4f675543f1cf9a2a7f648d0/markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", size = 15053 }, - { url = "https://files.pythonhosted.org/packages/4e/d3/fe08482b5cd995033556d45041a4f4e76e7f0521112a9c9991d40d39825f/markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", size = 13928 }, +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, + { url = "https://files.pythonhosted.org/packages/cd/1b/a7782984844bd519ad4ffdbebbba2671ec5d0ebbeac34736c15fb86399e8/markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", size = 14566, upload-time = "2025-09-27T18:37:37.09Z" }, + { url = "https://files.pythonhosted.org/packages/18/1f/8d9c20e1c9440e215a44be5ab64359e207fcb4f675543f1cf9a2a7f648d0/markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", size = 15053, upload-time = "2025-09-27T18:37:38.054Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d3/fe08482b5cd995033556d45041a4f4e76e7f0521112a9c9991d40d39825f/markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", size = 13928, upload-time = "2025-09-27T18:37:39.037Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431 } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667 }, + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] [[package]] name = "nh3" version = "0.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/a5/34c26015d3a434409f4d2a1cd8821a06c05238703f49283ffeb937bef093/nh3-0.3.2.tar.gz", hash = "sha256:f394759a06df8b685a4ebfb1874fb67a9cbfd58c64fc5ed587a663c0e63ec376", size = 19288 } +sdist = { url = "https://files.pythonhosted.org/packages/ca/a5/34c26015d3a434409f4d2a1cd8821a06c05238703f49283ffeb937bef093/nh3-0.3.2.tar.gz", hash = "sha256:f394759a06df8b685a4ebfb1874fb67a9cbfd58c64fc5ed587a663c0e63ec376", size = 19288, upload-time = "2025-10-30T11:17:45.948Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/01/a1eda067c0ba823e5e2bb033864ae4854549e49fb6f3407d2da949106bfb/nh3-0.3.2-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d18957a90806d943d141cc5e4a0fefa1d77cf0d7a156878bf9a66eed52c9cc7d", size = 1419839 }, - { url = "https://files.pythonhosted.org/packages/30/57/07826ff65d59e7e9cc789ef1dc405f660cabd7458a1864ab58aefa17411b/nh3-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45c953e57028c31d473d6b648552d9cab1efe20a42ad139d78e11d8f42a36130", size = 791183 }, - { url = "https://files.pythonhosted.org/packages/af/2f/e8a86f861ad83f3bb5455f596d5c802e34fcdb8c53a489083a70fd301333/nh3-0.3.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c9850041b77a9147d6bbd6dbbf13eeec7009eb60b44e83f07fcb2910075bf9b", size = 829127 }, - { url = "https://files.pythonhosted.org/packages/d8/97/77aef4daf0479754e8e90c7f8f48f3b7b8725a3b8c0df45f2258017a6895/nh3-0.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:403c11563e50b915d0efdb622866d1d9e4506bce590ef7da57789bf71dd148b5", size = 997131 }, - { url = "https://files.pythonhosted.org/packages/41/ee/fd8140e4df9d52143e89951dd0d797f5546004c6043285289fbbe3112293/nh3-0.3.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:0dca4365db62b2d71ff1620ee4f800c4729849906c5dd504ee1a7b2389558e31", size = 1068783 }, - { url = "https://files.pythonhosted.org/packages/87/64/bdd9631779e2d588b08391f7555828f352e7f6427889daf2fa424bfc90c9/nh3-0.3.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0fe7ee035dd7b2290715baf29cb27167dddd2ff70ea7d052c958dbd80d323c99", size = 994732 }, - { url = "https://files.pythonhosted.org/packages/79/66/90190033654f1f28ca98e3d76b8be1194505583f9426b0dcde782a3970a2/nh3-0.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a40202fd58e49129764f025bbaae77028e420f1d5b3c8e6f6fd3a6490d513868", size = 975997 }, - { url = "https://files.pythonhosted.org/packages/34/30/ebf8e2e8d71fdb5a5d5d8836207177aed1682df819cbde7f42f16898946c/nh3-0.3.2-cp314-cp314t-win32.whl", hash = "sha256:1f9ba555a797dbdcd844b89523f29cdc90973d8bd2e836ea6b962cf567cadd93", size = 583364 }, - { url = "https://files.pythonhosted.org/packages/94/ae/95c52b5a75da429f11ca8902c2128f64daafdc77758d370e4cc310ecda55/nh3-0.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:dce4248edc427c9b79261f3e6e2b3ecbdd9b88c267012168b4a7b3fc6fd41d13", size = 589982 }, - { url = "https://files.pythonhosted.org/packages/b4/bd/c7d862a4381b95f2469704de32c0ad419def0f4a84b7a138a79532238114/nh3-0.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:019ecbd007536b67fdf76fab411b648fb64e2257ca3262ec80c3425c24028c80", size = 577126 }, - { url = "https://files.pythonhosted.org/packages/b6/3e/f5a5cc2885c24be13e9b937441bd16a012ac34a657fe05e58927e8af8b7a/nh3-0.3.2-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7064ccf5ace75825bd7bf57859daaaf16ed28660c1c6b306b649a9eda4b54b1e", size = 1431980 }, - { url = "https://files.pythonhosted.org/packages/7f/f7/529a99324d7ef055de88b690858f4189379708abae92ace799365a797b7f/nh3-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8745454cdd28bbbc90861b80a0111a195b0e3961b9fa2e672be89eb199fa5d8", size = 820805 }, - { url = "https://files.pythonhosted.org/packages/3d/62/19b7c50ccd1fa7d0764822d2cea8f2a320f2fd77474c7a1805cb22cf69b0/nh3-0.3.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72d67c25a84579f4a432c065e8b4274e53b7cf1df8f792cf846abfe2c3090866", size = 803527 }, - { url = "https://files.pythonhosted.org/packages/4a/ca/f022273bab5440abff6302731a49410c5ef66b1a9502ba3fbb2df998d9ff/nh3-0.3.2-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:13398e676a14d6233f372c75f52d5ae74f98210172991f7a3142a736bd92b131", size = 1051674 }, - { url = "https://files.pythonhosted.org/packages/fa/f7/5728e3b32a11daf5bd21cf71d91c463f74305938bc3eb9e0ac1ce141646e/nh3-0.3.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:03d617e5c8aa7331bd2659c654e021caf9bba704b109e7b2b28b039a00949fe5", size = 1004737 }, - { url = "https://files.pythonhosted.org/packages/53/7f/f17e0dba0a99cee29e6cee6d4d52340ef9cb1f8a06946d3a01eb7ec2fb01/nh3-0.3.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f55c4d2d5a207e74eefe4d828067bbb01300e06e2a7436142f915c5928de07", size = 911745 }, - { url = "https://files.pythonhosted.org/packages/42/0f/c76bf3dba22c73c38e9b1113b017cf163f7696f50e003404ec5ecdb1e8a6/nh3-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bb18403f02b655a1bbe4e3a4696c2ae1d6ae8f5991f7cacb684b1ae27e6c9f7", size = 797184 }, - { url = "https://files.pythonhosted.org/packages/08/a1/73d8250f888fb0ddf1b119b139c382f8903d8bb0c5bd1f64afc7e38dad1d/nh3-0.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d66f41672eb4060cf87c037f760bdbc6847852ca9ef8e9c5a5da18f090abf87", size = 838556 }, - { url = "https://files.pythonhosted.org/packages/d1/09/deb57f1fb656a7a5192497f4a287b0ade5a2ff6b5d5de4736d13ef6d2c1f/nh3-0.3.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f97f8b25cb2681d25e2338148159447e4d689aafdccfcf19e61ff7db3905768a", size = 1006695 }, - { url = "https://files.pythonhosted.org/packages/b6/61/8f4d41c4ccdac30e4b1a4fa7be4b0f9914d8314a5058472f84c8e101a418/nh3-0.3.2-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:2ab70e8c6c7d2ce953d2a58102eefa90c2d0a5ed7aa40c7e29a487bc5e613131", size = 1075471 }, - { url = "https://files.pythonhosted.org/packages/b0/c6/966aec0cb4705e69f6c3580422c239205d5d4d0e50fac380b21e87b6cf1b/nh3-0.3.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:1710f3901cd6440ca92494ba2eb6dc260f829fa8d9196b659fa10de825610ce0", size = 1002439 }, - { url = "https://files.pythonhosted.org/packages/e2/c8/97a2d5f7a314cce2c5c49f30c6f161b7f3617960ade4bfc2fd1ee092cb20/nh3-0.3.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:91e9b001101fb4500a2aafe3e7c92928d85242d38bf5ac0aba0b7480da0a4cd6", size = 987439 }, - { url = "https://files.pythonhosted.org/packages/0d/95/2d6fc6461687d7a171f087995247dec33e8749a562bfadd85fb5dbf37a11/nh3-0.3.2-cp38-abi3-win32.whl", hash = "sha256:169db03df90da63286e0560ea0efa9b6f3b59844a9735514a1d47e6bb2c8c61b", size = 589826 }, - { url = "https://files.pythonhosted.org/packages/64/9a/1a1c154f10a575d20dd634e5697805e589bbdb7673a0ad00e8da90044ba7/nh3-0.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:562da3dca7a17f9077593214a9781a94b8d76de4f158f8c895e62f09573945fe", size = 596406 }, - { url = "https://files.pythonhosted.org/packages/9e/7e/a96255f63b7aef032cbee8fc4d6e37def72e3aaedc1f72759235e8f13cb1/nh3-0.3.2-cp38-abi3-win_arm64.whl", hash = "sha256:cf5964d54edd405e68583114a7cba929468bcd7db5e676ae38ee954de1cfc104", size = 584162 }, + { url = "https://files.pythonhosted.org/packages/34/30/ebf8e2e8d71fdb5a5d5d8836207177aed1682df819cbde7f42f16898946c/nh3-0.3.2-cp314-cp314t-win32.whl", hash = "sha256:1f9ba555a797dbdcd844b89523f29cdc90973d8bd2e836ea6b962cf567cadd93", size = 583364, upload-time = "2025-10-30T11:17:20.286Z" }, + { url = "https://files.pythonhosted.org/packages/94/ae/95c52b5a75da429f11ca8902c2128f64daafdc77758d370e4cc310ecda55/nh3-0.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:dce4248edc427c9b79261f3e6e2b3ecbdd9b88c267012168b4a7b3fc6fd41d13", size = 589982, upload-time = "2025-10-30T11:17:21.384Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bd/c7d862a4381b95f2469704de32c0ad419def0f4a84b7a138a79532238114/nh3-0.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:019ecbd007536b67fdf76fab411b648fb64e2257ca3262ec80c3425c24028c80", size = 577126, upload-time = "2025-10-30T11:17:22.755Z" }, + { url = "https://files.pythonhosted.org/packages/0d/95/2d6fc6461687d7a171f087995247dec33e8749a562bfadd85fb5dbf37a11/nh3-0.3.2-cp38-abi3-win32.whl", hash = "sha256:169db03df90da63286e0560ea0efa9b6f3b59844a9735514a1d47e6bb2c8c61b", size = 589826, upload-time = "2025-10-30T11:17:42.239Z" }, + { url = "https://files.pythonhosted.org/packages/64/9a/1a1c154f10a575d20dd634e5697805e589bbdb7673a0ad00e8da90044ba7/nh3-0.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:562da3dca7a17f9077593214a9781a94b8d76de4f158f8c895e62f09573945fe", size = 596406, upload-time = "2025-10-30T11:17:43.773Z" }, + { url = "https://files.pythonhosted.org/packages/9e/7e/a96255f63b7aef032cbee8fc4d6e37def72e3aaedc1f72759235e8f13cb1/nh3-0.3.2-cp38-abi3-win_arm64.whl", hash = "sha256:cf5964d54edd405e68583114a7cba929468bcd7db5e676ae38ee954de1cfc104", size = 584162, upload-time = "2025-10-30T11:17:44.96Z" }, ] [[package]] name = "packaging" version = "25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] [[package]] name = "pefile" version = "2024.8.26" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/4f/2750f7f6f025a1507cd3b7218691671eecfd0bbebebe8b39aa0fe1d360b8/pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632", size = 76008 } +sdist = { url = "https://files.pythonhosted.org/packages/03/4f/2750f7f6f025a1507cd3b7218691671eecfd0bbebebe8b39aa0fe1d360b8/pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632", size = 76008, upload-time = "2024-08-26T20:58:38.155Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/16/12b82f791c7f50ddec566873d5bdd245baa1491bac11d15ffb98aecc8f8b/pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f", size = 74766 }, + { url = "https://files.pythonhosted.org/packages/54/16/12b82f791c7f50ddec566873d5bdd245baa1491bac11d15ffb98aecc8f8b/pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f", size = 74766, upload-time = "2024-08-26T21:01:02.632Z" }, ] [[package]] @@ -863,33 +564,33 @@ name = "platformdirs" version = "4.4.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634 } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654 }, + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, ] [[package]] name = "platformdirs" -version = "4.5.0" +version = "4.5.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] -sdist = { url = "https://files.pythonhosted.org/packages/61/33/9611380c2bdb1225fdef633e2a9610622310fed35ab11dac9620972ee088/platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", size = 21632 } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3", size = 18651 }, + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] @@ -897,43 +598,30 @@ name = "prompt-toolkit" version = "3.0.52" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "wcwidth" }, + { name = "wcwidth", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431 }, + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, ] [[package]] name = "psutil" version = "5.9.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", size = 503247 } +sdist = { url = "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", size = 503247, upload-time = "2024-01-19T20:47:09.517Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", size = 248702 }, - { url = "https://files.pythonhosted.org/packages/b3/bd/28c5f553667116b2598b9cc55908ec435cb7f77a34f2bff3e3ca765b0f78/psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", size = 285242 }, - { url = "https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/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", size = 288191 }, - { url = "https://files.pythonhosted.org/packages/6e/f5/2aa3a4acdc1e5940b59d421742356f133185667dd190b166dbcfcf5d7b43/psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", size = 251252 }, - { url = "https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", size = 255090 }, - { url = "https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8", size = 249898 }, + { url = "https://files.pythonhosted.org/packages/6e/f5/2aa3a4acdc1e5940b59d421742356f133185667dd190b166dbcfcf5d7b43/psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", size = 251252, upload-time = "2024-01-19T20:47:52.88Z" }, + { url = "https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", size = 255090, upload-time = "2024-01-19T20:47:56.019Z" }, ] [[package]] name = "py-cpuinfo" version = "9.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/37/a8/d832f7293ebb21690860d2e01d8115e5ff6f2ae8bbdc953f0eb0fa4bd2c7/py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690", size = 104716 } +sdist = { url = "https://files.pythonhosted.org/packages/37/a8/d832f7293ebb21690860d2e01d8115e5ff6f2ae8bbdc953f0eb0fa4bd2c7/py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690", size = 104716, upload-time = "2022-10-25T20:38:06.303Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5", size = 22335 }, -] - -[[package]] -name = "pycparser" -version = "2.23" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 }, + { url = "https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5", size = 22335, upload-time = "2022-10-25T20:38:27.636Z" }, ] [[package]] @@ -941,19 +629,20 @@ name = "pydata-sphinx-theme" version = "0.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "accessible-pygments" }, - { name = "babel" }, - { name = "beautifulsoup4" }, - { name = "docutils" }, - { name = "pygments" }, - { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "typing-extensions" }, + { name = "accessible-pygments", marker = "sys_platform == 'win32'" }, + { name = "babel", marker = "sys_platform == 'win32'" }, + { name = "beautifulsoup4", marker = "sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "pygments", marker = "sys_platform == 'win32'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/20/bb50f9de3a6de69e6abd6b087b52fa2418a0418b19597601605f855ad044/pydata_sphinx_theme-0.16.1.tar.gz", hash = "sha256:a08b7f0b7f70387219dc659bff0893a7554d5eb39b59d3b8ef37b8401b7642d7", size = 2412693 } +sdist = { url = "https://files.pythonhosted.org/packages/00/20/bb50f9de3a6de69e6abd6b087b52fa2418a0418b19597601605f855ad044/pydata_sphinx_theme-0.16.1.tar.gz", hash = "sha256:a08b7f0b7f70387219dc659bff0893a7554d5eb39b59d3b8ef37b8401b7642d7", size = 2412693, upload-time = "2024-12-17T10:53:39.537Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/0d/8ba33fa83a7dcde13eb3c1c2a0c1cc29950a048bfed6d9b0d8b6bd710b4c/pydata_sphinx_theme-0.16.1-py3-none-any.whl", hash = "sha256:225331e8ac4b32682c18fcac5a57a6f717c4e632cea5dd0e247b55155faeccde", size = 6723264 }, + { url = "https://files.pythonhosted.org/packages/e2/0d/8ba33fa83a7dcde13eb3c1c2a0c1cc29950a048bfed6d9b0d8b6bd710b4c/pydata_sphinx_theme-0.16.1-py3-none-any.whl", hash = "sha256:225331e8ac4b32682c18fcac5a57a6f717c4e632cea5dd0e247b55155faeccde", size = 6723264, upload-time = "2024-12-17T10:53:35.645Z" }, ] [[package]] @@ -961,15 +650,15 @@ name = "pygls" version = "1.3.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "cattrs", marker = "python_full_version < '3.10'" }, - { name = "lsprotocol", version = "2023.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "cattrs", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "lsprotocol", version = "2023.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/86/b9/41d173dad9eaa9db9c785a85671fc3d68961f08d67706dc2e79011e10b5c/pygls-1.3.1.tar.gz", hash = "sha256:140edceefa0da0e9b3c533547c892a42a7d2fd9217ae848c330c53d266a55018", size = 45527 } +sdist = { url = "https://files.pythonhosted.org/packages/86/b9/41d173dad9eaa9db9c785a85671fc3d68961f08d67706dc2e79011e10b5c/pygls-1.3.1.tar.gz", hash = "sha256:140edceefa0da0e9b3c533547c892a42a7d2fd9217ae848c330c53d266a55018", size = 45527, upload-time = "2024-03-26T18:44:25.679Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/19/b74a10dd24548e96e8c80226cbacb28b021bc3a168a7d2709fb0d0185348/pygls-1.3.1-py3-none-any.whl", hash = "sha256:6e00f11efc56321bdeb6eac04f6d86131f654c7d49124344a9ebb968da3dd91e", size = 56031 }, + { url = "https://files.pythonhosted.org/packages/11/19/b74a10dd24548e96e8c80226cbacb28b021bc3a168a7d2709fb0d0185348/pygls-1.3.1-py3-none-any.whl", hash = "sha256:6e00f11efc56321bdeb6eac04f6d86131f654c7d49124344a9ebb968da3dd91e", size = 56031, upload-time = "2024-03-26T18:44:24.249Z" }, ] [[package]] @@ -977,80 +666,80 @@ name = "pygls" version = "2.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] dependencies = [ - { name = "attrs", marker = "python_full_version >= '3.10'" }, - { name = "cattrs", marker = "python_full_version >= '3.10'" }, - { name = "lsprotocol", version = "2025.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "attrs", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "cattrs", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "lsprotocol", version = "2025.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/87/50/2bfc32f3acbc8941042919b59c9f592291127b55d7331b72e67ce7b62f08/pygls-2.0.0.tar.gz", hash = "sha256:99accd03de1ca76fe1e7e317f0968ebccf7b9955afed6e2e3e188606a20b4f07", size = 55796 } +sdist = { url = "https://files.pythonhosted.org/packages/87/50/2bfc32f3acbc8941042919b59c9f592291127b55d7331b72e67ce7b62f08/pygls-2.0.0.tar.gz", hash = "sha256:99accd03de1ca76fe1e7e317f0968ebccf7b9955afed6e2e3e188606a20b4f07", size = 55796, upload-time = "2025-10-17T19:22:47.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/09/14feafc13bebb9c85b29b374889c1549d3700cb572f2d43a1bb940d70315/pygls-2.0.0-py3-none-any.whl", hash = "sha256:b4e54bba806f76781017ded8fd07463b98670f959042c44170cd362088b200cc", size = 69533 }, + { url = "https://files.pythonhosted.org/packages/cc/09/14feafc13bebb9c85b29b374889c1549d3700cb572f2d43a1bb940d70315/pygls-2.0.0-py3-none-any.whl", hash = "sha256:b4e54bba806f76781017ded8fd07463b98670f959042c44170cd362088b200cc", size = 69533, upload-time = "2025-10-17T19:22:46.63Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pymem" version = "1.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/fd/1906f383fd9697c0da599580c58f5cd5af48edb55429f6ef994c447fb94e/pymem-1.14.0.tar.gz", hash = "sha256:29f6c32bcad0032888afabadf97d1e4c7757f88873de4d79f7f4c1df9b9e7ef1", size = 24890 } +sdist = { url = "https://files.pythonhosted.org/packages/1f/fd/1906f383fd9697c0da599580c58f5cd5af48edb55429f6ef994c447fb94e/pymem-1.14.0.tar.gz", hash = "sha256:29f6c32bcad0032888afabadf97d1e4c7757f88873de4d79f7f4c1df9b9e7ef1", size = 24890, upload-time = "2024-10-27T18:59:50.369Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/a5/23907a4b55d67cd4c0e4b9a37e32f5f1ffaf7e286dcf172a2a1bb9e12444/pymem-1.14.0-py3-none-any.whl", hash = "sha256:2b9cc64b49d0685f73d616ab1f638611f87e8d649869e7a556f050f677c42a7e", size = 29833 }, + { url = "https://files.pythonhosted.org/packages/0d/a5/23907a4b55d67cd4c0e4b9a37e32f5f1ffaf7e286dcf172a2a1bb9e12444/pymem-1.14.0-py3-none-any.whl", hash = "sha256:2b9cc64b49d0685f73d616ab1f638611f87e8d649869e7a556f050f677c42a7e", size = 29833, upload-time = "2024-10-27T18:59:48.911Z" }, ] [package.optional-dependencies] speed = [ - { name = "regex" }, + { name = "regex", marker = "sys_platform == 'win32'" }, ] [[package]] name = "pymhf" source = { editable = "." } dependencies = [ - { name = "cyminhook" }, - { name = "iced-x86" }, - { name = "keyboard" }, - { name = "packaging" }, - { name = "pefile" }, - { name = "psutil" }, - { name = "pymem", extra = ["speed"] }, - { name = "pyrun-injected" }, - { name = "pywin32" }, - { name = "pywinctl" }, - { name = "questionary" }, - { name = "tomlkit" }, - { name = "typing-extensions" }, + { name = "cyminhook", marker = "sys_platform == 'win32'" }, + { name = "iced-x86", marker = "sys_platform == 'win32'" }, + { name = "keyboard", marker = "sys_platform == 'win32'" }, + { name = "packaging", marker = "sys_platform == 'win32'" }, + { name = "pefile", marker = "sys_platform == 'win32'" }, + { name = "psutil", marker = "sys_platform == 'win32'" }, + { name = "pymem", extra = ["speed"], marker = "sys_platform == 'win32'" }, + { name = "pyrun-injected", marker = "sys_platform == 'win32'" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "pywinctl", marker = "sys_platform == 'win32'" }, + { name = "questionary", marker = "sys_platform == 'win32'" }, + { name = "tomlkit", marker = "sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] [package.optional-dependencies] gui = [ - { name = "dearpygui" }, + { name = "dearpygui", marker = "sys_platform == 'win32'" }, ] [package.dev-dependencies] dev = [ - { name = "esbonio", version = "0.16.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "esbonio", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pydata-sphinx-theme" }, - { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pytest", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pytest-benchmark" }, - { name = "ruff" }, - { name = "setuptools-scm" }, - { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "twine" }, + { name = "esbonio", version = "0.16.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "esbonio", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pydata-sphinx-theme", marker = "sys_platform == 'win32'" }, + { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pytest", version = "9.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pytest-benchmark", marker = "sys_platform == 'win32'" }, + { name = "ruff", marker = "sys_platform == 'win32'" }, + { name = "setuptools-scm", marker = "sys_platform == 'win32'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "twine", marker = "sys_platform == 'win32'" }, ] [package.metadata] @@ -1089,7692 +778,562 @@ name = "pymonctl" version = "0.92" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ewmhlib", marker = "sys_platform == 'linux'" }, - { name = "pyobjc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'darwin'" }, - { name = "pyobjc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'darwin'" }, - { name = "python-xlib", marker = "sys_platform == 'linux'" }, { name = "pywin32", marker = "sys_platform == 'win32'" }, - { name = "typing-extensions" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/13/076a20da28b82be281f7e43e16d9da0f545090f5d14b2125699232b9feba/PyMonCtl-0.92-py3-none-any.whl", hash = "sha256:2495d8dab78f9a7dbce37e74543e60b8bd404a35c3108935697dda7768611b5a", size = 45945 }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] - -[[package]] -name = "pyobjc" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-accessibility", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-accounts", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-addressbook", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-adservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-adsupport", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-applescriptkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-applescriptobjc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-applicationservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-apptrackingtransparency", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-arkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-audiovideobridging", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-authenticationservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-automaticassessmentconfiguration", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-automator", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-avkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-avrouting", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-backgroundassets", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-browserenginekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '23.4'" }, - { name = "pyobjc-framework-businesschat", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-calendarstore", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-callkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-carbon", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cfnetwork", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cinematic", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-classkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-cloudkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-collaboration", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-colorsync", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-compositorservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-contacts", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-contactsui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-coreaudio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreaudiokit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corebluetooth", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-coredata", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corehaptics", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-corelocation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-coremediaio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-coremidi", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreml", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-coremotion", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-coreservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corespotlight", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-coretext", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corewlan", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-cryptotokenkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-datadetection", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-devicecheck", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-devicediscoveryextension", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '24.0'" }, - { name = "pyobjc-framework-dictionaryservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-discrecording", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-discrecordingui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-diskarbitration", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-dvdplayback", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-eventkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-exceptionhandling", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-executionpolicy", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-extensionkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-externalaccessory", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-fileprovider", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-fileproviderui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-findersync", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-fsevents", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-fskit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '24.4'" }, - { name = "pyobjc-framework-gamecenter", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-gamecontroller", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-gamekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-gameplaykit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-gamesave", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-healthkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-imagecapturecore", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-inputmethodkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-installerplugins", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-instantmessage", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-intents", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-intentsui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-iobluetooth", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-iobluetoothui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-iosurface", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-ituneslibrary", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-kernelmanagement", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-latentsemanticmapping", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-launchservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-libdispatch", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-libxpc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-linkpresentation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-localauthentication", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-localauthenticationembeddedui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mailkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mapkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaaccessibility", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaextension", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '24.0'" }, - { name = "pyobjc-framework-medialibrary", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaplayer", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-mediatoolbox", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-metalfx", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-metalkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-metalperformanceshaders", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-metalperformanceshadersgraph", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-metrickit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mlcompute", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-modelio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-multipeerconnectivity", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-naturallanguage", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-netfs", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-network", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-networkextension", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-notificationcenter", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-opendirectory", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-osakit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-oslog", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-passkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-pencilkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-phase", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-photos", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-photosui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-preferencepanes", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-pushkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quicklookthumbnailing", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-replaykit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-safariservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-safetykit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-scenekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-screencapturekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.4'" }, - { name = "pyobjc-framework-screensaver", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-screentime", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-scriptingbridge", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-searchkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-security", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-securityfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-securityinterface", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-securityui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '24.4'" }, - { name = "pyobjc-framework-sensitivecontentanalysis", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-servicemanagement", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-sharedwithyou", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-sharedwithyoucore", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-shazamkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-social", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-soundanalysis", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-speech", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-spritekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-storekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-symbols", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-syncservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-systemconfiguration", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-systemextensions", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-threadnetwork", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-uniformtypeidentifiers", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-usernotifications", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-usernotificationsui", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-videosubscriberaccount", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-videotoolbox", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-virtualization", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-vision", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-webkit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/36/0f/0b21447c9461905022aab2f19626e94a0b00eee9c6d3593a5ab425f7a42e/pyobjc-12.0.tar.gz", hash = "sha256:ce6b7c68889722248250d1b4daac28272100634e3a9826affdbd6f36a0dc52b2", size = 11236 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/36/f5335452694fb4bc0dd69affe516886abde64ad43ed88d9b104d822a29de/pyobjc-12.0-py3-none-any.whl", hash = "sha256:cc0004c8e615d4b99f4910804477b322d951d472d5ee20bfef8f390ea734d038", size = 4204 }, + { url = "https://files.pythonhosted.org/packages/2d/13/076a20da28b82be281f7e43e16d9da0f545090f5d14b2125699232b9feba/PyMonCtl-0.92-py3-none-any.whl", hash = "sha256:2495d8dab78f9a7dbce37e74543e60b8bd404a35c3108935697dda7768611b5a", size = 45945, upload-time = "2024-04-22T10:07:09.566Z" }, ] [[package]] -name = "pyobjc" -version = "12.1" +name = "pyrun-injected" +version = "0.2.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-accessibility", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-accounts", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-addressbook", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-adservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-adsupport", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-applescriptkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-applescriptobjc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-applicationservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-apptrackingtransparency", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-arkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-audiovideobridging", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-authenticationservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-automaticassessmentconfiguration", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-automator", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-avkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-avrouting", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-backgroundassets", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-browserenginekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '23.4'" }, - { name = "pyobjc-framework-businesschat", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-calendarstore", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-callkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-carbon", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cfnetwork", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cinematic", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-classkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-cloudkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-collaboration", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-colorsync", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-compositorservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-contacts", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-contactsui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-coreaudio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreaudiokit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corebluetooth", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-coredata", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corehaptics", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-corelocation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-coremediaio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-coremidi", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreml", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-coremotion", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-coreservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corespotlight", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-coretext", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corewlan", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-cryptotokenkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-datadetection", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-devicecheck", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-devicediscoveryextension", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '24.0'" }, - { name = "pyobjc-framework-dictionaryservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-discrecording", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-discrecordingui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-diskarbitration", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-dvdplayback", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-eventkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-exceptionhandling", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-executionpolicy", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-extensionkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-externalaccessory", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-fileprovider", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-fileproviderui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-findersync", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-fsevents", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-fskit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '24.4'" }, - { name = "pyobjc-framework-gamecenter", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-gamecontroller", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-gamekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-gameplaykit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-gamesave", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '25.0'" }, - { name = "pyobjc-framework-healthkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-imagecapturecore", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-inputmethodkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-installerplugins", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-instantmessage", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-intents", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-intentsui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-iobluetooth", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-iobluetoothui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-iosurface", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-ituneslibrary", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-kernelmanagement", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-latentsemanticmapping", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-launchservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-libdispatch", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-libxpc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-linkpresentation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-localauthentication", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-localauthenticationembeddedui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mailkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mapkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaaccessibility", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaextension", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '24.0'" }, - { name = "pyobjc-framework-medialibrary", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-mediaplayer", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-mediatoolbox", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-metalfx", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-metalkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-metalperformanceshaders", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-metalperformanceshadersgraph", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-metrickit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-mlcompute", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-modelio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-multipeerconnectivity", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-naturallanguage", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-netfs", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-network", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-networkextension", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-notificationcenter", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '14.0'" }, - { name = "pyobjc-framework-opendirectory", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-osakit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-oslog", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-passkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-pencilkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-phase", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-photos", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-photosui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '15.0'" }, - { name = "pyobjc-framework-preferencepanes", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-pushkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quicklookthumbnailing", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-replaykit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-safariservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '16.0'" }, - { name = "pyobjc-framework-safetykit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-scenekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-screencapturekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.4'" }, - { name = "pyobjc-framework-screensaver", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-screentime", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-scriptingbridge", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '9.0'" }, - { name = "pyobjc-framework-searchkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-security", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-securityfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-securityinterface", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-securityui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '24.4'" }, - { name = "pyobjc-framework-sensitivecontentanalysis", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-servicemanagement", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '10.0'" }, - { name = "pyobjc-framework-sharedwithyou", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-sharedwithyoucore", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-shazamkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '21.0'" }, - { name = "pyobjc-framework-social", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-soundanalysis", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-speech", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-spritekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '13.0'" }, - { name = "pyobjc-framework-storekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '11.0'" }, - { name = "pyobjc-framework-symbols", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '23.0'" }, - { name = "pyobjc-framework-syncservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-systemconfiguration", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-systemextensions", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '19.0'" }, - { name = "pyobjc-framework-threadnetwork", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '22.0'" }, - { name = "pyobjc-framework-uniformtypeidentifiers", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-usernotifications", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-usernotificationsui", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-videosubscriberaccount", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '18.0'" }, - { name = "pyobjc-framework-videotoolbox", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '12.0'" }, - { name = "pyobjc-framework-virtualization", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '20.0'" }, - { name = "pyobjc-framework-vision", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and platform_release >= '17.0'" }, - { name = "pyobjc-framework-webkit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/17/06/d77639ba166cc09aed2d32ae204811b47bc5d40e035cdc9bff7fff72ec5f/pyobjc-12.1.tar.gz", hash = "sha256:686d6db3eb3182fac9846b8ce3eedf4c7d2680b21b8b8d6e6df054a17e92a12d", size = 11345 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/00/1085de7b73abf37ec27ad59f7a1d7a406e6e6da45720bced2e198fdf1ddf/pyobjc-12.1-py3-none-any.whl", hash = "sha256:6f8c36cf87b1159d2ca1aa387ffc3efcd51cc3da13ef47c65f45e6d9fbccc729", size = 4226 }, -] - -[[package]] -name = "pyobjc-core" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/ab/dc/6d63019133e39e2b299dfbab786e64997fff0f145c45a417e1dd51faaf3f/pyobjc_core-12.0.tar.gz", hash = "sha256:7e05c805a776149a937b61b892a0459895d32d9002bedc95ce2be31ef1e37a29", size = 991669 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/fc/3ee24e2809a47ea758c02ada21c32ad42f611f5771e86a4c199a98d1cee2/pyobjc_core-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:beb665937b0df76412dfd08c6518925806e41536307629a859105270e3a5e6c9", size = 678931 }, - { url = "https://files.pythonhosted.org/packages/84/c1/c50e312d32644429d8a9bb3a342aeeb772fba85f9573e7681ca458124a8f/pyobjc_core-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dd4962aceb0f9a0ee510e11ced449323db85e42664ac9ade53ad1cc2394dc248", size = 673921 }, - { url = "https://files.pythonhosted.org/packages/38/95/1acf3be6a8ae457a26e8ff6e08aeb71af49bfc79303b331067c058d448a4/pyobjc_core-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1675dbb700b6bb6e3f3c9ce3f5401947e0193e16085eeb70e9160c6c6fc1ace5", size = 681179 }, - { url = "https://files.pythonhosted.org/packages/88/17/6c247bf9d8de2813f6015671f242333534797e81bdac9e85516fb57dfb00/pyobjc_core-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c44b76d8306a130c9eb0cb79d86fd6675c8ba3e5b458e78095d271a10cd38b6a", size = 679700 }, - { url = "https://files.pythonhosted.org/packages/08/a3/1b26c438c78821e5a82b9c02f7b19a86097aeb2c51132d06e159acc22dc2/pyobjc_core-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5c617551e0ab860c49229fcec0135a5cde702485f22254ddc17205eb24b7fc55", size = 721370 }, - { url = "https://files.pythonhosted.org/packages/35/b1/6df7d4b0d9f0088855a59f6af59230d1191f78fa84ca68851723272f1916/pyobjc_core-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c2709ff43ac5c2e9e2c574ae515d3aa0e470345847a4d96c5d4a04b1b86e966d", size = 672302 }, - { url = "https://files.pythonhosted.org/packages/f8/10/3a029797c0a22c730ee0d0149ac34ab27afdf51667f96aa23a8ebe7dc3c9/pyobjc_core-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:eb6b987e53291e7cafd8f71a80a2dd44d7afec4202a143a3e47b75cb9cdb5716", size = 713255 }, -] - -[[package]] -name = "pyobjc-core" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + { name = "pymem", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/b6/d5612eb40be4fd5ef88c259339e6313f46ba67577a95d86c3470b951fce0/pyobjc_core-12.1.tar.gz", hash = "sha256:2bb3903f5387f72422145e1466b3ac3f7f0ef2e9960afa9bcd8961c5cbf8bd21", size = 1000532 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/cc/5d2ba23144e61daa187ad33368e16ca69bf6192ed187de1d9321c1f4a9b3/pyrun_injected-0.2.0.tar.gz", hash = "sha256:46388968f789544318c7b23ab66c7187b8758e485c908f70dff996d0cc2e0db0", size = 9907, upload-time = "2025-08-15T11:27:08.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/bf/3dbb1783388da54e650f8a6b88bde03c101d9ba93dfe8ab1b1873f1cd999/pyobjc_core-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93418e79c1655f66b4352168f8c85c942707cb1d3ea13a1da3e6f6a143bacda7", size = 676748 }, - { url = "https://files.pythonhosted.org/packages/95/df/d2b290708e9da86d6e7a9a2a2022b91915cf2e712a5a82e306cb6ee99792/pyobjc_core-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c918ebca280925e7fcb14c5c43ce12dcb9574a33cccb889be7c8c17f3bcce8b6", size = 671263 }, - { url = "https://files.pythonhosted.org/packages/64/5a/6b15e499de73050f4a2c88fff664ae154307d25dc04da8fb38998a428358/pyobjc_core-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:818bcc6723561f207e5b5453efe9703f34bc8781d11ce9b8be286bb415eb4962", size = 678335 }, - { url = "https://files.pythonhosted.org/packages/f4/d2/29e5e536adc07bc3d33dd09f3f7cf844bf7b4981820dc2a91dd810f3c782/pyobjc_core-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:01c0cf500596f03e21c23aef9b5f326b9fb1f8f118cf0d8b66749b6cf4cbb37a", size = 677370 }, - { url = "https://files.pythonhosted.org/packages/1b/f0/4b4ed8924cd04e425f2a07269943018d43949afad1c348c3ed4d9d032787/pyobjc_core-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:177aaca84bb369a483e4961186704f64b2697708046745f8167e818d968c88fc", size = 719586 }, - { url = "https://files.pythonhosted.org/packages/25/98/9f4ed07162de69603144ff480be35cd021808faa7f730d082b92f7ebf2b5/pyobjc_core-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:844515f5d86395b979d02152576e7dee9cc679acc0b32dc626ef5bda315eaa43", size = 670164 }, - { url = "https://files.pythonhosted.org/packages/62/50/dc076965c96c7f0de25c0a32b7f8aa98133ed244deaeeacfc758783f1f30/pyobjc_core-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:453b191df1a4b80e756445b935491b974714456ae2cbae816840bd96f86db882", size = 712204 }, + { url = "https://files.pythonhosted.org/packages/e6/fb/8df173ec16b5bb46c1802ae630461a91852be55f6497bbb0fd706670f37d/pyrun_injected-0.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:c2f61181dde95b02eff1d9df2962c6264a5e8f2d66f1f70b1bb40124f2f96219", size = 16254, upload-time = "2025-08-15T11:27:02.918Z" }, + { url = "https://files.pythonhosted.org/packages/e9/bc/179b4aae44dd090aac3a43ac060cffdfc6ae06df83051197fa24243a7b5e/pyrun_injected-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:62b1903322e652ecee662008da6644690af6d0469bcbf212638ee32f5e3741ea", size = 16256, upload-time = "2025-08-15T11:27:03.955Z" }, + { url = "https://files.pythonhosted.org/packages/67/b0/b03ee1d97123f7bad5791b32ec05df6e32e4dd2e2f45fe5584bf5ceef7cc/pyrun_injected-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe0a483426beeee7ab1506c67ddf50571bcf115dc436d2828a055e8f6b3d996a", size = 16303, upload-time = "2025-08-15T11:27:05.114Z" }, + { url = "https://files.pythonhosted.org/packages/64/6d/090d650393863b432a3b2518a9abd8e47b63e3bcf33a94d3a8713449784c/pyrun_injected-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:dfe9bef35d819319fac73aa08cf9833c99f1f634325486ef457a60ec1d0bef4c", size = 16299, upload-time = "2025-08-15T11:27:06.154Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4e/c64200e92f7d37f7a492dde796ace68b0c7ead5247ff43d8c16961b0d7ff/pyrun_injected-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e9c76de1413c9b6619a8b9debfb3e5df7c6a215502808e58eb281db67a817d2b", size = 16253, upload-time = "2025-08-15T11:27:07.387Z" }, ] [[package]] -name = "pyobjc-framework-accessibility" -version = "12.0" +name = "pyspellchecker" +version = "0.8.4" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/87/77/28cf2885e6964932773456114ba1012e2a5c60f31582a2dc4980aa6018a9/pyobjc_framework_accessibility-12.0.tar.gz", hash = "sha256:a7794887330d4e50d41af72633d08aa41a9e946a80c49b4ede4a2f7936751c46", size = 30002 } +sdist = { url = "https://files.pythonhosted.org/packages/a8/f4/870865239781117f75f788594c98fc3c65836ad9b93779550f369700187a/pyspellchecker-0.8.4.tar.gz", hash = "sha256:48cafa76d65c30ce4d81d0831938f25e8f34ede243c1cc6840014b0eb51ad629", size = 7238678, upload-time = "2025-11-30T00:18:39.415Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/3c/6de1d794d2a2bf42d29934ba08e619a38efe7ebd39d54a183c0e751cb478/pyobjc_framework_accessibility-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e3abce397825a6c263db95bf7ecf6eaf89742d92311ba0261f082dd69d19f4bd", size = 11271 }, - { url = "https://files.pythonhosted.org/packages/f5/c6/dec3b6cf566ca01c5ba7c812dafa48b1c29bcfb19960210e53892e8ff4c0/pyobjc_framework_accessibility-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:712200ae59303ea76a00ecb4ecb4ee59c97e4d1fc66fe1555d053f3b320f3915", size = 11270 }, - { url = "https://files.pythonhosted.org/packages/a1/fd/d24ad39478e9570d9af493d34732ed6122f87a0d2ce0c946409d1cf40207/pyobjc_framework_accessibility-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:10bf22840844654ff67e398b89458dbd7273257aaf638880a2067fb523b51704", size = 11301 }, - { url = "https://files.pythonhosted.org/packages/2d/12/2548c021c31e9931a026ace2f85ab9e8c2781f8916e5773398e198a53bc8/pyobjc_framework_accessibility-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3a7aa16ff51111d19992dbe971a52f9cd21afacadd18c4912d266405d834a6a1", size = 11320 }, - { url = "https://files.pythonhosted.org/packages/45/a1/3c28c9235c808cb29964178d71859bfcfbc5446c78cf1d8ae45c72a4e3e6/pyobjc_framework_accessibility-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93a7bbfad141ef389935cb84cc2ce3a564b88828440167131b8e15b4407fccd0", size = 11489 }, - { url = "https://files.pythonhosted.org/packages/da/3f/bf0f22de28f179a11c465b5aa41d2e8fd5013819825bf2256529808d39b7/pyobjc_framework_accessibility-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7e304153f4c031ed6a3c573d7234eaf95684420f1341e305ebd62e5822b531b1", size = 11380 }, - { url = "https://files.pythonhosted.org/packages/40/40/65d2a26235363c2602b88279b105a8b368a4de32c71863ae9497304275d5/pyobjc_framework_accessibility-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:61b82d8f05c61f4a052066460caffd96516b964516c4bc487c6143c6642f36a4", size = 11567 }, + { url = "https://files.pythonhosted.org/packages/8e/79/2a6993dd02c537ae1344a693f20f9b556206a5385c398022fb66cb004b3a/pyspellchecker-0.8.4-py3-none-any.whl", hash = "sha256:20c53d119568011bbaef68608aceb956b888bcd9d563798f7770721a112b8255", size = 7236997, upload-time = "2025-11-30T00:18:37.411Z" }, ] [[package]] -name = "pyobjc-framework-accessibility" -version = "12.1" +name = "pytest" +version = "8.4.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pluggy", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pygments", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/87/8ca40428d05a668fecc638f2f47dba86054dbdc35351d247f039749de955/pyobjc_framework_accessibility-12.1.tar.gz", hash = "sha256:5ff362c3425edc242d49deec11f5f3e26e565cefb6a2872eda59ab7362149772", size = 29800 } +sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/49/ff2da96d70cd96d5cc16015be0103474be75c71fb5c56e35d0a39517c4a2/pyobjc_framework_accessibility-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ca72a049a9dc56686cfe7b8c0bbb556205fb7a955a48cabf7f90447708d89651", size = 11300 }, - { url = "https://files.pythonhosted.org/packages/76/00/182c57584ad8e5946a82dacdc83c9791567e10bffdea1fe92272b3fdec14/pyobjc_framework_accessibility-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5e29dac0ce8327cd5a8b9a5a8bd8aa83e4070018b93699e97ac0c3af09b42a9a", size = 11301 }, - { url = "https://files.pythonhosted.org/packages/cc/95/9ea0d1c16316b4b5babf4b0515e9a133ac64269d3ec031f15ee9c7c2a8c1/pyobjc_framework_accessibility-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:537691a0b28fedb8385cd093df069a6e5d7e027629671fc47b50210404eca20b", size = 11335 }, - { url = "https://files.pythonhosted.org/packages/40/71/aa9625b1b064f7d3e1bbc0b6b40cf92d1d46c7f798e0b345594d626f5510/pyobjc_framework_accessibility-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:44d872d8a1f9d1569da0590c5a9185d2c02dc2e08e410c84a03aa54ca6e05c2c", size = 11352 }, - { url = "https://files.pythonhosted.org/packages/e9/d8/ff4c720d6140f7a20eaed15d5430af1fc8be372998674b82931993177261/pyobjc_framework_accessibility-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4b9e2079ad0da736ba32a10e63698ff1db9667b5f6342a81220aa86cfa0de8c8", size = 11521 }, - { url = "https://files.pythonhosted.org/packages/98/ce/21a076746ada1c03015ce23ee87aa3a3f052885ec386296d4d90c4fb0eb2/pyobjc_framework_accessibility-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0a14c794af7f38d8b59f6d7b03f708e61473a42d4a43663e7a2a6355121d11f7", size = 11414 }, - { url = "https://files.pythonhosted.org/packages/22/f0/a195f213d7bbcd765d216a90904a2104199da734bae81c10da9736ebd55d/pyobjc_framework_accessibility-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:bc517a0eff3989ea98197858fbe4bbb4c673e171f4acbb94dc8cf94415b11e0b", size = 11594 }, + { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, ] [[package]] -name = "pyobjc-framework-accounts" -version = "12.0" +name = "pytest" +version = "9.0.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version >= '3.11' and sys_platform == 'win32'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pluggy", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pygments", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/77/da53be3992e793a857fb07fe3dfc3a595b9c2365f00451578d2843413d30/pyobjc_framework_accounts-12.0.tar.gz", hash = "sha256:48fa0d270208655fa47b89452fa3ef5eadadf61ecf5935b83f22bcb3c28feabe", size = 15288 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/b3/e18aa7763b1de9a116862a022f21d35fbedeb5e8d4aff9633446d3088bef/pyobjc_framework_accounts-12.0-py2.py3-none-any.whl", hash = "sha256:9a12dcb35c4367ab846abcd3a529778ba527155b31249380a8eb360baacdcb05", size = 5116 }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] -name = "pyobjc-framework-accounts" -version = "12.1" +name = "pytest-benchmark" +version = "5.2.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "py-cpuinfo", marker = "sys_platform == 'win32'" }, + { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pytest", version = "9.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/65/10/f6fe336c7624d6753c1f6edac102310ce4434d49b548c479e8e6420d4024/pyobjc_framework_accounts-12.1.tar.gz", hash = "sha256:76d62c5e7b831eb8f4c9ca6abaf79d9ed961dfffe24d89a041fb1de97fe56a3e", size = 15202 } +sdist = { url = "https://files.pythonhosted.org/packages/24/34/9f732b76456d64faffbef6232f1f9dbec7a7c4999ff46282fa418bd1af66/pytest_benchmark-5.2.3.tar.gz", hash = "sha256:deb7317998a23c650fd4ff76e1230066a76cb45dcece0aca5607143c619e7779", size = 341340, upload-time = "2025-11-09T18:48:43.215Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ac/70/5f9214250f92fbe2e07f35778875d2771d612f313af2a0e4bacba80af28e/pyobjc_framework_accounts-12.1-py2.py3-none-any.whl", hash = "sha256:e1544ad11a2f889a7aaed649188d0e76d58595a27eec07ca663847a7adb21ae5", size = 5104 }, + { url = "https://files.pythonhosted.org/packages/33/29/e756e715a48959f1c0045342088d7ca9762a2f509b945f362a316e9412b7/pytest_benchmark-5.2.3-py3-none-any.whl", hash = "sha256:bc839726ad20e99aaa0d11a127445457b4219bdb9e80a1afc4b51da7f96b0803", size = 45255, upload-time = "2025-11-09T18:48:39.765Z" }, ] [[package]] -name = "pyobjc-framework-addressbook" -version = "12.0" +name = "pywin32" +version = "311" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b4/9e/fed3073b5e712d3ed14d27410f03e84c1ea164c560ac7b597b1e6fc8dea8/pyobjc_framework_addressbook-12.0.tar.gz", hash = "sha256:1004b7d8e610748c9ce61aeab766319c2632d1e314838e95eb10f0dd6a64f3d8", size = 44733 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/ef/c2d6dc84cf3a75662721652c21d8a037d20b1f8f4f70070d24aa51292fcc/pyobjc_framework_addressbook-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:435d537e39d8517cab9af5797b535198d2ac09056e38f5c226356437b4db09aa", size = 12888 }, - { url = "https://files.pythonhosted.org/packages/1a/15/e0b1ed13a66676152490f220bd325894703348a2dd0e9e349072e8be621e/pyobjc_framework_addressbook-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:773908f0c7c126079ca9afff6679487a62c385511250d43d97508a1f4213621a", size = 12887 }, - { url = "https://files.pythonhosted.org/packages/90/cb/4e6b1871e3e1159854c3f23aeded18bfb4b3ba536296bdbd2218db27eb44/pyobjc_framework_addressbook-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bc1eef81979b6c64b68e33a96cecd07b9999e0f5c9e0bccb4f48702f2caecfe1", size = 12899 }, - { url = "https://files.pythonhosted.org/packages/11/f7/e794035122e8ec21f2411483145a966ef1716cfba6001b1d657325b6cdb4/pyobjc_framework_addressbook-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:05ade2fada2ba7601799a2243496fefdb9e708157e4676c07f29b741c78edc5b", size = 12919 }, - { url = "https://files.pythonhosted.org/packages/fc/ac/242cf2b0d292b28ff00ebb8f46cfd6882c0dc4a72662ad22243eed80eda0/pyobjc_framework_addressbook-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:87ed2a5004ff58778b999e7006ba325659d3e74ba6cbe97f73108ce65240b1fb", size = 13074 }, - { url = "https://files.pythonhosted.org/packages/76/d8/6d23d431d87384f55b85fe47f8c8deda9f025c9ff2c6ac46325ddbc0af7e/pyobjc_framework_addressbook-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:10c8274a4f369c27f608ed4e36343dc5a37e11f53adfb4069124e290e1af3bba", size = 12977 }, - { url = "https://files.pythonhosted.org/packages/ee/45/dec0a83a532dc345bd013f04c4d8e0aa117aa1e2c3fbc79891f8057d41f9/pyobjc_framework_addressbook-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c541a39c51988ed1e29043a6bd23ac31e37edf2fe9b41bc0b09bf1cbb4d4f632", size = 13142 }, + { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432, upload-time = "2025-07-14T20:13:05.9Z" }, + { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103, upload-time = "2025-07-14T20:13:07.698Z" }, + { url = "https://files.pythonhosted.org/packages/57/38/d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012/pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b", size = 8778557, upload-time = "2025-07-14T20:13:11.11Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, + { url = "https://files.pythonhosted.org/packages/59/42/b86689aac0cdaee7ae1c58d464b0ff04ca909c19bb6502d4973cdd9f9544/pywin32-311-cp39-cp39-win32.whl", hash = "sha256:aba8f82d551a942cb20d4a83413ccbac30790b50efb89a75e4f586ac0bb8056b", size = 8760837, upload-time = "2025-07-14T20:12:59.59Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8a/1403d0353f8c5a2f0829d2b1c4becbf9da2f0a4d040886404fc4a5431e4d/pywin32-311-cp39-cp39-win_amd64.whl", hash = "sha256:e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91", size = 9590187, upload-time = "2025-07-14T20:13:01.419Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/e0e8d802f124772cec9c75430b01a212f86f9de7546bda715e54140d5aeb/pywin32-311-cp39-cp39-win_arm64.whl", hash = "sha256:62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d", size = 8778162, upload-time = "2025-07-14T20:13:03.544Z" }, ] [[package]] -name = "pyobjc-framework-addressbook" -version = "12.1" +name = "pywin32-ctypes" +version = "0.2.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/28/0404af2a1c6fa8fd266df26fb6196a8f3fb500d6fe3dab94701949247bea/pyobjc_framework_addressbook-12.1.tar.gz", hash = "sha256:c48b740cf981103cef1743d0804a226d86481fcb839bd84b80e9a586187e8000", size = 44359 } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/e0/e483b773845f7944a008d060361deca8eef3692674a0c9c126fc0a1fd143/pyobjc_framework_addressbook-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6291d67436112057df27f76d758a8fb9a6ff1557420dee0baf52e61cf174872", size = 12881 }, - { url = "https://files.pythonhosted.org/packages/9f/5a/2ecaa94e5f56c6631f0820ec4209f8075c1b7561fe37495e2d024de1c8df/pyobjc_framework_addressbook-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:681755ada6c95bd4a096bc2b9f9c24661ffe6bff19a96963ee3fad34f3d61d2b", size = 12879 }, - { url = "https://files.pythonhosted.org/packages/b6/33/da709c69cbb60df9522cd614d5c23c15b649b72e5d62fed1048e75c70e7b/pyobjc_framework_addressbook-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7893dd784322f4674299fb3ca40cb03385e5eddb78defd38f08c0b730813b56c", size = 12894 }, - { url = "https://files.pythonhosted.org/packages/62/eb/de0d539bbf31685050dd9fe8894bd2dbc1632bf5311fc74c2c3c46ce61d0/pyobjc_framework_addressbook-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f03312faeb3c381e040f965b288379468d567b1449c1cfe66d150885b48510a3", size = 12910 }, - { url = "https://files.pythonhosted.org/packages/e7/59/720da201349f67bca9e6b577fea1a8a3344e88a6527c48933be898c9559d/pyobjc_framework_addressbook-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3b6931f78e01a215df3d9a27d1a10aab04659e636b0836ac448f8dd7fc56a581", size = 13064 }, - { url = "https://files.pythonhosted.org/packages/1c/bc/7a0648f3b56f16eab76e349e873f21cc5d33864d9915bb33ade9a100d1c0/pyobjc_framework_addressbook-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e4e24094fa293f158ed21fcd57414b759dc1220c23efec4ee8a7672d726b3576", size = 12968 }, - { url = "https://files.pythonhosted.org/packages/4c/e1/96093b6180e6af5f98b04de159f30d2d0cdde4caac1967f371ccbea662f2/pyobjc_framework_addressbook-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:184bc73e38bd062dce1eb97eb2f14be322f2421daf78efe2747aedb886d93eb0", size = 13132 }, + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, ] [[package]] -name = "pyobjc-framework-adservices" -version = "12.0" +name = "pywinbox" +version = "0.7" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/63/98e08ce5ba933b104fe73126c1050fc2a4c02ebd654f1ecba272d98892d2/pyobjc_framework_adservices-12.0.tar.gz", hash = "sha256:e58ec0c617f9967d1c1b717fb291ce675555f7ece0b3999d2e8b74d2a49c161e", size = 11834 } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/26/ecad8d077c3ce9662fdd57c6c0d1d6ba89b8bd96bcfe4ed28f6c214365f8/pyobjc_framework_adservices-12.0-py2.py3-none-any.whl", hash = "sha256:bf6f6992a00295e936a0cde486f20cf0747b0341d317ead3a353c6c7d327a2e2", size = 3505 }, + { url = "https://files.pythonhosted.org/packages/b1/37/d59397221e15d2a7f38afaa4e8e6b8c244d818044f7daa0bdc5988df0a69/PyWinBox-0.7-py3-none-any.whl", hash = "sha256:8b2506a8dd7afa0a910b368762adfac885274132ef9151b0c81b0d2c6ffd6f83", size = 12274, upload-time = "2024-04-17T10:10:31.899Z" }, ] [[package]] -name = "pyobjc-framework-adservices" -version = "12.1" +name = "pywinctl" +version = "0.4.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pymonctl", marker = "sys_platform == 'win32'" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "pywinbox", marker = "sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/04/1c3d3e0a1ac981664f30b33407dcdf8956046ecde6abc88832cf2aa535f4/pyobjc_framework_adservices-12.1.tar.gz", hash = "sha256:7a31fc8d5c6fd58f012db87c89ba581361fc905114bfb912e0a3a87475c02183", size = 11793 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/13/f7796469b25f50750299c4b0e95dc2f75c7c7fc4c93ef2c644f947f10529/pyobjc_framework_adservices-12.1-py2.py3-none-any.whl", hash = "sha256:9ca3c55e35b2abb3149a0bce5de9a1f7e8ee4f8642036910ca8586ab2e161538", size = 3492 }, + { url = "https://files.pythonhosted.org/packages/be/33/8e4f632210b28fc9e998a9ab990e7ed97ecd2800cc50038e3800e1d85dbe/PyWinCtl-0.4.1-py3-none-any.whl", hash = "sha256:4d875e22969e1c6239d8c73156193630aaab876366167b8d97716f956384b089", size = 63158, upload-time = "2024-09-23T08:33:39.881Z" }, ] [[package]] -name = "pyobjc-framework-adsupport" -version = "12.0" +name = "questionary" +version = "2.1.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "prompt-toolkit", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b0/e2/0deac6d431ba4b319784b8b25e6bd060385556d50ff1b76aab7b43d54972/pyobjc_framework_adsupport-12.0.tar.gz", hash = "sha256:accaaa66739260b5420aa085cfb1dd1fc4b0b52c59076124b9355bd60d2c129c", size = 11714 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/45/eafb0bba0f9988f6a2520f9ca2df2c82ddfa8d67c95d6625452e97b204a5/questionary-2.1.1.tar.gz", hash = "sha256:3d7e980292bb0107abaa79c68dd3eee3c561b83a0f89ae482860b181c8bd412d", size = 25845, upload-time = "2025-08-28T19:00:20.851Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/bb/82529e38c1f83f08a4f84241e2935ad3c545142a8e7d65d9c5461e6ca56e/pyobjc_framework_adsupport-12.0-py2.py3-none-any.whl", hash = "sha256:649fb4114cf1f16bb9c402c360a39eb0ea84e72e49cd6db5451a2806bbc05b24", size = 3412 }, + { url = "https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl", hash = "sha256:a51af13f345f1cdea62347589fbb6df3b290306ab8930713bfae4d475a7d4a59", size = 36753, upload-time = "2025-08-28T19:00:19.56Z" }, ] [[package]] -name = "pyobjc-framework-adsupport" -version = "12.1" +name = "readme-renderer" +version = "44.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "nh3", marker = "sys_platform == 'win32'" }, + { name = "pygments", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/77/f26a2e9994d4df32e9b3680c8014e350b0f1c78d7673b3eba9de2e04816f/pyobjc_framework_adsupport-12.1.tar.gz", hash = "sha256:9a68480e76de567c339dca29a8c739d6d7b5cad30e1cd585ff6e49ec2fc283dd", size = 11645 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz", hash = "sha256:8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", size = 32056, upload-time = "2024-07-08T15:00:57.805Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/1a/3e90d5a09953bde7b60946cd09cca1411aed05dea855cb88cb9e944c7006/pyobjc_framework_adsupport-12.1-py2.py3-none-any.whl", hash = "sha256:97dcd8799dd61f047bb2eb788bbde81f86e95241b5e5173a3a61cfc05b5598b1", size = 3401 }, + { url = "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl", hash = "sha256:2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", size = 13310, upload-time = "2024-07-08T15:00:56.577Z" }, ] [[package]] -name = "pyobjc-framework-applescriptkit" -version = "12.0" +name = "regex" +version = "2024.9.11" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/ee/9f861171c5dbc1f132e884415e573038372fb1af83c1d23fdaeae20ab4e3/pyobjc_framework_applescriptkit-12.0.tar.gz", hash = "sha256:69f57f2f6dd72bdb83f69e33839438caf804302fb177e00136cd49a172e6cc32", size = 11504 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/38/148df33b4dbca3bd069b963acab5e0fa1a9dbd6820f8c322d0dd6faeff96/regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd", size = 399403, upload-time = "2024-09-11T19:00:09.814Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/84/595a8acb19958de210f04c5d79bff30337d04ca00c20374db4acbfe5c83d/pyobjc_framework_applescriptkit-12.0-py2.py3-none-any.whl", hash = "sha256:940e10bc281a0155a01f817275b11c6819ae773891847c8c90403d27aa6efb5d", size = 4363 }, + { url = "https://files.pythonhosted.org/packages/ab/67/43174d2b46fa947b7b9dfe56b6c8a8a76d44223f35b1d64645a732fd1d6f/regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0", size = 261624, upload-time = "2024-09-11T18:57:23.777Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/4f9c47d9395b6aff24874c761d8d620c0232f97c43ef3cf668c8b355e7a7/regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623", size = 274020, upload-time = "2024-09-11T18:57:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a9/bfb29b3de3eb11dc9b412603437023b8e6c02fb4e11311863d9bf62c403a/regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9", size = 261644, upload-time = "2024-09-11T18:57:53.334Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ab/1ad2511cf6a208fde57fafe49829cab8ca018128ab0d0b48973d8218634a/regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf", size = 274033, upload-time = "2024-09-11T18:57:55.605Z" }, + { url = "https://files.pythonhosted.org/packages/bc/4e/ba1cbca93141f7416624b3ae63573e785d4bc1834c8be44a8f0747919eca/regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776", size = 262058, upload-time = "2024-09-11T18:58:23.452Z" }, + { url = "https://files.pythonhosted.org/packages/6e/16/efc5f194778bf43e5888209e5cec4b258005d37c613b67ae137df3b89c53/regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009", size = 273526, upload-time = "2024-09-11T18:58:25.191Z" }, + { url = "https://files.pythonhosted.org/packages/58/3a/f5903977647a9a7e46d5535e9e96c194304aeeca7501240509bde2f9e17f/regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8", size = 262035, upload-time = "2024-09-11T18:58:53.526Z" }, + { url = "https://files.pythonhosted.org/packages/ff/80/51ba3a4b7482f6011095b3a036e07374f64de180b7d870b704ed22509002/regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f", size = 273510, upload-time = "2024-09-11T18:58:55.263Z" }, + { url = "https://files.pythonhosted.org/packages/97/9e/0400d742b9647b4940609a96d550de89e4e89c85f6a370796dab25b5979c/regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142", size = 261680, upload-time = "2024-09-11T19:00:05.776Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f1/aef1112652ac7b3922d2c129f8325a4fd286b66691127dd99f380f8ede19/regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919", size = 274066, upload-time = "2024-09-11T19:00:07.798Z" }, ] [[package]] -name = "pyobjc-framework-applescriptkit" -version = "12.1" +name = "requests" +version = "2.32.5" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "certifi", marker = "sys_platform == 'win32'" }, + { name = "charset-normalizer", marker = "sys_platform == 'win32'" }, + { name = "idna", marker = "sys_platform == 'win32'" }, + { name = "urllib3", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/f1/e0c07b2a9eb98f1a2050f153d287a52a92f873eeddb41b74c52c144d8767/pyobjc_framework_applescriptkit-12.1.tar.gz", hash = "sha256:cb09f88cf0ad9753dedc02720065818f854b50e33eb4194f0ea34de6d7a3eb33", size = 11451 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/70/6c399c6ebc37a4e48acf63967e0a916878aedfe420531f6d739215184c0c/pyobjc_framework_applescriptkit-12.1-py2.py3-none-any.whl", hash = "sha256:b955fc017b524027f635d92a8a45a5fd9fbae898f3e03de16ecd94aa4c4db987", size = 4352 }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] -name = "pyobjc-framework-applescriptobjc" -version = "12.0" +name = "requests-toolbelt" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "requests", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/81/28f123566793ff9037a218a393272a569020ebd228f343dccb6920855355/pyobjc_framework_applescriptobjc-12.0.tar.gz", hash = "sha256:5d89b060fa960bc34b5a505cd5fbbd3625c8035d7246ff0315a00acb205e8a92", size = 11624 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/e7/f53cb5ade63db949ecde23bdcc20867453f24d6faf29b9fa2a2276ab252c/pyobjc_framework_applescriptobjc-12.0-py2.py3-none-any.whl", hash = "sha256:6b4926a29ea2cefea482ff28152dda0e05f2f8ec6d9f84d97a6d19bb872f824b", size = 4461 }, + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, ] [[package]] -name = "pyobjc-framework-applescriptobjc" -version = "12.1" +name = "rfc3986" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c0/4b/e4d1592207cbe17355e01828bdd11dd58f31356108f6a49f5e0484a5df50/pyobjc_framework_applescriptobjc-12.1.tar.gz", hash = "sha256:dce080ed07409b0dda2fee75d559bd312ea1ef0243a4338606440f282a6a0f5f", size = 11588 } +sdist = { url = "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", size = 49026, upload-time = "2022-01-10T00:52:30.832Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/5f/9ce6706399706930eb29c5308037109c30cfb36f943a6df66fdf38cc842a/pyobjc_framework_applescriptobjc-12.1-py2.py3-none-any.whl", hash = "sha256:79068f982cc22471712ce808c0a8fd5deea11258fc8d8c61968a84b1962a3d10", size = 4454 }, + { url = "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", size = 31326, upload-time = "2022-01-10T00:52:29.594Z" }, ] [[package]] -name = "pyobjc-framework-applicationservices" -version = "12.0" +name = "rich" +version = "14.2.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coretext", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "pygments", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/79/0b7a00bcc7561c816281382c933a46aa7a90acca48b942054b7d32d0caf7/pyobjc_framework_applicationservices-12.0.tar.gz", hash = "sha256:eabbf6c57573158714aa656e5d0112330a87692db336aae7e94e216db89e93be", size = 103595 } +sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/e3/6fc8f9b89dff563d145b089e0e12f1f5a238e6be3ac8987416db9fafe257/pyobjc_framework_applicationservices-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fe484597eb9d53b14abf1d44dad2d242d2c1e17849035b518f3c99d76ea817ea", size = 32798 }, - { url = "https://files.pythonhosted.org/packages/51/ba/62e7bfce26b1f742a4b6f204a77d807e14766ceb3c6b9f702be6de3f9b38/pyobjc_framework_applicationservices-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d9684f53b42d534fd67a23a9958c53bf6c738e7b478fa3a87263865a013f287", size = 32799 }, - { url = "https://files.pythonhosted.org/packages/74/3a/3db8a9bdd895781d67eeb096064944b36e0fb48caded27b62ec499b78a2b/pyobjc_framework_applicationservices-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e1a89cd9da992a07497d93931edc6469cc53c39dc0ab47b62eaa4d10204c37c6", size = 32850 }, - { url = "https://files.pythonhosted.org/packages/9b/cf/ae603c46217c04ec7598c62a2d46fa9b6ab66e127148bff1f352b850fc72/pyobjc_framework_applicationservices-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9ff39c0301f2430253fbfea114afb00594426e0b66a1bec1c28cd60f75d02005", size = 32871 }, - { url = "https://files.pythonhosted.org/packages/c6/79/a578c8b1aa8634c2c9f8bbd66a3cdc385013a4cd9558741a4da26c040e51/pyobjc_framework_applicationservices-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ecd7651ab330790722f3590465392dbab3d76be0370ff7e015584053d571e218", size = 33132 }, - { url = "https://files.pythonhosted.org/packages/ce/8b/336788981a3c1aa00e75d021a5ed00e453587da1eee0d55bb8b674f2b623/pyobjc_framework_applicationservices-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b153a0b8e915751ca50651be6f9fe002ef7536677f5c37a4dff0f3fd98e5b16a", size = 33007 }, - { url = "https://files.pythonhosted.org/packages/a8/50/0e300544e8204d02b4a0477fa157e904921c98b15f67e19b4a49a80f02c9/pyobjc_framework_applicationservices-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:56f8fabdc3972fc9a97630b24c31d8b852502c3273071ab3d3b467cc5e7c6431", size = 33250 }, + { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, ] [[package]] -name = "pyobjc-framework-applicationservices" -version = "12.1" +name = "roman-numerals" +version = "4.1.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coretext", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/be/6a/d4e613c8e926a5744fc47a9e9fea08384a510dc4f27d844f7ad7a2d793bd/pyobjc_framework_applicationservices-12.1.tar.gz", hash = "sha256:c06abb74f119bc27aeb41bf1aef8102c0ae1288aec1ac8665ea186a067a8945b", size = 103247 } +sdist = { url = "https://files.pythonhosted.org/packages/ae/f9/41dc953bbeb056c17d5f7a519f50fdf010bd0553be2d630bc69d1e022703/roman_numerals-4.1.0.tar.gz", hash = "sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2", size = 9077, upload-time = "2025-12-17T18:25:34.381Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/9d/3cf36e7b08832e71f5d48ddfa1047865cf2dfc53df8c0f2a82843ea9507a/pyobjc_framework_applicationservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c4fd1b008757182b9e2603a63c6ffa930cc412fab47294ec64260ab3f8ec695d", size = 32791 }, - { url = "https://files.pythonhosted.org/packages/17/86/d07eff705ff909a0ffa96d14fc14026e9fc9dd716233648c53dfd5056b8e/pyobjc_framework_applicationservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdddd492eeac6d14ff2f5bd342aba29e30dffa72a2d358c08444da22129890e2", size = 32784 }, - { url = "https://files.pythonhosted.org/packages/37/a7/55fa88def5c02732c4b747606ff1cbce6e1f890734bbd00f5596b21eaa02/pyobjc_framework_applicationservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c8f6e2fb3b3e9214ab4864ef04eee18f592b46a986c86ea0113448b310520532", size = 32835 }, - { url = "https://files.pythonhosted.org/packages/fc/21/79e42ee836f1010f5fe9e97d2817a006736bd287c15a3674c399190a2e77/pyobjc_framework_applicationservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bd1f4dbb38234a24ae6819f5e22485cf7dd3dd4074ff3bf9a9fdb4c01a3b4a38", size = 32859 }, - { url = "https://files.pythonhosted.org/packages/66/3a/0f1d4dcf2345e875e5ea9761d5a70969e241d24089133d21f008dde596f5/pyobjc_framework_applicationservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8a5d2845249b6a85ba9e320a9848468c3f8cd6f59605a9a43f406a7810eaa830", size = 33115 }, - { url = "https://files.pythonhosted.org/packages/40/44/3196b40fec68b4413c92875311f17ccf4c3ff7d2e53676f8fc18ad29bd18/pyobjc_framework_applicationservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f43c9a24ad97a9121276d4d571aa04a924282c80d7291cfb3b29839c3e2013a8", size = 32997 }, - { url = "https://files.pythonhosted.org/packages/fd/bb/dab21d2210d3ef7dd0616df7e8ea89b5d8d62444133a25f76e649a947168/pyobjc_framework_applicationservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1f72e20009a4ebfd5ed5b23dc11c1528ad6b55cc63ee71952ddb2a5e5f1cb7da", size = 33238 }, + { url = "https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl", hash = "sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7", size = 7676, upload-time = "2025-12-17T18:25:33.098Z" }, ] [[package]] -name = "pyobjc-framework-apptrackingtransparency" -version = "12.0" +name = "ruff" +version = "0.14.10" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/78/bb/7cde677be892d94ca07b82612704861899710865e650530c5a0fed91fbea/pyobjc_framework_apptrackingtransparency-12.0.tar.gz", hash = "sha256:22bd689ab7a6b457ece8bf86cad615af10c2f36203ea4307273f74e4e372cdf4", size = 12468 } +sdist = { url = "https://files.pythonhosted.org/packages/57/08/52232a877978dd8f9cf2aeddce3e611b40a63287dfca29b6b8da791f5e8d/ruff-0.14.10.tar.gz", hash = "sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4", size = 5859763, upload-time = "2025-12-18T19:28:57.98Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/42/1fd41fd755fb686f2842a51610351904e1414448fe306fa3ff2d9a72e8dd/pyobjc_framework_apptrackingtransparency-12.0-py2.py3-none-any.whl", hash = "sha256:543d9eb6ce6397930b8eb6e7162e6592f708f251f2fd6e9307bfa965daf10f7d", size = 3891 }, + { url = "https://files.pythonhosted.org/packages/f2/1c/d7b67ab43f30013b47c12b42d1acd354c195351a3f7a1d67f59e54227ede/ruff-0.14.10-py3-none-win32.whl", hash = "sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6", size = 13196187, upload-time = "2025-12-18T19:29:19.006Z" }, + { url = "https://files.pythonhosted.org/packages/fb/9c/896c862e13886fae2af961bef3e6312db9ebc6adc2b156fe95e615dee8c1/ruff-0.14.10-py3-none-win_amd64.whl", hash = "sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154", size = 14661283, upload-time = "2025-12-18T19:29:30.16Z" }, + { url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" }, ] [[package]] -name = "pyobjc-framework-apptrackingtransparency" -version = "12.1" +name = "setuptools" +version = "80.9.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0d/de/f24348982ecab0cb13067c348fc5fbc882c60d704ca290bada9a2b3e594b/pyobjc_framework_apptrackingtransparency-12.1.tar.gz", hash = "sha256:e25bf4e4dfa2d929993ee8e852b28fdf332fa6cde0a33328fdc3b2f502fa50ec", size = 12407 } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/b2/90120b93ecfb099b6af21696c26356ad0f2182bdef72b6cba28aa6472ca6/pyobjc_framework_apptrackingtransparency-12.1-py2.py3-none-any.whl", hash = "sha256:23a98ade55495f2f992ecf62c3cbd8f648cbd68ba5539c3f795bf66de82e37ca", size = 3879 }, + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, ] [[package]] -name = "pyobjc-framework-arkit" -version = "12.0" +name = "setuptools-scm" +version = "9.2.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "packaging", marker = "sys_platform == 'win32'" }, + { name = "setuptools", marker = "sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "typing-extensions", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/32/edd3198e33e9ad0e5d47cb228c1346a05a6523d242af1f9dd74ec2ef3c8b/pyobjc_framework_arkit-12.0.tar.gz", hash = "sha256:29c34f5db22f084cf1ae285562a5ad6522f9166d725eb55df987021f8d02e257", size = 35830 } +sdist = { url = "https://files.pythonhosted.org/packages/7b/b1/19587742aad604f1988a8a362e660e8c3ac03adccdb71c96d86526e5eb62/setuptools_scm-9.2.2.tar.gz", hash = "sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57", size = 203385, upload-time = "2025-10-19T22:08:05.608Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/23/43d3032baebebb2d35055c56a3c42f31a68fb84dc80443e565644ac213c0/pyobjc_framework_arkit-12.0-py2.py3-none-any.whl", hash = "sha256:90997c4e205bb2023886f59de635d1d9ded139d0add8d9941c8ebb69d5a92284", size = 8310 }, + { url = "https://files.pythonhosted.org/packages/3d/ea/ac2bf868899d0d2e82ef72d350d97a846110c709bacf2d968431576ca915/setuptools_scm-9.2.2-py3-none-any.whl", hash = "sha256:30e8f84d2ab1ba7cb0e653429b179395d0c33775d54807fc5f1dd6671801aef7", size = 62975, upload-time = "2025-10-19T22:08:04.007Z" }, ] [[package]] -name = "pyobjc-framework-arkit" -version = "12.1" +name = "snowballstemmer" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/8b/843fe08e696bca8e7fc129344965ab6280f8336f64f01ba0a8862d219c3f/pyobjc_framework_arkit-12.1.tar.gz", hash = "sha256:0c5c6b702926179700b68ba29b8247464c3b609fd002a07a3308e72cfa953adf", size = 35814 } +sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575, upload-time = "2025-05-09T16:34:51.843Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/1e/64c55b409243b3eb9abc7a99e7b27ad4e16b9e74bc4b507fb7e7b81fd41a/pyobjc_framework_arkit-12.1-py2.py3-none-any.whl", hash = "sha256:f6d39e28d858ee03f052d6780a552247e682204382dbc090f1d3192fa1b21493", size = 8302 }, + { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" }, ] [[package]] -name = "pyobjc-framework-audiovideobridging" -version = "12.0" +name = "soupsieve" +version = "2.8.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/16/92f2ecb7ad7329ff25b44b7cc1d7bd6dbf56bc4511c99cd1b157d4f4941f/pyobjc_framework_audiovideobridging-12.0.tar.gz", hash = "sha256:b38b564b4b2f5edbba8bfde8e0c26eef3a7a654faf0ad0a1b2a1ea6219371772", size = 38916 } +sdist = { url = "https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz", hash = "sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size = 117856, upload-time = "2025-12-18T13:50:34.655Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/48/fdd72ce1c7e1225a376cad938ab5b490d9241653667ee731b2e8cc580006/pyobjc_framework_audiovideobridging-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c250ef66ba26c1180977da3aaa2d4a780f24903c0cae5ecb2bd09602603d97ac", size = 11047 }, - { url = "https://files.pythonhosted.org/packages/d0/78/172a079cc7377f9084a4b8d869e48b4ae7a9891a1b195e66dc56ecc9b9ee/pyobjc_framework_audiovideobridging-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:472917360aee1c74012f2ff682fdfe6fb52c5bcf3214bf46121c13085ee82edd", size = 11047 }, - { url = "https://files.pythonhosted.org/packages/ce/3a/2df9d98c4e50123bb7f5f883406527049975b7415b0e4401bb90812e004f/pyobjc_framework_audiovideobridging-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9154664ff6ab0a2f13d5142eb3fb16dae607f46b9dc91bab3712080db4f29ad9", size = 11056 }, - { url = "https://files.pythonhosted.org/packages/7e/97/0ffc62736fd0326ce2c9cbff469dea3fc8d00f9a994b533476fdef8c1fc9/pyobjc_framework_audiovideobridging-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:792a70c1111480a75732cbbc7004c071f2a3d6aedddff8d2af22727fb235a519", size = 11078 }, - { url = "https://files.pythonhosted.org/packages/23/96/237a77a7a09f4a1bd6b52f84aaa628e3adfd62e31ed299ff6868f97e5f55/pyobjc_framework_audiovideobridging-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ff02fefd09bcb3636bb3891bec850ed60940c06e57ee6463ac48df27ada6ecd1", size = 11250 }, - { url = "https://files.pythonhosted.org/packages/df/9b/fd15d1586e6b6df028eeda202629093d6c60e0d7327986381c4e9b31cb08/pyobjc_framework_audiovideobridging-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d847c0982df26014326e27aeecdbec803d48663a3bdbeb0b2492820bdb43b789", size = 11138 }, - { url = "https://files.pythonhosted.org/packages/77/92/ecdbf0e1c3455884a01744982533605b0304a7d33c669642bce2301b237c/pyobjc_framework_audiovideobridging-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4f30bb5aa605a5330fde3ab51f238130fb3cfb6227fc3b466bbdf8388b33bcc4", size = 11311 }, + { url = "https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl", hash = "sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size = 36710, upload-time = "2025-12-18T13:50:33.267Z" }, ] [[package]] -name = "pyobjc-framework-audiovideobridging" -version = "12.1" +name = "sphinx" +version = "7.4.7" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version < '3.10' and sys_platform == 'win32'", ] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "alabaster", version = "0.7.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "babel", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "imagesize", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "jinja2", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "pygments", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "requests", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "snowballstemmer", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9f/51/f81581e7a3c5cb6c9254c6f1e1ee1d614930493761dec491b5b0d49544b9/pyobjc_framework_audiovideobridging-12.1.tar.gz", hash = "sha256:6230ace6bec1f38e8a727c35d054a7be54e039b3053f98e6dd8d08d6baee2625", size = 38457 } +sdist = { url = "https://files.pythonhosted.org/packages/5b/be/50e50cb4f2eff47df05673d361095cafd95521d2a22521b920c67a372dcb/sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe", size = 8067911, upload-time = "2024-07-20T14:46:56.059Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/7c/9b1a3a8f138ff171e08bbf8af8bb66e0e6e98a23b62658ab9e47dc3cb610/pyobjc_framework_audiovideobridging-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c2fa51d674ba30801cfe67d1b5e71424635b62f6377b96602bce124ae3086823", size = 11037 }, - { url = "https://files.pythonhosted.org/packages/0a/f8/c614630fa382720bbd42a0ff567378630c36d10f114476d6c70b73f73b49/pyobjc_framework_audiovideobridging-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6bc24a7063b08c7d9f1749a4641430d363b6dba642c04d09b58abcee7a5260cb", size = 11037 }, - { url = "https://files.pythonhosted.org/packages/f3/8e/a28badfcc6c731696e3d3a8a83927bd844d992f9152f903c2fee355702ca/pyobjc_framework_audiovideobridging-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:010021502649e2cca4e999a7c09358d48c6b0ed83530bbc0b85bba6834340e4b", size = 11052 }, - { url = "https://files.pythonhosted.org/packages/9a/e7/d6436115ebb623dbc14283f5e76577245fa6460995e9f7981e79e97003d3/pyobjc_framework_audiovideobridging-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9901a88b6c8dbc982d8605c6b1ff0330ff80647a0a96a8187b6784249eb42dc", size = 11065 }, - { url = "https://files.pythonhosted.org/packages/97/ca/d6740b0f666dca9fc28d4e08358a7a2fffaf879cf9c49d2c99c470b83ef8/pyobjc_framework_audiovideobridging-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0c57fdf1762f616d10549c0eddf84e59c193800f4a7932aaa7d5f13c123609c0", size = 11239 }, - { url = "https://files.pythonhosted.org/packages/98/9a/f4b435523c297cdf25bfe0d0a8bb25ae0d3fa19813c2365cf1e93f462948/pyobjc_framework_audiovideobridging-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:88f97bf62cba0d07f623650a7b2a58f73aedcc03b523e2bcd5653042dd50c152", size = 11130 }, - { url = "https://files.pythonhosted.org/packages/da/96/33c5aec0940ff3f81ad11b3a154d3cae94803d48376f1436392c4484b6ff/pyobjc_framework_audiovideobridging-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:84d466e0c2fbf466fd5ca9209139e321ddf3f96bbd987308c73bb4a243ab80b2", size = 11302 }, + { url = "https://files.pythonhosted.org/packages/0d/ef/153f6803c5d5f8917dbb7f7fcf6d34a871ede3296fa89c2c703f5f8a6c8e/sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239", size = 3401624, upload-time = "2024-07-20T14:46:52.142Z" }, ] [[package]] -name = "pyobjc-framework-authenticationservices" -version = "12.0" +name = "sphinx" +version = "8.1.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version == '3.10.*' and sys_platform == 'win32'", ] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "babel", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "colorama", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "imagesize", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "jinja2", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "pygments", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "requests", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "snowballstemmer", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "tomli", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/37/09/2e51e8e72a72536c3721124bdd6ac93f88ec28ad352a35437536ec08c70f/pyobjc_framework_authenticationservices-12.0.tar.gz", hash = "sha256:6dbc94140584d439d5106fd3b64db97c3681ff27c9b3793a6e7885df9974af16", size = 58917 } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/7e/819c60fea040747a0c75929650221dbbc05a4ee7536262905454ff262337/pyobjc_framework_authenticationservices-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b49d98febd2af1237947bd4960501c5f4152de00fa376389198ca77c39cfc2b", size = 20628 }, - { url = "https://files.pythonhosted.org/packages/4c/78/87aceec2f0586cfbf6560916cdbe954dc419135f335dda1ec7194d24c3cb/pyobjc_framework_authenticationservices-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:24bc6e5855a2029a9d23cd8b209d574fa55d3cadcab5c91c357c78fea90a31eb", size = 20632 }, - { url = "https://files.pythonhosted.org/packages/64/38/f552ee4019ef752156d53f0ba56e167175976ff2e2bea6c48284dbcc96e5/pyobjc_framework_authenticationservices-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c2c534cf2583aa811477ab1bb69a52137bd076a704e563922eee5e3d6b906d6", size = 20734 }, - { url = "https://files.pythonhosted.org/packages/25/cf/6c5ab3861d2ea4e65f760955d57f8c2f2b2342480ea4d58ea395ad77232b/pyobjc_framework_authenticationservices-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:113e6cf5db0f04194e5fa290f03c32390d667e330b524cdf62a47df1b5974917", size = 20744 }, - { url = "https://files.pythonhosted.org/packages/be/e6/2958b9cc06808c2e129bb9e13184818227c7b42b7dcbcde41f7d66153e80/pyobjc_framework_authenticationservices-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ee7a913fa66a7adedfeadb6a663096945119ce0b8c237ed2db3b328b083d1e91", size = 20991 }, - { url = "https://files.pythonhosted.org/packages/83/4a/31cd3c2bc7538f81d047e64fed7e7034a35d8227d6633bc341a18c5cd9e5/pyobjc_framework_authenticationservices-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0e31113dc12946dfd15aa5d0f2933aa077b69b0510f213fd6517192e27a09cb9", size = 20750 }, - { url = "https://files.pythonhosted.org/packages/2a/1c/b124c0d9aec42bd770e9803743e52228202c709f7183265d6996db0cec5b/pyobjc_framework_authenticationservices-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:46cbdbfa8ad581cf1d3e0da9e1256a92b663aab42f3a89a9acf2fd8fe4f99e94", size = 21027 }, + { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125, upload-time = "2024-10-13T20:27:10.448Z" }, ] [[package]] -name = "pyobjc-framework-authenticationservices" -version = "12.1" +name = "sphinx" +version = "9.0.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", + "python_full_version >= '3.11' and sys_platform == 'win32'", ] dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "babel", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "imagesize", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "jinja2", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "packaging", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "pygments", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "requests", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "roman-numerals", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "snowballstemmer", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6c/18/86218de3bf67fc1d810065f353d9df70c740de567ebee8550d476cb23862/pyobjc_framework_authenticationservices-12.1.tar.gz", hash = "sha256:cef71faeae2559f5c0ff9a81c9ceea1c81108e2f4ec7de52a98c269feff7a4b6", size = 58683 } +sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/8e/8547d8b8574c8d42802b6b904e3354243fb23daed9106333a59323b5154b/pyobjc_framework_authenticationservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39bba6cc6041467d0046a04610e8aacc852961c82055d84bf3981971780ee5eb", size = 20636 }, - { url = "https://files.pythonhosted.org/packages/c2/16/2f19d8a95f0cf8e940f7b7fb506ced805d5522b4118336c8e640c34517ae/pyobjc_framework_authenticationservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c15bb81282356f3f062ac79ff4166c93097448edc44b17dcf686e1dac78cc832", size = 20636 }, - { url = "https://files.pythonhosted.org/packages/f1/1d/e9f296fe1ee9a074ff6c45ce9eb109fc3b45696de000f373265c8e42fd47/pyobjc_framework_authenticationservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6fd5ce10fe5359cbbfe03eb12cab3e01992b32ab65653c579b00ac93cf674985", size = 20738 }, - { url = "https://files.pythonhosted.org/packages/23/2f/7016b3ca344b079932abe56d7d6216c88cac715d81ca687753aed4b749f7/pyobjc_framework_authenticationservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4491a2352cd53a38c7d057d674b1aa40d05eddb8dd7a1a2f415d9f2858b52d40", size = 20746 }, - { url = "https://files.pythonhosted.org/packages/5b/63/f2d1137e542b2badb5803e01628a61e9df8853b773513a6a066524c77903/pyobjc_framework_authenticationservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a3957039eae3a82ada418ee475a347619e42ba10c45a57cd6ca83b1a0e61c2ad", size = 20994 }, - { url = "https://files.pythonhosted.org/packages/a2/93/13232a82318153ec392a46c0f674baeb64ce0aaab05683d4c129ac0fafec/pyobjc_framework_authenticationservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3ee69de818ce91c3bea6f87deba59ab8392a2c17c48f3d6fce0639c0e548bb0c", size = 20753 }, - { url = "https://files.pythonhosted.org/packages/d3/95/c941a19224a132b206948e1d329a1e708e41e013ef0d316162af7cfc54c6/pyobjc_framework_authenticationservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b14997d96887127f393434d42e3e108eeca2116ca935dd7e37e91c709a93b422", size = 21032 }, + { url = "https://files.pythonhosted.org/packages/c6/3f/4bbd76424c393caead2e1eb89777f575dee5c8653e2d4b6afd7a564f5974/sphinx-9.0.4-py3-none-any.whl", hash = "sha256:5bebc595a5e943ea248b99c13814c1c5e10b3ece718976824ffa7959ff95fffb", size = 3917713, upload-time = "2025-12-04T07:45:24.944Z" }, ] [[package]] -name = "pyobjc-framework-automaticassessmentconfiguration" -version = "12.0" +name = "sphinxcontrib-applehelp" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1c/74/e1bb0cfd93cfbdfec173c141d2bbb619e9b500551209ba9d8da81e896665/pyobjc_framework_automaticassessmentconfiguration-12.0.tar.gz", hash = "sha256:8922e5366d2cd6e09f8366e85afe012f9b7fa81d192f98674daa55f098de3f1e", size = 22045 } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/e4/c6933be9cb8eeafa286ad83a8216f3c59655cc7120e94733233a5f7c3cb4/pyobjc_framework_automaticassessmentconfiguration-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f7cf8be544b659600f2315f303afbee300aef03de6196569656f718df9910f77", size = 9277 }, - { url = "https://files.pythonhosted.org/packages/5a/02/8c5b940ec9b99e6b0063fed93348139c58843fdb94dcdadad4fd48fb5b70/pyobjc_framework_automaticassessmentconfiguration-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:81bcf67f109557600ac461c14c0ee0f0a87d3c3b8bc7f9a7b44eec6540b97164", size = 9278 }, - { url = "https://files.pythonhosted.org/packages/d1/38/d741db0a685cf3e4b2267f494d8af1966344f3813816a9e61666e94d8091/pyobjc_framework_automaticassessmentconfiguration-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ef0cb8569234770f71d8d62e393fa5fa69155fd47b81cfd1e4e803585cb5f389", size = 9296 }, - { url = "https://files.pythonhosted.org/packages/aa/02/b1afb728f6369b18824f139d89ac3b500beddd3f93e3993da9e9b12943fb/pyobjc_framework_automaticassessmentconfiguration-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c44bf1d4980b35e16858a93a357df73cd77b972096e4675b57058f4d2095b82d", size = 9309 }, - { url = "https://files.pythonhosted.org/packages/50/2a/e992f84082e9daa857f771b85fca96cdc0e7edad93511228e7514bf24368/pyobjc_framework_automaticassessmentconfiguration-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:818fef0fb48d122676422f9b639573eefd7fb05814ec28ca0f7de5e669895bbb", size = 9459 }, - { url = "https://files.pythonhosted.org/packages/17/24/10d1119a6fdbf933bf9128baa8dee30b7c30aa3b2c212c3a58ace111dd15/pyobjc_framework_automaticassessmentconfiguration-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:af22320b893869ecc2371af831de483bc7d0f885c7a032456c9ea90f95d57911", size = 9350 }, - { url = "https://files.pythonhosted.org/packages/c9/a9/c4582418bbd114c4fcb5c86d8c126878ee34dfc05ff368a7991562b40330/pyobjc_framework_automaticassessmentconfiguration-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:12d8c2f3ab3d8790ab1d84deee6d5c21eff7808a876e31995d4474e76703fcb0", size = 9504 }, + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, ] [[package]] -name = "pyobjc-framework-automaticassessmentconfiguration" -version = "12.1" +name = "sphinxcontrib-devhelp" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/24/080afe8189c47c4bb3daa191ccfd962400ca31a67c14b0f7c2d002c2e249/pyobjc_framework_automaticassessmentconfiguration-12.1.tar.gz", hash = "sha256:2b732c02d9097682ca16e48f5d3b10056b740bc091e217ee4d5715194c8970b1", size = 21895 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/50/4d/e9c86cd84905f565d3bdef675f0b90516b280f18aa2f20c84be0f02e0f49/pyobjc_framework_automaticassessmentconfiguration-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:096c1f0dcd96a6e9903b70b3090747e76344324c02066026c4f7c347bc1823ae", size = 9320 }, - { url = "https://files.pythonhosted.org/packages/fc/c9/4d2785565cc470daa222f93f3d332af97de600aef6bd23507ec07501999d/pyobjc_framework_automaticassessmentconfiguration-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d94a4a3beb77b3b2ab7b610c4b41e28593d15571724a9e6ab196b82acc98dc13", size = 9316 }, - { url = "https://files.pythonhosted.org/packages/f2/b2/fbec3d649bf275d7a9604e5f56015be02ef8dcf002f4ae4d760436b8e222/pyobjc_framework_automaticassessmentconfiguration-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c2e22ea67d7e6d6a84d968169f83d92b59857a49ab12132de07345adbfea8a62", size = 9332 }, - { url = "https://files.pythonhosted.org/packages/52/85/42cf8718bbfef47e67228a39d4f25b86b6fa9676f5ca5904af21ae42ad43/pyobjc_framework_automaticassessmentconfiguration-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:467739e70ddbc259bf453056cc9ce4ed96de8e6aad8122fa4035d2e6ecf9fc9c", size = 9344 }, - { url = "https://files.pythonhosted.org/packages/09/ec/a889dd812adfa446238853cf3cf6a7a2691e3096247a7ef75970d135e5bb/pyobjc_framework_automaticassessmentconfiguration-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b4ea4b00f70bf242a5d8ce9c420987239dbc74285588c141ac1e0d6bd71fcd4c", size = 9501 }, - { url = "https://files.pythonhosted.org/packages/dd/36/b7a59d77cf0f3dfe8676ecd0ab22dca215df11a0f1623cb0dbac29bb30d2/pyobjc_framework_automaticassessmentconfiguration-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f5f1818c6f77daf64d954878bbbda6b3f5e41e23b599210da08fefed1f1d5981", size = 9392 }, - { url = "https://files.pythonhosted.org/packages/f8/b4/bc5de9b5cce1d243823b283e0942bb353f72998c01688fb3b3da9061a731/pyobjc_framework_automaticassessmentconfiguration-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2e84dee31c3cb7dda4cded047f8b2080378da5c13e8682e45852be5e34b647ed", size = 9541 }, + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, ] [[package]] -name = "pyobjc-framework-automator" -version = "12.0" +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/25/d3/17178d3c6fde3f95718f9832a799d2328e59ba5158d1434fe2767c957187/pyobjc_framework_automator-12.0.tar.gz", hash = "sha256:7c2f0236b2a474a2d411835419e8f140e0f563be299f770fe8762f96d254443d", size = 186429 } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/08/28d293cfb0ef8be27b1af44c93d7a24c9620562932b919a812f19092ce62/pyobjc_framework_automator-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:90518947d753230f7b983e1141391ef5a0a2e837dddc635bcdf20c027ecf2639", size = 10020 }, - { url = "https://files.pythonhosted.org/packages/05/fd/4e8e6ee1917a978394bd8dfa4972ba98a106e426835ab7782667f38b04ea/pyobjc_framework_automator-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3cb965d6b3a6dcb2341fac4e33538b828e84a0e449e377c647f1cf44b7c19203", size = 10016 }, - { url = "https://files.pythonhosted.org/packages/53/e1/ce7e8a938a5f7d8a8feffbedd8fa0615b8b5f92a66873d88e325af72fd85/pyobjc_framework_automator-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4d3f0f1733fb2e26c53f5d4a573c4d50a3246c591073756fc48f6127c96f0cd3", size = 10037 }, - { url = "https://files.pythonhosted.org/packages/96/d0/f138a72276e6f5a43d5e8e0b4de9f3d22ee9f018b5871385bcbac14e4dbd/pyobjc_framework_automator-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e4e79a42f45602c6d971f9c33c3dab391fd2338b2feb62835b5fdf3137b3bce6", size = 10054 }, - { url = "https://files.pythonhosted.org/packages/fb/e4/13828164bffffd8e97f3bc0772a1756fa2854e17b50d3ff6605f16b8c53d/pyobjc_framework_automator-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1316ad293eadf1dda832303b7b05dc5fb435087e67a831f0b6b2d6f3b06d0cd0", size = 10198 }, - { url = "https://files.pythonhosted.org/packages/05/0f/e5a5e613afc279e3f080290aec787281cb60ebfe011e9e1d41b5c0d5c4c2/pyobjc_framework_automator-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a299effc6d1322f439e4d02d174fd9865610873c9a0e5d8868b7ae9038a8e563", size = 10104 }, - { url = "https://files.pythonhosted.org/packages/2b/89/77c37ab4cb895e82da94163a3b99a5e2624ba050ab47bc7a04e29b02869b/pyobjc_framework_automator-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:db5e3b0fd4a9defaa316efc46ea6c62f4401befe4c5127955e77833c8f235b26", size = 10252 }, + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, ] [[package]] -name = "pyobjc-framework-automator" -version = "12.1" +name = "sphinxcontrib-jsmath" +version = "1.0.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7e/08/362bf6ac2bba393c46cf56078d4578b692b56857c385e47690637a72f0dd/pyobjc_framework_automator-12.1.tar.gz", hash = "sha256:7491a99347bb30da3a3f744052a03434ee29bee3e2ae520576f7e796740e4ba7", size = 186068 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787, upload-time = "2019-01-21T16:10:16.347Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/64/30/57d6e93adfac2d19d8607700352fb1a2e3a11a952da9986847da2e7b20b3/pyobjc_framework_automator-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fa9189b481db4429e3aea6b567b0888f8c6f6ba388064be2ce6f287e19cea096", size = 10014 }, - { url = "https://files.pythonhosted.org/packages/e7/99/480e07eef053a2ad2a5cf1e15f71982f21d7f4119daafac338fa0352309c/pyobjc_framework_automator-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f3d96da10d28c5c197193a9d805a13157b1cb694b6c535983f8572f5f8746ea", size = 10016 }, - { url = "https://files.pythonhosted.org/packages/e3/36/2e8c36ddf20d501f9d344ed694e39021190faffc44b596f3a430bf437174/pyobjc_framework_automator-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4df9aec77f0fbca66cd3534d1b8398fe6f3e3c2748c0fc12fec2546c7f2e3ffd", size = 10034 }, - { url = "https://files.pythonhosted.org/packages/1f/cd/666e44c8deb41e5c9dc5930abf8379edd80bff14eb4d0a56380cdbbbbf9a/pyobjc_framework_automator-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cdda7b8c48c0f8e15cbb97600ac848fd76cf9837ca3353286a7c02281e9c17a3", size = 10045 }, - { url = "https://files.pythonhosted.org/packages/08/92/75fa03ad8673336689bd663ba153b378e070f159122d8478deb0940039c0/pyobjc_framework_automator-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e9962ea45875fda6a648449015ccc26cc1229fdbd0166556a7271c60ba6d9011", size = 10192 }, - { url = "https://files.pythonhosted.org/packages/c6/be/97fcdb60072f443ec360d2aa07e45469125eed57e0158d50f00ef5431240/pyobjc_framework_automator-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fb6a177cac056f2ecacaae1d4815f4e10529025cb13184fdee297989b55846f7", size = 10092 }, - { url = "https://files.pythonhosted.org/packages/06/7b/af089d11c6bdc9773e4e0f68b1beabe523d663290080e6ec2e853226a8bb/pyobjc_framework_automator-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:275ed04d339c5a5849a4be8ef82c2035be07ab92ccbf69007f544bcfabe060ad", size = 10240 }, + { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071, upload-time = "2019-01-21T16:10:14.333Z" }, ] [[package]] -name = "pyobjc-framework-avfoundation" -version = "12.0" +name = "sphinxcontrib-qthelp" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d9/95/29d3dbf7bfa6f2beb865ab4ce22ee1ccd58c2036a6c4caa6fa6568c7a727/pyobjc_framework_avfoundation-12.0.tar.gz", hash = "sha256:e9e9a15edea43341b39de677a58ac98b2a6bd4d6c55176b4804c5f75b3d20ece", size = 310508 } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/c9/52bf5e9a71431e125f35c79851e4bdf39f83060ea2e408fec704b8fa0cad/pyobjc_framework_avfoundation-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b7209318ddb4030b939cb25ca6b0cfc6a8e3da93940526956d88c5a58e0b2187", size = 83324 }, - { url = "https://files.pythonhosted.org/packages/ed/b6/cd14afee737a14b959ec9f96017134b80bdab55649b82f34f5490c060790/pyobjc_framework_avfoundation-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d47cd250011e6db5e20f1ff6ad72b6d2c40364eb6565009c7d2ff071e0a89647", size = 83319 }, - { url = "https://files.pythonhosted.org/packages/8c/3c/f9c732a33cafeff870e8d99c2378cc90a51f1a3261b5614f414b36902fdc/pyobjc_framework_avfoundation-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:803e675fbea532337bbd94becb040a054d58af610e20e86f7fd35fb54fd379f2", size = 83370 }, - { url = "https://files.pythonhosted.org/packages/dd/a3/07b098df03c1d5d8b4762ccba77881c9d41733a94db34815a27853531bf8/pyobjc_framework_avfoundation-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3aef07f73e8e908aeae195846d0d9bddb95bf82bbc10c22b51ec15f822a828fd", size = 83413 }, - { url = "https://files.pythonhosted.org/packages/57/64/bffe9c7980313c84ef66f1c97770c12c505bc91a7e188a401f8655e85f91/pyobjc_framework_avfoundation-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:31840a514e703f64094c9f29053a0a22969b4666a207b5061d965fa0ddb96e4d", size = 83866 }, - { url = "https://files.pythonhosted.org/packages/e8/5a/40edf86b2c040070ca18c9eec2e2c52e7d111209279fee919b13ad86d2b2/pyobjc_framework_avfoundation-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:953bb5d6db3a6e2cddf489eb58bb6a1fb306e441ba6a011d04356b25c60a78e4", size = 83625 }, - { url = "https://files.pythonhosted.org/packages/2d/6d/c6398333f88e2142d18ca9704413c5aa10d86fbc5ed813ded61da70104bc/pyobjc_framework_avfoundation-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a612ae9863abd4e0769ce6ff9960a5bf46128dddb3ef8f027406b8cd136e41f9", size = 83962 }, + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, ] [[package]] -name = "pyobjc-framework-avfoundation" -version = "12.1" +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cd/42/c026ab308edc2ed5582d8b4b93da6b15d1b6557c0086914a4aabedd1f032/pyobjc_framework_avfoundation-12.1.tar.gz", hash = "sha256:eda0bb60be380f9ba2344600c4231dd58a3efafa99fdc65d3673ecfbb83f6fcb", size = 310047 } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/f3/9e59aea0a3568766f3c75ab9d5f4abf661ed9e288292ef0997a71065ca1d/pyobjc_framework_avfoundation-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:370d5f1149c1041028cb1f5fb61b9f56655fe53bbffafc79393b0824a474bef0", size = 83325 }, - { url = "https://files.pythonhosted.org/packages/9a/5a/4ef36b309138840ff8cd85364f66c29e27023f291004c335a99f6e87e599/pyobjc_framework_avfoundation-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82cc2c2d9ab6cc04feeb4700ff251d00f1fcafff573c63d4e87168ff80adb926", size = 83328 }, - { url = "https://files.pythonhosted.org/packages/a6/00/ca471e5dd33f040f69320832e45415d00440260bf7f8221a9df4c4662659/pyobjc_framework_avfoundation-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bf634f89265b4d93126153200d885b6de4859ed6b3bc65e69ff75540bc398406", size = 83375 }, - { url = "https://files.pythonhosted.org/packages/b3/d4/ade88067deff45858b457648dd82c9363977eb1915efd257232cd06bdac1/pyobjc_framework_avfoundation-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f8ac7f7e0884ac8f12009cdb9d4fefc2f269294ab2ccfd84520a560859b69cec", size = 83413 }, - { url = "https://files.pythonhosted.org/packages/a7/3a/fa699d748d6351fa0aeca656ea2f9eacc36e31203dfa56bc13c8a3d26d7d/pyobjc_framework_avfoundation-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:51aba2c6816badfb1fb5a2de1b68b33a23f065bf9e3b99d46ede0c8c774ac7a4", size = 83860 }, - { url = "https://files.pythonhosted.org/packages/0c/65/a79cf3b8935a78329ac1107056b91868a581096a90ab6ddff5fd28db4947/pyobjc_framework_avfoundation-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9a3ffd1ae90bd72dbcf2875aa9254369e805b904140362a7338ebf1af54201a6", size = 83629 }, - { url = "https://files.pythonhosted.org/packages/8a/03/4125204a17cd7b4de1fdfc38b280a47d0d8f8691a4ee306ebb41b58ff030/pyobjc_framework_avfoundation-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:394c99876b9a38db4851ddf8146db363556895c12e9c711ccd3c3f907ac8e273", size = 83962 }, + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, ] [[package]] -name = "pyobjc-framework-avkit" -version = "12.0" +name = "tomli" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/76/65/2de0788c5ecde6906b9acfe1c37c6be59f9527eeb44b6fc494c63584edb9/pyobjc_framework_avkit-12.0.tar.gz", hash = "sha256:0f1ea37cd19483c62ba7a42e73dc07a03a0656ce916e772d13b017c625757930", size = 28881 } +sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/6c/d4d1a8d61f0b2058b3e89a2d4c7a625d26d43bda3d5e07910f2402c1c69f/pyobjc_framework_avkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fdbfe93ada52f7364a5e10ccd4b934380d94515f0390647964bf0e83b9c6484c", size = 11598 }, - { url = "https://files.pythonhosted.org/packages/9a/4d/087d8d19adda2478e314bbf27ae6f7de734fc4f8bca2c731c024bca167e7/pyobjc_framework_avkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dedab05ba28e6b2f09c72b8a232522e24980f250d7950f72a986edafd282c979", size = 11590 }, - { url = "https://files.pythonhosted.org/packages/4a/fb/1294cd716ac5e39eb6ff51ec6fa76a0cfecb657bbb5e446a63f188d4f783/pyobjc_framework_avkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5439fa8e4934fcdcf33b3e48d65ef7c1b9b016f7b41fb3af7023f4787fc33e9f", size = 11619 }, - { url = "https://files.pythonhosted.org/packages/06/1a/880617bae980bd93ac49a5a9633aaf41db8cb10bf5154ada77b400d2490e/pyobjc_framework_avkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:172763e9c06da1fe074b35911e75d4db3d65bdd4e22bfd7c18083e787ccc6c3b", size = 11633 }, - { url = "https://files.pythonhosted.org/packages/a0/db/6dad06275e722c05d138b8cef2582bb5fb8b3f396ec346563d7a1d540aca/pyobjc_framework_avkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:11abbbe482824aa5aaff0e6570be7567e5cb60b50abefb294da522e346149eca", size = 11838 }, - { url = "https://files.pythonhosted.org/packages/32/51/38b9cff57e07d3443a53b67e825c476d304932538a5862f096272aca3a74/pyobjc_framework_avkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6a6990b18ac63b4f5d8e8792c7bc04b305505beb7a989bfa6c0d1203dfbbdd95", size = 11621 }, - { url = "https://files.pythonhosted.org/packages/1f/ce/7a4fab52c0ddeee6d4f25a9d85bfb2fcecd05f57c8fec14720b0c9f217a3/pyobjc_framework_avkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:52815d4b663c5ec4e1a96b23d2d3b0c7e03ff0ceca99d0a0475e9f0055c3c15d", size = 11838 }, + { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, ] [[package]] -name = "pyobjc-framework-avkit" -version = "12.1" +name = "tomlkit" +version = "0.13.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/34/a9/e44db1a1f26e2882c140f1d502d508b1f240af9048909dcf1e1a687375b4/pyobjc_framework_avkit-12.1.tar.gz", hash = "sha256:a5c0ddb0cb700f9b09c8afeca2c58952d554139e9bb078236d2355b1fddfb588", size = 28473 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/10/128070679c48e6289167d3498a9e6ea5ddc758f74c8d1377aa69cefc2a08/pyobjc_framework_avkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec696a9ba354cdf4271d0076ed2daf7e4779ce809a7dc3d6c9cff4e14c88c1b0", size = 11591 }, - { url = "https://files.pythonhosted.org/packages/8c/68/409ee30f3418b76573c70aa05fa4c38e9b8b1d4864093edcc781d66019c2/pyobjc_framework_avkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:78bd31a8aed48644e5407b444dec8b1e15ff77af765607b52edf88b8f1213ac7", size = 11583 }, - { url = "https://files.pythonhosted.org/packages/75/34/e77b18f7ed0bd707afd388702e910bdf2d0acee39d1139e8619c916d3eb4/pyobjc_framework_avkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eef2c0a51465de025a4509db05ef18ca2b678bb00ee0a8fbad7fd470edfd58f9", size = 11613 }, - { url = "https://files.pythonhosted.org/packages/11/f2/4a55fdc8baca23dd315dab39479203396db54468a4c5a3e2480748ac68af/pyobjc_framework_avkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c0241548fc7ca3fcd335da05c3dd15d7314fe58debd792317a725d8ae9cf90fa", size = 11620 }, - { url = "https://files.pythonhosted.org/packages/d7/37/76d67c86db80f13f0746b493ae025482cb407b875f3138fc6a6e1fd3d5e3/pyobjc_framework_avkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:869fd54ccdac097abe36d7d4ef8945c80b9c886d881173f590b382f6c743ff12", size = 11824 }, - { url = "https://files.pythonhosted.org/packages/29/4e/bd28968f538f5b4f806431c782556aaa5c17567c83edb6df0ef83c7a26ca/pyobjc_framework_avkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f49ee90e4f8737ae5dea7579016cdf344b64092810bf5b5acf0cb9c1c6a0d328", size = 11614 }, - { url = "https://files.pythonhosted.org/packages/ea/e7/3efb6c782d09abedb74fdecdb374c0b16ccdb43b8da55f47953a4cacf3a6/pyobjc_framework_avkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:19d46d8da214d8fad03f0a8edd384762dea55933c0c094425a34ac6e53eacb71", size = 11827 }, + { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, ] [[package]] -name = "pyobjc-framework-avrouting" -version = "12.0" +name = "twine" +version = "6.2.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "id", marker = "sys_platform == 'win32'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "keyring", marker = "platform_machine != 'ppc64le' and platform_machine != 's390x' and sys_platform == 'win32'" }, + { name = "packaging", marker = "sys_platform == 'win32'" }, + { name = "readme-renderer", marker = "sys_platform == 'win32'" }, + { name = "requests", marker = "sys_platform == 'win32'" }, + { name = "requests-toolbelt", marker = "sys_platform == 'win32'" }, + { name = "rfc3986", marker = "sys_platform == 'win32'" }, + { name = "rich", marker = "sys_platform == 'win32'" }, + { name = "urllib3", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/98/cc2316849224736b9386189a52c80a73a154979a24c8877faa1be258a3b0/pyobjc_framework_avrouting-12.0.tar.gz", hash = "sha256:01edbba4257450bb42b87deb8c2498fc30e6d7a2adc9b25c81e118af5bdf7dac", size = 20432 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/20/104a8593946979c73543908ca27e21bce22e828b6af59d8e35924556f451/pyobjc_framework_avrouting-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:684cf0db47a8b864ddcd706d4b543b289cdf1ae02e0fead6c0ff6ff627995e17", size = 8442 }, - { url = "https://files.pythonhosted.org/packages/d7/99/02cae8b7c7174a962677d817d5cee71319b4f30614ab988f571cb050b13b/pyobjc_framework_avrouting-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ee895f51745235db6ee32c9d1f807a9d0ca10f32c1827428b81a308670ff700b", size = 8446 }, - { url = "https://files.pythonhosted.org/packages/84/b2/b7fed199a290539b77cfb597c068208ca16063c97de6bbacbadd2dc6a1b1/pyobjc_framework_avrouting-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ddc59275652aadc5332fef4d78460811968b9fc5f1c0f5bf7d0aea74df0fc40", size = 8459 }, - { url = "https://files.pythonhosted.org/packages/ee/e9/a0ce79da974ddb40475621d2fbd42462063d57dc00238e49f27c49cedd24/pyobjc_framework_avrouting-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:58b3ef31ad0855df04ba9ca47e13a3d2cff8365d70a6d59708b747b22fd2e9a0", size = 8479 }, - { url = "https://files.pythonhosted.org/packages/01/7a/0c10711dad7c1e7022427e0db7515ee3051042b3af95f7f680f1af0bbc47/pyobjc_framework_avrouting-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2d97593d312f7c1eb9cc3df3d9c82d9124130567a579641ff976d594e1d6b371", size = 8638 }, - { url = "https://files.pythonhosted.org/packages/a2/ea/e248c709473d7cc50b6ffce8243aef737b74fe597aa5d9beb929dacb4115/pyobjc_framework_avrouting-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:210f20df144aa56d04b3834ffc46423880de6361ac6b63bbb63daa602cfc0d95", size = 8531 }, - { url = "https://files.pythonhosted.org/packages/b0/89/d5726926189ccb42acd0df50b50cf95c99d24957539d1a8bc49e881930e8/pyobjc_framework_avrouting-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:644cadc54028efb991e2db74eed582e2278fec90d3a783475cf62afaba8e6af3", size = 8701 }, -] - -[[package]] -name = "pyobjc-framework-avrouting" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6e/83/15bf6c28ec100dae7f92d37c9e117b3b4ee6b4873db062833e16f1cfd6c4/pyobjc_framework_avrouting-12.1.tar.gz", hash = "sha256:6a6c5e583d14f6501df530a9d0559a32269a821fc8140e3646015f097155cd1c", size = 20031 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/3a/3172fb969eaa782859ed466f9cbeb2ee8771da5a340bb052a34b54efda90/pyobjc_framework_avrouting-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9724fcd834a8ee206df25139c3033bd508a4a830ac6d91dd7c611a03085386", size = 8431 }, - { url = "https://files.pythonhosted.org/packages/69/a7/5c5725db9c91b492ffbd4ae3e40025deeb9e60fcc7c8fbd5279b52280b95/pyobjc_framework_avrouting-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a79f05fb66e337cabc19a9d949c8b29a5145c879f42e29ba02b601b7700d1bb", size = 8431 }, - { url = "https://files.pythonhosted.org/packages/68/54/fa24f666525c1332a11b2de959c9877b0fe08f00f29ecf96964b24246c13/pyobjc_framework_avrouting-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c0fb0d3d260527320377a70c87688ca5e4a208b09fddcae2b4257d7fe9b1e18", size = 8450 }, - { url = "https://files.pythonhosted.org/packages/3b/a4/cdbbe5745a49c9c5f5503dbbdd1b90084d4be83bd8503c998db160bb378e/pyobjc_framework_avrouting-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:18c62af1ce9ac99b04c36f66959ca64530d51b62aa0e6f00400dea600112e370", size = 8465 }, - { url = "https://files.pythonhosted.org/packages/29/d7/c709d277e872495f452fe797c619d9b202cd388b655ccf7196724dbbb600/pyobjc_framework_avrouting-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e5a1d2e4e431aae815e38b75dbe644aa1fd495f8ec1e2194fc175132d7cfc1d3", size = 8630 }, - { url = "https://files.pythonhosted.org/packages/b0/0a/9e9bf48c70f129c1fa42e84e091901b6aa6d11074365d93aa22a42d13ba6/pyobjc_framework_avrouting-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:defaad8e98793dfaceb7e36eba3da9bf92d0840207d39e39b018ce6eb41d80f8", size = 8525 }, - { url = "https://files.pythonhosted.org/packages/33/75/56ab32b061b4a51f661998ef96ca91a34aee86527e6a4d5f4f10db906066/pyobjc_framework_avrouting-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c5f80ba96f5f874193fc0d9656aa6b4ed0df43c7c88ecfbf6cd4760d75776157", size = 8687 }, -] - -[[package]] -name = "pyobjc-framework-backgroundassets" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8c/d6/143de9d93121fae5201c18ca3b5dcf155f3abc6cabed946ab20f52b99572/pyobjc_framework_backgroundassets-12.0.tar.gz", hash = "sha256:f9bcfba27ffec725620e87778a26b783e3955343adcc96e3d5635edcc4cb1207", size = 26625 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/30/60/73e4df99f105b6644ec384318bee3ac8767a14fbb911e449fd9ad267fd58/pyobjc_framework_backgroundassets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:905d57247fc0ed1961f1bc69248cda333ebc777a165ab478d00324244a748a17", size = 10769 }, - { url = "https://files.pythonhosted.org/packages/d5/87/3972cda9f3462066fa95d8b620f786abf4aea056cc5a955d4c2d52e21966/pyobjc_framework_backgroundassets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cc0a7b24f58146d2e03b5d8de1f8ea26d313f791328f2f6067f720e15e84f64f", size = 10771 }, - { url = "https://files.pythonhosted.org/packages/84/32/e33d4ba57327864438b618a746a419b0ea7909e0c5eae6e22d9918c211b7/pyobjc_framework_backgroundassets-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b6fda04cf78782d70410dcd0c3a72fa43b011b7ad9d72418a5a935e41200c4dc", size = 10789 }, - { url = "https://files.pythonhosted.org/packages/17/c2/7c742e87a02763f2523618659db1d6c48a7f92c3cadc06b73411a6710e19/pyobjc_framework_backgroundassets-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2cd40f12d97d0993894fdccfac6eebf6787decf0c13c0213e723ef62abf1f00e", size = 10813 }, - { url = "https://files.pythonhosted.org/packages/ec/72/2ee6f418c72d0f0617cb03c01ad88473c46580441e59b7c1f98571114895/pyobjc_framework_backgroundassets-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7542ec038356046ecc790379d059ea6ae381eada7a75b4b342d6788230508f45", size = 11069 }, - { url = "https://files.pythonhosted.org/packages/d2/08/6ebf4147a2185ec12fae1d6dfd481d30d5b1cfebf7a18ac7ad5041fb016e/pyobjc_framework_backgroundassets-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7e1f44669c110150a65b765e3a92a1538dc925b037a6d7e50c156a24062ab83a", size = 10864 }, - { url = "https://files.pythonhosted.org/packages/a3/85/f4e20f74b9741fbb7d8174e18b1729d9a491fe4221a8b88d6e2d2e43f408/pyobjc_framework_backgroundassets-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:5df2618f89d14ea0084afa59d044c6342c8a394d5368c85965055cc44f08b4e6", size = 11069 }, -] - -[[package]] -name = "pyobjc-framework-backgroundassets" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/34/d1/e917fba82790495152fd3508c5053827658881cf7e9887ba60def5e3f221/pyobjc_framework_backgroundassets-12.1.tar.gz", hash = "sha256:8da34df9ae4519c360c429415477fdaf3fbba5addbc647b3340b8783454eb419", size = 26210 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/28/6684b16c1d69305e8802732c7069d0e0d9b72b8f9b020ebec8f9da719798/pyobjc_framework_backgroundassets-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5af9d7db623e14876e3cbb79cd4234558162dad307fd341d141089652bb94bed", size = 10761 }, - { url = "https://files.pythonhosted.org/packages/c1/49/33c1c3eaf26a7d89dd414e14939d4f02063d66252d0f51c02082350223e0/pyobjc_framework_backgroundassets-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17de7990b5ea8047d447339f9e9e6f54b954ffc06647c830932a1688c4743fea", size = 10763 }, - { url = "https://files.pythonhosted.org/packages/de/34/bbba61f0e8ecb0fe0da7aa2c9ea15f7cb0dca2fb2914fcdcd77b782b5c11/pyobjc_framework_backgroundassets-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2c11cb98650c1a4bc68eeb4b040541ba96613434c5957e98e9bb363413b23c91", size = 10786 }, - { url = "https://files.pythonhosted.org/packages/04/9b/872f9ff0593ffb9dbc029dc775390b0e45fe3278068b28aade8060503003/pyobjc_framework_backgroundassets-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a089a71b2db471f5af703e35f7a61060164d61eb60a3f482076826dfa5697c7c", size = 10803 }, - { url = "https://files.pythonhosted.org/packages/cc/44/4afc2e8bcf16919b1ab82eaf88067469ea255b0a3390d353fec1002dbd0a/pyobjc_framework_backgroundassets-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e8c560f1aaa7a4bf6e336806749ce0a20f2a792ab924d9424714e299a59b3edf", size = 11058 }, - { url = "https://files.pythonhosted.org/packages/f1/8b/80cd655122c20fd29edd3b2b609e6be006cef4bdc830d71944399c6abcd5/pyobjc_framework_backgroundassets-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:57d77b1babd450b18e32e852a47dd1095329323e1bed9f258b46c43e20e6d0fc", size = 10854 }, - { url = "https://files.pythonhosted.org/packages/11/24/4048476f84c0566c1e146dbbd20a637bda14df5c1e52dc907e23b0329ab2/pyobjc_framework_backgroundassets-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:acaa091ff12acb24536745803af95e10d535b22e2e123fd2dd5920f3d47338ee", size = 11061 }, -] - -[[package]] -name = "pyobjc-framework-browserenginekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/a3/fe0015c88f576e42702a96c33d9d8c4f0195f32017f81d224e3f2238905b/pyobjc_framework_browserenginekit-12.0.tar.gz", hash = "sha256:8409031977ee725b258e96096a2ad2910c11753865d8e79aa6c8c154a98a55a6", size = 29480 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/54/83bd40a4642db2cb1521b5a1f486a7b7a05625f2048622b52ea955a60df6/pyobjc_framework_browserenginekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d48715ece06577de2c91909fd3650b1fd758dfbab468086bbffa0de68262317f", size = 11538 }, - { url = "https://files.pythonhosted.org/packages/6e/e9/dd169256d5693f9f35ed3169009ba70544c305f90a34ccbc79b0f036601b/pyobjc_framework_browserenginekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ce95e87b533c12fc70dcf10c7ca4ec6862ea00dd3ee076b8b0f6f66110771771", size = 11531 }, - { url = "https://files.pythonhosted.org/packages/34/cc/98765d9f39fbbdca3ecd72c1ef2d2b68e35922b2c482f0f73fae30933f49/pyobjc_framework_browserenginekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e8597505099922d4469208a42947d8baf4b1ba82c9793281686f92c62fcf1a7f", size = 11556 }, - { url = "https://files.pythonhosted.org/packages/11/e5/b732d765d0f48c4559fdef85aacee030fb31614eeb138aaf149a34a5ac42/pyobjc_framework_browserenginekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3d290dfcb353828ee0220c3026c1920572c4b04d9fdf9934349988d2ad1ddc58", size = 11575 }, - { url = "https://files.pythonhosted.org/packages/a9/59/9c5a0bcbbdd964b42a416b085a0ea7d8ba369130ada44956b1507b54850c/pyobjc_framework_browserenginekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e22aada3a3dcf0cec5dae7856aaacf05ea38bfb8e1e69d15956bc8fb52f61cd6", size = 11748 }, - { url = "https://files.pythonhosted.org/packages/5e/d7/085cde585aef2d3601e745e2a2f101abca2a8ca761a0567c9cfcca524564/pyobjc_framework_browserenginekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6688b3a109158a4734cefff7ca866e85550d3d10f3fa12d09268fbe174521370", size = 11629 }, - { url = "https://files.pythonhosted.org/packages/e7/10/89141c5fa3492f06740104850b95995232c14f84305dfdd9a463681663bc/pyobjc_framework_browserenginekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d4b5809a751bf0f3d24773034763c57b139fff5eeef22f07ce760d14b0f83e2a", size = 11818 }, -] - -[[package]] -name = "pyobjc-framework-browserenginekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5d/b9/39f9de1730e6f8e73be0e4f0c6087cd9439cbe11645b8052d22e1fb8e69b/pyobjc_framework_browserenginekit-12.1.tar.gz", hash = "sha256:6a1a34a155778ab55ab5f463e885f2a3b4680231264e1fe078e62ddeccce49ed", size = 29120 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/f5/3d8dadd9f2da1f5a754fa7b2433013addeb56b1a3c512b6e147503b25eb7/pyobjc_framework_browserenginekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8161ac3a9e19b794d47c0022cd2b956818956bda355e4897a687850faf6ab380", size = 11527 }, - { url = "https://files.pythonhosted.org/packages/f2/a4/2d576d71b2e4b3e1a9aa9fd62eb73167d90cdc2e07b425bbaba8edd32ff5/pyobjc_framework_browserenginekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:41229c766fb3e5bba2de5e580776388297303b4d63d3065fef3f67b77ec46c3f", size = 11526 }, - { url = "https://files.pythonhosted.org/packages/46/e0/8d2cebbfcfd6aacb805ae0ae7ba931f6a39140540b2e1e96719e7be28359/pyobjc_framework_browserenginekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d15766bb841b081447015c9626e2a766febfe651f487893d29c5d72bef976b94", size = 11545 }, - { url = "https://files.pythonhosted.org/packages/5b/2c/d39ab696b0316e1faf112a3aee24ef3bcb5fb42eb5db18ba2d74264a41a8/pyobjc_framework_browserenginekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1aa2da131bbdf81748894c18d253cd2711dc535f1711263c6c604e20cdc094a6", size = 11567 }, - { url = "https://files.pythonhosted.org/packages/0e/dd/624d273beea036ec20e16f8bdaaca6b062da647b785dedf90fa2a92a8cc0/pyobjc_framework_browserenginekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:657d78bb5c1a51097560cb3219692321640d0d5c8e57e9160765e1ecfb3fe7ef", size = 11738 }, - { url = "https://files.pythonhosted.org/packages/13/4d/a340f75fc6daa482d9d3470fe449da0d8e1263a6f77803f2b1185b3a69af/pyobjc_framework_browserenginekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ad7896751accf7a6f866e64e8155f97b6cf0fc0e6efd64e9940346d8fbf0ec66", size = 11620 }, - { url = "https://files.pythonhosted.org/packages/3d/fa/5c0278bfebee573d97fd78ee0f41c9e8cb8f7a79ed7e4bd6a8f8ee00abe4/pyobjc_framework_browserenginekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c52a3b0000e67fbaa51eef0b455d90b1140e3f6a0014945227cedf242fa57dcc", size = 11805 }, -] - -[[package]] -name = "pyobjc-framework-businesschat" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/59/74/a34367bab4b74126897e37b5838e47c135407950bd843fddd115ffb75428/pyobjc_framework_businesschat-12.0.tar.gz", hash = "sha256:2f598056f1a90a5a85ef3c75c8457f8cd80511017982a17ddb28695a6bf205f6", size = 12127 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/41/3f41a8a7c2443cc8e2d6a6cbc19444d9a56ebd000b16246573fc5bb6d2f1/pyobjc_framework_businesschat-12.0-py2.py3-none-any.whl", hash = "sha256:a3faa5a6be27fd18f2b0d34306d8cb8e81c1f2c1f637239b4c9b9f5d90e322ee", size = 3482 }, -] - -[[package]] -name = "pyobjc-framework-businesschat" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4d/da/bc09b6ed19e9ea38ecca9387c291ca11fa680a8132d82b27030f82551c23/pyobjc_framework_businesschat-12.1.tar.gz", hash = "sha256:f6fa3a8369a1a51363e1757530128741d9d09ed90692a1d6777a4c0fbad25868", size = 12055 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/53/88/4c727424b05efa33ed7f6c45e40333e5a8a8dc5bb238e34695addd68463b/pyobjc_framework_businesschat-12.1-py2.py3-none-any.whl", hash = "sha256:f66ce741507b324de3c301d72ba0cfa6aaf7093d7235972332807645c118cc29", size = 3474 }, -] - -[[package]] -name = "pyobjc-framework-calendarstore" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e1/6d/62bf488ca94108fa8820a691b41da62aa69daeef3bca86f14af1f576a5a3/pyobjc_framework_calendarstore-12.0.tar.gz", hash = "sha256:cfdac6543090d7790c576e24ff87440d3b57e234a51e9468bdbb5451b4d94c9b", size = 52284 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/f8/678b8725046e320a3183c232349af205567b0489dda818eb7572a1a7b8e0/pyobjc_framework_calendarstore-12.0-py2.py3-none-any.whl", hash = "sha256:32432f4fddf080f8a5d592a2dc659f30bde9486c89dc0978fee5faec7847a076", size = 5295 }, -] - -[[package]] -name = "pyobjc-framework-calendarstore" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/88/41/ae955d1c44dcc18b5b9df45c679e9a08311a0f853b9d981bca760cf1eef2/pyobjc_framework_calendarstore-12.1.tar.gz", hash = "sha256:f9a798d560a3c99ad4c0d2af68767bc5695d8b1aabef04d8377861cd1d6d1670", size = 52272 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/70/f68aebdb7d3fa2dec2e9da9e9cdaa76d370de326a495917dbcde7bb7711e/pyobjc_framework_calendarstore-12.1-py2.py3-none-any.whl", hash = "sha256:18533e0fcbcdd29ee5884dfbd30606710f65df9b688bf47daee1438ee22e50cc", size = 5285 }, -] - -[[package]] -name = "pyobjc-framework-callkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4d/2a/b0ed29456b1d55bb2764768bcd2668cbf2f746a27a67854da71d89e4609b/pyobjc_framework_callkit-12.0.tar.gz", hash = "sha256:fab030e3e5c33d245f3b00165b5cf366ae43846ce237e3d4a0874198c17d8d60", size = 29544 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/72/7273bcdcdbc506c64294ec123996a07143726a08d7b9852dc4da61f96fca/pyobjc_framework_callkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:00f4119051736655ff5e1ee9c7bbed4640225213b251f7a60e8d4bcbb24b8dd7", size = 11286 }, - { url = "https://files.pythonhosted.org/packages/84/be/0d3e91da5b873759373590e5fa7b0de5f3d3ecc57fbda8a659240906183f/pyobjc_framework_callkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:baff4db6c268f18e4035d136d10e9fa4a58504ff41e201a7a2148aa91b4e0797", size = 11282 }, - { url = "https://files.pythonhosted.org/packages/1a/a0/57bba44c67534455e8bbdd004be177697f76e59dd7ab4153cb0bc08fe37e/pyobjc_framework_callkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31e6b21d479892d3736ee0ab6c68571b070c846be42b0c07640f1495a14b32db", size = 11345 }, - { url = "https://files.pythonhosted.org/packages/da/3c/d0f193229bfc95a5022479ce3812e8e0cada5aad35bcf291aec1e794e4f4/pyobjc_framework_callkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:143a1edb64a3d17f7a379a50200b220f060b0f89e29f4ee4e098ef9c47dd90f5", size = 11356 }, - { url = "https://files.pythonhosted.org/packages/1e/72/e7ae42e301c5052893be17be5fadfb137097aa41baf0edc07bf56b444f6b/pyobjc_framework_callkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ad37a033b7ed1bccec7dcabcc297e97a9b16064723805d9eda9e9fad2b659fba", size = 11568 }, - { url = "https://files.pythonhosted.org/packages/1c/45/ea7638c053678bf82d58a270ae7991408d4dfa352ca92bf9cea63d461d52/pyobjc_framework_callkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:07fc2b314ccfe0b192ca69c810e4adba2990b31c1bb6bfbdbd3794501ae00982", size = 11348 }, - { url = "https://files.pythonhosted.org/packages/80/75/19366317f39e02cfde6ca578c7cd0012bd7a7b227b4f0185a3705c3657ec/pyobjc_framework_callkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fca661ce7212e90f39cf30e3793c54beeac60d8cb36f6d2d687eef775bc468f1", size = 11567 }, -] - -[[package]] -name = "pyobjc-framework-callkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1a/c0/1859d4532d39254df085309aff55b85323576f00a883626325af40da4653/pyobjc_framework_callkit-12.1.tar.gz", hash = "sha256:fd6dc9688b785aab360139d683be56f0844bf68bf5e45d0eb770cb68221083cc", size = 29171 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/00/cca0a68bc794afe570a0633d886d0476fe9cecaf6800364eeec77f1a3e6a/pyobjc_framework_callkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:57e8c04d8e4f9358d0fe1f14862caf9aa74ae5ba90c8cae1751798a24b459166", size = 11275 }, - { url = "https://files.pythonhosted.org/packages/2b/f6/aafd14b31e00d59d830f9a8e8e46c4f41a249f0370499d5b017599362cf1/pyobjc_framework_callkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e73beae08e6a32bcced8d5bdb45b52d6a0866dd1485eaaddba6063f17d41fcb0", size = 11273 }, - { url = "https://files.pythonhosted.org/packages/2e/b7/b3a498b14751b4be6af5272c9be9ded718aa850ebf769b052c7d610a142a/pyobjc_framework_callkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:12adc0ace464a057f8908187698e1d417c6c53619797a69d096f4329bffb1089", size = 11334 }, - { url = "https://files.pythonhosted.org/packages/37/30/f434921c17a59d8db06783189ca98ccf291d5366be364f96439e987c1b13/pyobjc_framework_callkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b8909402f8690ea2fe8fa7c0256b5c491435f20881832808b86433f526ff28f8", size = 11347 }, - { url = "https://files.pythonhosted.org/packages/f0/b8/c6a52c3c2e1e0bd23a84fef0d2cb089c456d62add59f87d8510ffe871068/pyobjc_framework_callkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9ec6635b6a6fecde6e5252ceff76c71d699ed8e0f3ebc6fd220a351dc653040b", size = 11558 }, - { url = "https://files.pythonhosted.org/packages/e3/db/e8bcdde2b9cf109ebdf389e730900de7acf792664aa0a7fbc630cd61a82a/pyobjc_framework_callkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2438a252ff428bca1c1d1db2fca921d2cc572ee5c582f000a713fb61b29324f", size = 11333 }, - { url = "https://files.pythonhosted.org/packages/2b/14/4bb4718a4dab3040c23d91c01283ae46cbfd4b709692ef98dae92e4a3247/pyobjc_framework_callkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b6a1767e7391652ef75eb46d12d49f31f591063da45357aad2c4e0d40f8fe702", size = 11556 }, -] - -[[package]] -name = "pyobjc-framework-carbon" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0a/86/e5212c091d614f5097fb34d06820fda00d4dc2dcc0ac68d102b8cb0a79ac/pyobjc_framework_carbon-12.0.tar.gz", hash = "sha256:ad24c6c9def13669f9b6dc2350b39ac96270f4918223d1abf4d8a70990eed84c", size = 37320 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/aa/56b0bc78523ca3ecdf6e72a8b786b7204364c57d1b2db17bb50cfed1091d/pyobjc_framework_carbon-12.0-py2.py3-none-any.whl", hash = "sha256:b58d0f558f3f31e981c26a1074fce8a32bf0aa6f9c6bccefdb2828a4f9c46eac", size = 4635 }, -] - -[[package]] -name = "pyobjc-framework-carbon" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0c/0f/9ab8e518a4e5ac4a1e2fdde38a054c32aef82787ff7f30927345c18b7765/pyobjc_framework_carbon-12.1.tar.gz", hash = "sha256:57a72807db252d5746caccc46da4bd20ff8ea9e82109af9f72735579645ff4f0", size = 37293 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/9e/91853c8f98b9d5bccf464113908620c94cc12c2a3e4625f3ce172e3ea4bc/pyobjc_framework_carbon-12.1-py2.py3-none-any.whl", hash = "sha256:f8b719b3c7c5cf1d61ac7c45a8a70b5e5e5a83fa02f5194c2a48a7e81a3d1b7f", size = 4625 }, -] - -[[package]] -name = "pyobjc-framework-cfnetwork" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/92/910990becf6e6205787a9e1a1ce6847358fab73b76949283a053c7cd8d54/pyobjc_framework_cfnetwork-12.0.tar.gz", hash = "sha256:b6c3d156c774f8c5fc2bfb3efc311c62cfd317ddaffb4d6637821039e852e3f1", size = 44831 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/d8/8a4d9961e48346c984807b7deddbf62cc78e20d676a3297ca77314d0f09b/pyobjc_framework_cfnetwork-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e7cddf1d0a0bbb7fbcbb13b080eb611b54644ba8a99c1818708613fbcb56f4e4", size = 18955 }, - { url = "https://files.pythonhosted.org/packages/63/34/8905bb4c86d89c6e502f3ba2dddaa436db18d532b0b535b101b8883759f9/pyobjc_framework_cfnetwork-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa4217f7d855d988e7f6799ed3941e312990d4e1d2ce43820e581c87c5383fe2", size = 18957 }, - { url = "https://files.pythonhosted.org/packages/a6/bf/f78bb4ea0d1e1d83c2e75b24eba37b3ab5caf14a212cf11a43d7b83fec48/pyobjc_framework_cfnetwork-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:912b07f050fea73345015daa9c46a7aeaac3b3b711682e6bf4686e994cd2d7cf", size = 19140 }, - { url = "https://files.pythonhosted.org/packages/f9/79/076af9b27dfee72f2a383812efbc4206bdae02ddcfbc2267c914a135d0e8/pyobjc_framework_cfnetwork-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1b02b95f7f0be4a4bd5c2ba468528daded3dea05641b01133c4cbab37f31254d", size = 19144 }, - { url = "https://files.pythonhosted.org/packages/c2/72/c0de6704a6c3351149391892eb5fe8009260355070487c0bf9a9c28cf7f7/pyobjc_framework_cfnetwork-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f26e05d1b7f5e4af3b2dfe3e1d443ab09d625a3b3d6007ec84e851ca02e8f383", size = 19422 }, - { url = "https://files.pythonhosted.org/packages/b7/96/ea7607704670a886b94c39e1a4fbd8b2b43a8321369937652935c3023889/pyobjc_framework_cfnetwork-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f313ed9b11e203ea4be80f2310819749d99c5a4554293467269e0a6db9952f1", size = 19192 }, - { url = "https://files.pythonhosted.org/packages/f6/4c/837eeffd0f3456dd8f2fc7055c9394006769d28c8ebd5cfb82182a9bf5a7/pyobjc_framework_cfnetwork-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:653a350813a0d10935b191b7d56227a1b7dce6a6e2d43bbaf758233126f581ab", size = 19415 }, -] - -[[package]] -name = "pyobjc-framework-cfnetwork" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d2/6a/f5f0f191956e187db85312cbffcc41bf863670d121b9190b4a35f0d36403/pyobjc_framework_cfnetwork-12.1.tar.gz", hash = "sha256:2d16e820f2d43522c793f55833fda89888139d7a84ca5758548ba1f3a325a88d", size = 44383 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/62/21/1cebc1396e966d4acede1e3368b3cf8c2def32f4b35f8c65fd003a3f5510/pyobjc_framework_cfnetwork-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d54206b13f44f2503db53efbdb76d892c719959fb620266875d9934ceb586f2d", size = 18945 }, - { url = "https://files.pythonhosted.org/packages/f0/7e/82aca783499b690163dd19d5ccbba580398970874a3431bfd7c14ceddbb3/pyobjc_framework_cfnetwork-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bf93c0f3d262f629e72f8dd43384d0930ed8e610b3fc5ff555c0c1a1e05334a", size = 18949 }, - { url = "https://files.pythonhosted.org/packages/f9/0b/28034e63f3a25b30ede814469c3f57d44268cbced19664c84a8664200f9d/pyobjc_framework_cfnetwork-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:92760da248c757085fc39bce4388a0f6f0b67540e51edf60a92ad60ca907d071", size = 19135 }, - { url = "https://files.pythonhosted.org/packages/f4/36/d6b95a5b156de5e2c071ecb7f7056f0badb3a0d09e0dbcf0d8d35743f822/pyobjc_framework_cfnetwork-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:86cc3f650d3169cd8ce4a1438219aa750accac0efc29539920ab0a7e75e25ab4", size = 19135 }, - { url = "https://files.pythonhosted.org/packages/4b/23/ff66133af4592e123320337f443aa6e36993cc48d6c10f6e7436e01678b1/pyobjc_framework_cfnetwork-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5ff3e246e5186b9bad23b2e4e856ca87eaa9329f5904643c5484510059a07e24", size = 19412 }, - { url = "https://files.pythonhosted.org/packages/6e/63/931cda003b627cc04c8e5bf9efecc391006305462192414b3d29eb16b5fd/pyobjc_framework_cfnetwork-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b94c190bdfdf0c8f3f6f7bf8e19ccc2847ecb67adab0068f8d12a25ab7df3c1a", size = 19185 }, - { url = "https://files.pythonhosted.org/packages/ac/92/5843dd96da7711e72dae489bf91441d91c4dc15f17f34b89b04f2c22aee2/pyobjc_framework_cfnetwork-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8c5313e146d436de05afae2ab203cfa1966f56d34661939629e2b932efd8da1a", size = 19402 }, -] - -[[package]] -name = "pyobjc-framework-cinematic" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/73/803108294b8345056fcfdd592e4652155080b47fc1f977bcbac6d360adab/pyobjc_framework_cinematic-12.0.tar.gz", hash = "sha256:4b0592f975a24192ef46f28b5ea811c2a7ed15d145974da173c93f39819b911f", size = 21218 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/38/9779f870b59383d063030d095d50e7a37e3f1f11e5ba782a6fdbaab5cbe6/pyobjc_framework_cinematic-12.0-py2.py3-none-any.whl", hash = "sha256:2c8a4e862731a623e7a4c29e466a4ad9ee7630653567aa32c586914e16f91ae7", size = 5042 }, -] - -[[package]] -name = "pyobjc-framework-cinematic" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/67/4e/f4cc7f9f7f66df0290c90fe445f1ff5aa514c6634f5203fe049161053716/pyobjc_framework_cinematic-12.1.tar.gz", hash = "sha256:795068c30447548c0e8614e9c432d4b288b13d5614622ef2f9e3246132329b06", size = 21215 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/a0/cd85c827ce5535c08d936e5723c16ee49f7ff633f2e9881f4f58bf83e4ce/pyobjc_framework_cinematic-12.1-py2.py3-none-any.whl", hash = "sha256:c003543bb6908379680a93dfd77a44228686b86c118cf3bc930f60241d0cd141", size = 5031 }, -] - -[[package]] -name = "pyobjc-framework-classkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a1/a5/e6a3cb61d2e7579376c11282c504445e5ad38c9cd6220f62949b863ef5df/pyobjc_framework_classkit-12.0.tar.gz", hash = "sha256:a8511b242a7092e79e0f97cc50f0f2fe4b28f92710f3c3242247334227818820", size = 26664 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/5a/d279c500028b3efeb67c2ca8d2f2301f7f01b1f8a898cc1b1a57317d7337/pyobjc_framework_classkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9d0c1e9f994455f56a24c012db6c71cb26f142417e3c4b65284aa56eb7268404", size = 8869 }, - { url = "https://files.pythonhosted.org/packages/45/91/963ffc9575e5b0757911fef921ed668ec642ba3916faec58717a4f5f82dd/pyobjc_framework_classkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:86a8d5c8c56ec8c9592020ac6c50bab82f81e48e382a95f0f5ef7b2509117315", size = 8867 }, - { url = "https://files.pythonhosted.org/packages/f9/59/1bdf42a95f5af3316e4669991c2558cfbf877b350e021305c1ff286818ee/pyobjc_framework_classkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c3bb3523259eb3d6583a9e8605f5932321d833840c56e1a8a720eb12d3a1f2cd", size = 8885 }, - { url = "https://files.pythonhosted.org/packages/5f/f2/54ce6f6013b051021d95db651a4115a340c37fa00c9e30238bdc43064188/pyobjc_framework_classkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d6c5968cbca3b3cbbd2fb91e46e2716a43dce910206bc84192cac145c8d17dbd", size = 8890 }, - { url = "https://files.pythonhosted.org/packages/55/bf/b121f3da28787091db6d654bde4bff288ace26071ef466b6fd8b878ec833/pyobjc_framework_classkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:34c3881f97b996ce0b80210f0d3435ecec4be2a23a931e231f463ca54ac047d4", size = 9051 }, - { url = "https://files.pythonhosted.org/packages/49/6c/2e60e91750624a907c8d10ae4a7f2034f680f47625912be14a7ad53ee7d1/pyobjc_framework_classkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e0d837c35d996f86d11aa84031ed26060eb9db10423d3f6dc78affc0688e42f3", size = 8966 }, - { url = "https://files.pythonhosted.org/packages/72/1f/2a2dbc163ff34b1965a1f842ee651145579e5ab64cdb367785ae67c7455b/pyobjc_framework_classkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c08ed6c0f2e2272bb86491a8bf19662d94ccdee34d34c0ce4a40a734ba5508a1", size = 9117 }, -] - -[[package]] -name = "pyobjc-framework-classkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ac/ef/67815278023b344a79c7e95f748f647245d6f5305136fc80615254ad447c/pyobjc_framework_classkit-12.1.tar.gz", hash = "sha256:8d1e9dd75c3d14938ff533d88b72bca2d34918e4461f418ea323bfb2498473b4", size = 26298 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/59/23/75ce71520f0f1930cea460522a217819094f074ae8e6296166f86f872ed9/pyobjc_framework_classkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7fbca9dbd9485ec21c3bc64f0e27ce1037095db71bd16718f883b6f22ab0f9a0", size = 8858 }, - { url = "https://files.pythonhosted.org/packages/14/e2/67bd062fbc9761c34b9911ed099ee50ccddc3032779ce420ca40083ee15c/pyobjc_framework_classkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bd90aacc68eff3412204a9040fa81eb18348cbd88ed56d33558349f3e51bff52", size = 8857 }, - { url = "https://files.pythonhosted.org/packages/87/5e/cf43c647af872499fc8e80cc6ac6e9ad77d9c77861dc2e62bdd9b01473ce/pyobjc_framework_classkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c027a3cd9be5fee3f605589118b8b278297c384a271f224c1a98b224e0c087e6", size = 8877 }, - { url = "https://files.pythonhosted.org/packages/a5/47/f89917b4683a8f61c64d5d30d64ed0a5c1cfd9f0dd9dfb099b3465c73bcf/pyobjc_framework_classkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0ac959a4e91a40865f12f041c083fa8862672f13e596c983f2b99afc8c67bc4e", size = 8890 }, - { url = "https://files.pythonhosted.org/packages/b4/9b/8a0dc753e73001026663fe8556895b23fbf6c238a705bfc86d8ce191eee3/pyobjc_framework_classkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:61fdac9e3bad384b47725587b77f932dbed71d0ae63b749eddfa390791eed4a2", size = 9043 }, - { url = "https://files.pythonhosted.org/packages/2e/0b/7f25a43b0820a220a00c4a334d93c36cfa9e4248764054d6f9901eacbbd4/pyobjc_framework_classkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5d0a5cd026c51a22d13eb75404f8317089aabb3faef723aeafc4ca9a0c17e66e", size = 8952 }, - { url = "https://files.pythonhosted.org/packages/1a/be/d33b868da5c646e8251521f3e523510eb85b34f329bb9267506d306acbd5/pyobjc_framework_classkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c95cd6a4f598e877197a93cc202d40d0d830bf09be5a2b15942e5a1b03e29cd4", size = 9115 }, -] - -[[package]] -name = "pyobjc-framework-cloudkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-accounts", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coredata", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corelocation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/83/dc/539f3a4c2b490adc2079f111b6594e847cd9fdb10d44b65b629977673c44/pyobjc_framework_cloudkit-12.0.tar.gz", hash = "sha256:1ac29d81005b92575ce6a5c9bdbb8fec50cd9fadaaab66db972934e5e542cf1c", size = 53756 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/01/67/5bbc583777376642c103a327930c11bca0c3eb3a1ceaad20dfaf55be96eb/pyobjc_framework_cloudkit-12.0-py2.py3-none-any.whl", hash = "sha256:1ad9af5c0ef94e147cd8c5676aab7925ead9da8398bd01898597c4da7cb3231b", size = 11102 }, -] - -[[package]] -name = "pyobjc-framework-cloudkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-accounts", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coredata", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corelocation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2d/09/762ee4f3ae8568b8e0e5392c705bc4aa1929aa454646c124ca470f1bf9fc/pyobjc_framework_cloudkit-12.1.tar.gz", hash = "sha256:1dddd38e60863f88adb3d1d37d3b4ccb9cbff48c4ef02ab50e36fa40c2379d2f", size = 53730 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/71/cbef7179bf1a594558ea27f1e5ad18f5c17ef71a8a24192aae16127bc849/pyobjc_framework_cloudkit-12.1-py2.py3-none-any.whl", hash = "sha256:875e37bf1a2ce3d05c2492692650104f2d908b56b71a0aedf6620bc517c6c9ca", size = 11090 }, -] - -[[package]] -name = "pyobjc-framework-cocoa" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/37/6f/89837da349fe7de6476c426f118096b147de923139556d98af1832c64b97/pyobjc_framework_cocoa-12.0.tar.gz", hash = "sha256:02d69305b698015a20fcc8e1296e1528e413d8cf9fdcd590478d359386d76e8a", size = 2771906 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/96/24/b36e0e8d3fc8320a252f243a7f909d7339fa6c057c670651568898a56e5c/pyobjc_framework_cocoa-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fe453a559be779fb4bc730b2f6686c5c78eb1898a7291964bc289f96506879b6", size = 383757 }, - { url = "https://files.pythonhosted.org/packages/8d/7d/1758df5c2cbf9a0a447cab7e9e5690f166c8b2117dc15d8f38a9526af9db/pyobjc_framework_cocoa-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae041b7c64a8fa93f0e06728681f7ad657ef2c92dcfdf8abc073d89fb6e3910b", size = 383765 }, - { url = "https://files.pythonhosted.org/packages/18/76/ee7a07e64f7afeff36bf2efe66caed93e41fcaa2b23fc89c4746387e4a0d/pyobjc_framework_cocoa-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed99d53a91f9feb9452ba8942cd09d86727f6dd2d56ecfd9b885ddbd4259ebdd", size = 384540 }, - { url = "https://files.pythonhosted.org/packages/fb/29/cfef5f021576976698c6ae195fa304238b9f6716e1b3eb11258d2572afe9/pyobjc_framework_cocoa-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:13e573f5093f4158f305b1bac5e1f783881ce2f5f4a69f3c80cb000f76731259", size = 384659 }, - { url = "https://files.pythonhosted.org/packages/f1/37/d2d9a143ab5387815a00f478916a52425c4792678366ef6cedf20b8cc9cd/pyobjc_framework_cocoa-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3b167793cd1b509eaf693140ace9be1f827a2c8686fceb8c599907661f608bc2", size = 388787 }, - { url = "https://files.pythonhosted.org/packages/0f/15/0a6122e430d0e2ba27ad0e345b89f85346805f39d6f97eea6430a74350d9/pyobjc_framework_cocoa-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2b6fb9ab3e5ab6db04dfa17828a97894e7da85dd8600885c72a0c2c2214d618", size = 384890 }, - { url = "https://files.pythonhosted.org/packages/79/d7/1a3ad814d427c08b99405e571e47a0219598930ad73850ac02d164d88cd0/pyobjc_framework_cocoa-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:32ff10250a57f72a0b6eca85b790dcc87548ff71d33d0436ffb69680d5e2f308", size = 388925 }, -] - -[[package]] -name = "pyobjc-framework-cocoa" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/02/a3/16ca9a15e77c061a9250afbae2eae26f2e1579eb8ca9462ae2d2c71e1169/pyobjc_framework_cocoa-12.1.tar.gz", hash = "sha256:5556c87db95711b985d5efdaaf01c917ddd41d148b1e52a0c66b1a2e2c5c1640", size = 2772191 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/aa/2b2d7ec3ac4b112a605e9bd5c5e5e4fd31d60a8a4b610ab19cc4838aa92a/pyobjc_framework_cocoa-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9b880d3bdcd102809d704b6d8e14e31611443aa892d9f60e8491e457182fdd48", size = 383825 }, - { url = "https://files.pythonhosted.org/packages/3f/07/5760735c0fffc65107e648eaf7e0991f46da442ac4493501be5380e6d9d4/pyobjc_framework_cocoa-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f52228bcf38da64b77328787967d464e28b981492b33a7675585141e1b0a01e6", size = 383812 }, - { url = "https://files.pythonhosted.org/packages/95/bf/ee4f27ec3920d5c6fc63c63e797c5b2cc4e20fe439217085d01ea5b63856/pyobjc_framework_cocoa-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:547c182837214b7ec4796dac5aee3aa25abc665757b75d7f44f83c994bcb0858", size = 384590 }, - { url = "https://files.pythonhosted.org/packages/ad/31/0c2e734165abb46215797bd830c4bdcb780b699854b15f2b6240515edcc6/pyobjc_framework_cocoa-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5a3dcd491cacc2f5a197142b3c556d8aafa3963011110102a093349017705118", size = 384689 }, - { url = "https://files.pythonhosted.org/packages/23/3b/b9f61be7b9f9b4e0a6db18b3c35c4c4d589f2d04e963e2174d38c6555a92/pyobjc_framework_cocoa-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:914b74328c22d8ca261d78c23ef2befc29776e0b85555973927b338c5734ca44", size = 388843 }, - { url = "https://files.pythonhosted.org/packages/59/bb/f777cc9e775fc7dae77b569254570fe46eb842516b3e4fe383ab49eab598/pyobjc_framework_cocoa-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:03342a60fc0015bcdf9b93ac0b4f457d3938e9ef761b28df9564c91a14f0129a", size = 384932 }, - { url = "https://files.pythonhosted.org/packages/58/27/b457b7b37089cad692c8aada90119162dfb4c4a16f513b79a8b2b022b33b/pyobjc_framework_cocoa-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6ba1dc1bfa4da42d04e93d2363491275fb2e2be5c20790e561c8a9e09b8cf2cc", size = 388970 }, -] - -[[package]] -name = "pyobjc-framework-collaboration" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/80/df/611e4f31a4ad32bc85d39f049006d7013fde6eec57f798714d13c3e02c70/pyobjc_framework_collaboration-12.0.tar.gz", hash = "sha256:7090d493adeffee2d6abcf2ce85d79cb273448b7624284ea7ede166e1a9daf7f", size = 14322 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/a7/02070855162d0b997884fffcc42976cead4de3e764f7b3b234fd9c23f2b2/pyobjc_framework_collaboration-12.0-py2.py3-none-any.whl", hash = "sha256:f3d5bf79ed1012068c279b46225b23236e4c099d549421192c89468d591c40cc", size = 4915 }, -] - -[[package]] -name = "pyobjc-framework-collaboration" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/64/21/77fe64b39eae98412de1a0d33e9c735aa9949d53fff6b2d81403572b410b/pyobjc_framework_collaboration-12.1.tar.gz", hash = "sha256:2afa264d3233fc0a03a56789c6fefe655ffd81a2da4ba1dc79ea0c45931ad47b", size = 14299 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/66/1507de01f1e2b309f8e11553a52769e4e2e9939ed770b5b560ef5bc27bc1/pyobjc_framework_collaboration-12.1-py2.py3-none-any.whl", hash = "sha256:182d6e6080833b97f9bef61738ae7bacb509714538f0d7281e5f0814c804b315", size = 4907 }, -] - -[[package]] -name = "pyobjc-framework-colorsync" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/81/efc29f6af5fb9c1c483c3035c3020e0e6932f8d975972e0f9c71a31615f6/pyobjc_framework_colorsync-12.0.tar.gz", hash = "sha256:9733cef2d4641cbd308fc3f33b8fba07f34ed1e58bf45a4d982289c9c6706156", size = 25015 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/10/6e1025a7aaa9b7d5bbd97b0ff462a40880b0ded608e7ec5c87c5f50100ae/pyobjc_framework_colorsync-12.0-py2.py3-none-any.whl", hash = "sha256:68c24293b0613796521172964c2b579b76794bcbb62f1d045ef5539e60b91626", size = 5963 }, -] - -[[package]] -name = "pyobjc-framework-colorsync" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c0/b4/706e4cc9db25b400201fc90f3edfaa1ab2d51b400b19437b043a68532078/pyobjc_framework_colorsync-12.1.tar.gz", hash = "sha256:d69dab7df01245a8c1bd536b9231c97993a5d1a2765d77692ce40ebbe6c1b8e9", size = 25269 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/e1/82e45c712f43905ee1e6d585180764e8fa6b6f1377feb872f9f03c8c1fb8/pyobjc_framework_colorsync-12.1-py2.py3-none-any.whl", hash = "sha256:41e08d5b9a7af4b380c9adab24c7ff59dfd607b3073ae466693a3e791d8ffdc9", size = 6020 }, -] - -[[package]] -name = "pyobjc-framework-compositorservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2f/0c/e7e6b4b329691804bf4dd5a4c05e7e3432b929265c914e38d09de80b629b/pyobjc_framework_compositorservices-12.0.tar.gz", hash = "sha256:c2d47153e6d180d0040235b8a61d58d1c9659f55df933fd4f16a55f281fcf9c9", size = 23309 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/26/83bf8f230ae22ab531c2870ef33a85c3d36aef05d3efd0a5899a68531b96/pyobjc_framework_compositorservices-12.0-py2.py3-none-any.whl", hash = "sha256:71f98346eb05c240a3b4c3f0d5399dbadd4dbb73b74bea24600065c9ef9d453f", size = 5918 }, -] - -[[package]] -name = "pyobjc-framework-compositorservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/54/c5/0ba31d7af7e464b7f7ece8c2bd09112bdb0b7260848402e79ba6aacc622c/pyobjc_framework_compositorservices-12.1.tar.gz", hash = "sha256:028e357bbee7fbd3723339a321bbe14e6da5a772708a661a13eea5f17c89e4ab", size = 23292 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/34/5a2de8d531dbb88023898e0b5d2ce8edee14751af6c70e6103f6aa31a669/pyobjc_framework_compositorservices-12.1-py2.py3-none-any.whl", hash = "sha256:9ef22d4eacd492e13099b9b8936db892cdbbef1e3d23c3484e0ed749f83c4984", size = 5910 }, -] - -[[package]] -name = "pyobjc-framework-contacts" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/47/fb/9e60e4db4a4f4c02be4b0ba2d59ea116db230e1f4de134247d3390168dcb/pyobjc_framework_contacts-12.0.tar.gz", hash = "sha256:ac921f8ef7bf3767b335d8055f597b03ad6845dfd93c05647cf41550af6dcda3", size = 42727 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/38/856ae7517526fb97858d6122b392867b8a45acbf222dc2bfbf61e818d0b0/pyobjc_framework_contacts-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4165dc3ab10b5077e8c2ce20e51182a21709a5d4f463a5f961c85704d46503e4", size = 12094 }, - { url = "https://files.pythonhosted.org/packages/ea/94/55c18e908a9e25e47b2649e1c9ac4a5eb79d4d8595cf2585324d00ce32c5/pyobjc_framework_contacts-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1929f3c9de057542da9d292d8ab0d40dfc086b24acf50739f7d590ac7486d13d", size = 12093 }, - { url = "https://files.pythonhosted.org/packages/24/52/3e7639e42f457b4890e9f847c3e54eeada34e888602e11fcc4e7418475e2/pyobjc_framework_contacts-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:29f8a0253c251e5b699cdf392004f130190df53e53ba1fb40e7cd1b64ed1383d", size = 12175 }, - { url = "https://files.pythonhosted.org/packages/df/27/da5ffb07e7b0a54f5c16d99ebffe4e7407204681e2aa03efa4d47792a669/pyobjc_framework_contacts-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5b9892f560586295fd9d8e87610add3417c36564a5cc3af70baf64f662024b56", size = 12183 }, - { url = "https://files.pythonhosted.org/packages/e7/e2/d3f8fe4cb9018086b4dcea1090533cd3fc44ff99ffc809e5f5fef6845d8d/pyobjc_framework_contacts-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:70469137f625a909becee54770c1134766d6a9367f19027b9b04f04d673ce2d0", size = 12352 }, - { url = "https://files.pythonhosted.org/packages/bf/8a/a9b64fddb086bfe34bbf12a791876b892d274666557188dea9232233c4db/pyobjc_framework_contacts-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:01f58f1b5c49b1cfe9bfc3dbebc00ca48962000b7d40fbeb1a9f25e2b03732ed", size = 12268 }, - { url = "https://files.pythonhosted.org/packages/88/56/55ddc21dd30d971e7a3f55b18431f49ffd9cce1cafbffeb953c84e839c3f/pyobjc_framework_contacts-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:14f80cfc5b77e4db87c5e679ad7f864435a732e55fd1158a046383603e8224d8", size = 12423 }, -] - -[[package]] -name = "pyobjc-framework-contacts" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4b/a0/ce0542d211d4ea02f5cbcf72ee0a16b66b0d477a4ba5c32e00117703f2f0/pyobjc_framework_contacts-12.1.tar.gz", hash = "sha256:89bca3c5cf31404b714abaa1673577e1aaad6f2ef49d4141c6dbcc0643a789ad", size = 42378 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/49/a95ea5ab95170b1e497275928e275d871ab698c4d65611fcc2a685b6bf4d/pyobjc_framework_contacts-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b570807aaead01b51c25cb425526f4ac3527eec25fa8672fd450a1b558c037", size = 12086 }, - { url = "https://files.pythonhosted.org/packages/94/f5/5d2c03cf5219f2e35f3f908afa11868e9096aff33b29b41d63f2de3595f2/pyobjc_framework_contacts-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8ab86070895a005239256d207e18209b1a79d35335b6604db160e8375a7165e6", size = 12086 }, - { url = "https://files.pythonhosted.org/packages/32/c8/2c4638c0d06447886a34070eebb9ba57407d4dd5f0fcb7ab642568272b88/pyobjc_framework_contacts-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2e5ce33b686eb9c0a39351938a756442ea8dea88f6ae2f16bff5494a8569c687", size = 12165 }, - { url = "https://files.pythonhosted.org/packages/25/43/e322dd14c77eada5a4f327f5bc094061c90efabc774b30396d1155a69c44/pyobjc_framework_contacts-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:62d985098aa86a86d23bff408aac47389680da4edc61f6acf10b2197efcbd0e0", size = 12177 }, - { url = "https://files.pythonhosted.org/packages/0a/37/53eba15f2e31950056c63b78732b73379ddbf946c5e6681f3b2773dcf282/pyobjc_framework_contacts-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ab1d78f363dfede16bd5d951327332564bae86f68834d1e657dd18fe4dc12082", size = 12346 }, - { url = "https://files.pythonhosted.org/packages/7e/8b/3200f69b77ea85fe69caa1afea444387b5e41bf44ceff11e772954d8a0d5/pyobjc_framework_contacts-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:65576c359eb31c5a5ef95e0c6714686a94bb154a508d791885ff7c33dbc8afa3", size = 12259 }, - { url = "https://files.pythonhosted.org/packages/a2/81/0da71a88273aa73841cd3669431c30be627600162ec89cd170759dbffeaf/pyobjc_framework_contacts-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fac7feca7428047abf3f094fab678c4d0413296f34c30085119850509bc2905", size = 12410 }, -] - -[[package]] -name = "pyobjc-framework-contactsui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-contacts", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/64/9b/eb41bfdad0a2049f27559e0d152b1bb6cc1d001cc9ebf97fb94f548bc3ea/pyobjc_framework_contactsui-12.0.tar.gz", hash = "sha256:98bed7b93b0934786f6ddd9644c80175a40a593a0a4ffd8128ef7885bc377f5a", size = 19163 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/1a/abd2c09890e7d8bb57538592ad1a037698219ed9d2d1c1b158c0a03bd428/pyobjc_framework_contactsui-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:938a86e5b43b62e030de692475d2fa04d3b398e2b23b16bc384c1e09e7cfc1a9", size = 7881 }, - { url = "https://files.pythonhosted.org/packages/45/bb/0aaf1fc166646156a746fad066a50d2191aa06e975bb9f55d880633e0ead/pyobjc_framework_contactsui-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ffc7837b2bbddc1c4e830bcee07d976f87a2827422f16fd7612fe8b1fd4332a1", size = 7880 }, - { url = "https://files.pythonhosted.org/packages/f6/50/1ff9219c73335ddbe85099fe09d8f02030a5ff2dd1e839167b67916477dc/pyobjc_framework_contactsui-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9005c08196dd4fc5d338579163391e969354905f312639816683b4976ea496b5", size = 7899 }, - { url = "https://files.pythonhosted.org/packages/6b/ff/05321db2ce7979dd8d0137a919734e8608990c7a8323e7bfaeed283a3750/pyobjc_framework_contactsui-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4ee9afcc857434147939e53d7190582f919660f7bc7c44b3a2682cb61f639162", size = 7914 }, - { url = "https://files.pythonhosted.org/packages/19/b9/30e4db40690ecee1c84dcdcf445f65378b54cebb0bd650faa92caff231e9/pyobjc_framework_contactsui-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93cae23de7d80bec4de6241f10328a40581360e6b4ed7510deb004290068f2e5", size = 8061 }, - { url = "https://files.pythonhosted.org/packages/15/c1/14d8afd208cc8f03dc67d68027bd28b71a1dec0a7635662626584617e7b8/pyobjc_framework_contactsui-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fe9081e485b4be4c9062f9d9764f0cad969effb20ff98fa2b51fc6db478e33f5", size = 7968 }, - { url = "https://files.pythonhosted.org/packages/7f/02/91454deed58153c97ad07a93c70179714c3ca9ee4821d32eeace3a3ada4a/pyobjc_framework_contactsui-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bd37e9024336302e021459b2b9098e463d8e6ef96a9bebe79285d043bb79a7a", size = 8122 }, -] - -[[package]] -name = "pyobjc-framework-contactsui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-contacts", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cd/0c/7bb7f898456a81d88d06a1084a42e374519d2e40a668a872b69b11f8c1f9/pyobjc_framework_contactsui-12.1.tar.gz", hash = "sha256:aaeca7c9e0c9c4e224d73636f9a558f9368c2c7422155a41fd4d7a13613a77c1", size = 18769 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/6d/4d5070c4ce85e0aaf95aed8a1d482fafd031ebe30f70f7788c2a7737d661/pyobjc_framework_contactsui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9aedac00f41c1fae02befc70263f22f74518cc392fe19b66cc325d8f95e78b2c", size = 7874 }, - { url = "https://files.pythonhosted.org/packages/04/e3/8d330640bf0337289834334c54c599fec2dad38a8a3b736d40bcb5d8db6e/pyobjc_framework_contactsui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:10e7ce3b105795919605be89ebeecffd656e82dbf1bafa5db6d51d6def2265ee", size = 7871 }, - { url = "https://files.pythonhosted.org/packages/f3/ab/319aa52dfe6f836f4dc542282c2c13996222d4f5c9ea7ff8f391b12dac83/pyobjc_framework_contactsui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:057f40d2f6eb1b169a300675ec75cc7a747cddcbcee8ece133e652a7086c5ab5", size = 7888 }, - { url = "https://files.pythonhosted.org/packages/fd/9c/c9a71681e2ad8695222dbdbbe740af22cc354e9130df6108f9bfe90a4100/pyobjc_framework_contactsui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ee2eccb633bc772ecb49dba7199546154efc2db5727992229cdf84b3f6ac84f", size = 7907 }, - { url = "https://files.pythonhosted.org/packages/a0/54/abdb4c5f53323edc1e02bd0916133c4e6b82ad268eded668ef7b40a1e6c9/pyobjc_framework_contactsui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c9d64bbc4cfae0f082627b57f7e29e71b924af970f344b106b17fb68e13f7da0", size = 8056 }, - { url = "https://files.pythonhosted.org/packages/4b/d4/fe84efe4301a4367a2ab427214f20e13bfb3a64dc5e29649acc15022c0ad/pyobjc_framework_contactsui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:eb06b422ce8d422dce2c9af49a2bd093f78761e5aa3f1c866582a4c60cf31f79", size = 7961 }, - { url = "https://files.pythonhosted.org/packages/39/c1/3ed9be7e479b13e4fd483c704c4833008ff8e63ee3acd66922f2f7a60292/pyobjc_framework_contactsui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1bbb9bee9535505398771886ac43399400ffc9a84836e845e6d9708ac88e2d5d", size = 8120 }, -] - -[[package]] -name = "pyobjc-framework-coreaudio" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4c/a0/604b8e2e53f46536b9045fc0fbfa9468a606910c9c0a238d0f3d31071d87/pyobjc_framework_coreaudio-12.0.tar.gz", hash = "sha256:19741907d2d80a658d3721140eb998061007955323b427afca67eda0e2ad3215", size = 75415 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/ac/e4155461532be74d67df6c3fdfff196c25d858bfcafccc2ca06423a7ea5a/pyobjc_framework_coreaudio-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96d042a4bc81b22865d40659ddda3126609753785bc624b8e8849433af795603", size = 35333 }, - { url = "https://files.pythonhosted.org/packages/e4/42/284cc68a2bd310f4399eb92e5259319a3131b1fba5f1496dfaa477eaaed0/pyobjc_framework_coreaudio-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d6287d67c7b3ca9abf4b7e8a64e1a05e97ebcb52b32e92a78e1e825d1334ec56", size = 35337 }, - { url = "https://files.pythonhosted.org/packages/51/49/97cbda2efdb02e9d8c8507dc980040056b96ca9604dab41cbed3c874fe4a/pyobjc_framework_coreaudio-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c89762834680a26436a8e435dc736b509f1c3aa3927f66db85d3289995d007d2", size = 36920 }, - { url = "https://files.pythonhosted.org/packages/52/c1/8bd4c6a917d7314042a7b26f3433c680c051f64995da682a5f99502202c9/pyobjc_framework_coreaudio-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f7309087b42ce6c399d2971a7173c9216c03a43a998bb2be2eecc90fb362ccb2", size = 36944 }, - { url = "https://files.pythonhosted.org/packages/84/92/23ab5d0f3b953bb944d7bbb99d054c560b9a2d931d173e9165b44172ebb8/pyobjc_framework_coreaudio-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b52a2ef28b557c5f5cbf97264ce0c6f8ce1a4ea0309b4a952122b9bc3a4ad636", size = 38398 }, - { url = "https://files.pythonhosted.org/packages/e2/14/d7f6b39f0234de213889df52091681b9abab9e4b7ca6858eff1cbe5e3c14/pyobjc_framework_coreaudio-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:30ac30f6be6b35bbe7f21c055269de6643c378c5e15bf5002c4eb1de942904fc", size = 37021 }, - { url = "https://files.pythonhosted.org/packages/34/ee/f1e955191775df1cdac142bfca1dc2787c9dde9f23e821061c7a18ff6e86/pyobjc_framework_coreaudio-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1bb16d186466cf3b9c23e29dbc0470c282c7194dc022b685f075a7585dfc8a43", size = 38498 }, -] - -[[package]] -name = "pyobjc-framework-coreaudio" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/84/d1/0b884c5564ab952ff5daa949128c64815300556019c1bba0cf2ca752a1a0/pyobjc_framework_coreaudio-12.1.tar.gz", hash = "sha256:a9e72925fcc1795430496ce0bffd4ddaa92c22460a10308a7283ade830089fe1", size = 75077 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/15/4a635daa2c08133da5556d4fc7aee59de718031b79bb5cb24480e571f734/pyobjc_framework_coreaudio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d676c85bb9dc51217d94adc3b5b60e7e5b59a81167446f06821b2687d92641d3", size = 35330 }, - { url = "https://files.pythonhosted.org/packages/9e/25/491ff549fd9a40be4416793d335bff1911d3d1d1e1635e3b0defbd2cf585/pyobjc_framework_coreaudio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a452de6b509fa4a20160c0410b72330ac871696cd80237883955a5b3a4de8f2a", size = 35327 }, - { url = "https://files.pythonhosted.org/packages/a9/48/05b5192122e23140cf583eac99ccc5bf615591d6ff76483ba986c38ee750/pyobjc_framework_coreaudio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a5ad6309779663f846ab36fe6c49647e470b7e08473c3e48b4f004017bdb68a4", size = 36908 }, - { url = "https://files.pythonhosted.org/packages/3d/ce/45808618fefc760e2948c363e0a3402ff77690c8934609cd07b19bc5b15f/pyobjc_framework_coreaudio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3d8ef424850c8ae2146f963afaec6c4f5bf0c2e412871e68fb6ecfb209b8376f", size = 36935 }, - { url = "https://files.pythonhosted.org/packages/bf/f6/0d74d9464bfb4f39451abf745174ec0c4d5c5ebf1c2fcb7556263ae3f75a/pyobjc_framework_coreaudio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6552624df39dbc68ff9328f244ba56f59234ecbde8455db1e617a71bc4f3dd3a", size = 38390 }, - { url = "https://files.pythonhosted.org/packages/cf/f2/c5ca32d01c9d892bf189cfe9b17deaf996db3b4013f8a8ba9b0d22730d70/pyobjc_framework_coreaudio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:78ea67483a5deb21625c189328152008d278fe1da4304da9fcc1babd12627038", size = 37012 }, - { url = "https://files.pythonhosted.org/packages/00/be/c3d660cef1ef874f42057a74931a7a05f581f6a647f5209bef96b372db86/pyobjc_framework_coreaudio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8d81b0d0296ab4571a4ff302e5cdb52386e486eb8749e99b95b9141438558ca2", size = 38485 }, -] - -[[package]] -name = "pyobjc-framework-coreaudiokit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e2/4e/9c55aa44e330cbbecf47c41fd1804128057422ae9ef2349db8c122c9ffb2/pyobjc_framework_coreaudiokit-12.0.tar.gz", hash = "sha256:2f02896167adf3f420ab8dd55a41c905e42ed59edf21a6f5f6d4d2f16b8b67a8", size = 20519 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/1b/18cb821eaf9a07ca7fe7c323b132dfebfa2140cf829919bddcfb1f311f38/pyobjc_framework_coreaudiokit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dea8ea865de5898180969be6aa104429528bce5c4bd34e8967e373f184769a89", size = 7252 }, - { url = "https://files.pythonhosted.org/packages/b9/b3/c5723b94ba5d054971b8e6e5d4cefbd7664892556259e41fd911202227f9/pyobjc_framework_coreaudiokit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0ddca463bd0adc3cd67ef2ae345c066f792ebddd8113903e06e2b6bab23750e3", size = 7256 }, - { url = "https://files.pythonhosted.org/packages/82/af/3b5a9b306b8d605fe6ade3c38ea6603a845c78c53c648d7d849e9670788e/pyobjc_framework_coreaudiokit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d9caad5d1e560dbe013d41a29a7ae0b38b99cacaadb60e94a58cb15430af80db", size = 7280 }, - { url = "https://files.pythonhosted.org/packages/e6/4c/377cf6bba1282ab5f02da2bbb2ddf9d4a7f68124096f5f0c712292d6294f/pyobjc_framework_coreaudiokit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e6dd90bee277d320198041ca54986af9a985dda5ee9a97910f446ab43bb1379a", size = 7295 }, - { url = "https://files.pythonhosted.org/packages/5d/70/a851e968af8b523ed8e194dcb9b232baffd2448c6c4f85daac91d143b68c/pyobjc_framework_coreaudiokit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c34d09d49e2b5ce3bc40bc91db6616807aa34f7d88a75dcfd89d5e6184fe4186", size = 7449 }, - { url = "https://files.pythonhosted.org/packages/0d/d4/207c787fd2522df4ea14838f73979d31a69a70c2d0fec227eb36c0ff7bfa/pyobjc_framework_coreaudiokit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:48b4a04dcb825567bcf6aca1e9145ed68722f82e081d6db0cb0330d3dfca2190", size = 7359 }, - { url = "https://files.pythonhosted.org/packages/a5/7e/599499bf4ebc7a81fb900107e334f4ba0e57cb38423c5c85c9904180349b/pyobjc_framework_coreaudiokit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2be1a9f95a4e24c7cd18a8bbe2a3173a14aa60a4edc830bb341a4ac4d2189265", size = 7514 }, -] - -[[package]] -name = "pyobjc-framework-coreaudiokit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreaudio", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/41/1c/5c7e39b9361d4eec99b9115b593edd9825388acd594cb3b4519f8f1ac12c/pyobjc_framework_coreaudiokit-12.1.tar.gz", hash = "sha256:b83624f8de3068ab2ca279f786be0804da5cf904ff9979d96007b69ef4869e1e", size = 20137 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/fb/3ba9f67d04014e0d367cddd920aeaa9f2be997878eefb049015c16ad8889/pyobjc_framework_coreaudiokit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7b7230cf4f34f2e35fc40928fa723c43193c359b21b690485001ca3616829b6c", size = 7253 }, - { url = "https://files.pythonhosted.org/packages/c2/53/e4233fbe5b94b124f5612e1edc130a9280c4674a1d1bf42079ea14b816e1/pyobjc_framework_coreaudiokit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e1144c272f8d6429a34a6757700048f4631eb067c4b08d4768ddc28c371a7014", size = 7250 }, - { url = "https://files.pythonhosted.org/packages/19/d7/f171c04c6496afeaad2ab658b0c810682c8407127edc94d4b3f3b90c2bb1/pyobjc_framework_coreaudiokit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:97d5dd857e73d5b597cfc980972b021314b760e2f5bdde7bbba0334fbf404722", size = 7273 }, - { url = "https://files.pythonhosted.org/packages/81/9a/6cb91461b07c38b2db7918ee756f05fd704120b75ddc1a759e04af50351b/pyobjc_framework_coreaudiokit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dc1589cda7a4ae0560bf73e1a0623bb710de09ef030d585035f8a428a3e8d6a1", size = 7284 }, - { url = "https://files.pythonhosted.org/packages/21/d8/1418fb222c6502ce2a99c415982895b510f6c48bdf60ca0dbed9897d96df/pyobjc_framework_coreaudiokit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6ec70b69d21925e02602cc22c5e0132daedc15ce65b7e3cc863fdb5f13cc23e3", size = 7446 }, - { url = "https://files.pythonhosted.org/packages/92/65/36f017784df7ca5ad7741f1624c89410d62d0ebdeb437be32f7a1286a6df/pyobjc_framework_coreaudiokit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2f9839a4bd05db2e7d12659af4cab32ec17dfee89fff83bbe9faee558e77a08", size = 7349 }, - { url = "https://files.pythonhosted.org/packages/f1/fe/f012a1e3b92991819ae3319408cd77b2e7019be14d2b751d6ff613a8fe83/pyobjc_framework_coreaudiokit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0bf793729bf95bb2c667eba315ba4a6ab359f930efd1a5ea686392478abb687f", size = 7503 }, -] - -[[package]] -name = "pyobjc-framework-corebluetooth" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/96/b2/ad9e8516cd73611a3a8f8ff2d7d51b917115f3f7f9e7a9760d5fc4e9dd6b/pyobjc_framework_corebluetooth-12.0.tar.gz", hash = "sha256:61ae2a56c3dcb8b7307d833e7d913bd7c063d11a1ea931158facceb38aae21d3", size = 33587 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/62/ec1590a0e490538c000420209c7d7e5690fce6bf2c03f09d3380edffc4c8/pyobjc_framework_corebluetooth-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9ef4e511c7cf2c25a6ae9193c57f66e78de97db3153e732252a579d24fd796d3", size = 13199 }, - { url = "https://files.pythonhosted.org/packages/2a/ef/4190181375f38d1223cd022fb526cc1ec1c1708937482203141ab1238fbb/pyobjc_framework_corebluetooth-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ab59e55ab6c71fcbe747359eb1119771021231fade3c5ceae6e8a5d542e32450", size = 13200 }, - { url = "https://files.pythonhosted.org/packages/04/7d/628c3711e2fd13864217b1984ebef815d774caf2806b4366b3ed869e6ee3/pyobjc_framework_corebluetooth-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0b5b3b276efb08a1615932327c2f79781cf57d3c46a45a373e6e630cd36f5106", size = 13226 }, - { url = "https://files.pythonhosted.org/packages/9c/7e/8d6c430d6a282ea496373ef210d451ae716e8ceea1a6a5b3a1155b793150/pyobjc_framework_corebluetooth-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba02d0a6257cb08a86198e70cb8c0113c81abf5f919be9078912af8eaf6688ae", size = 13241 }, - { url = "https://files.pythonhosted.org/packages/d4/1a/e879130406efdbef2067245af85bbb9ae0053a8e80e69a3603926e1a6cd1/pyobjc_framework_corebluetooth-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7696dbb61074ac657d213717869c93e6c3910369255f426844b85f4b039fb58c", size = 13425 }, - { url = "https://files.pythonhosted.org/packages/b6/bf/68d2c3c90039265c94b69d3091c8c8af94b1107f38898b49bd88acb81ae0/pyobjc_framework_corebluetooth-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a50ff5e5ef5df8fd2b275fadbd51f44cec45ba78948a86339e89315909d82bd6", size = 13233 }, - { url = "https://files.pythonhosted.org/packages/80/b7/fd0563e15d17746695247f247e9cdaf56ebca47b4db72c6a882e861fb2fe/pyobjc_framework_corebluetooth-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:000d3a863fcd119dbdc6682ebe4cc559e2569ec367a7417ac2635c3f411f7697", size = 13423 }, -] - -[[package]] -name = "pyobjc-framework-corebluetooth" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4b/25/d21d6cb3fd249c2c2aa96ee54279f40876a0c93e7161b3304bf21cbd0bfe/pyobjc_framework_corebluetooth-12.1.tar.gz", hash = "sha256:8060c1466d90bbb9100741a1091bb79975d9ba43911c9841599879fc45c2bbe0", size = 33157 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/1b/06914f4eb1bd8ce598fdd210e1a7411556286910fc8d8919ab7dbaebe629/pyobjc_framework_corebluetooth-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:937849f4d40a33afbcc56cbe90c8d1fbf30fb27a962575b9fb7e8e2c61d3c551", size = 13187 }, - { url = "https://files.pythonhosted.org/packages/57/7a/26ae106beb97e9c4745065edb3ce3c2bdd91d81f5b52b8224f82ce9d5fb9/pyobjc_framework_corebluetooth-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:37e6456c8a076bd5a2bdd781d0324edd5e7397ef9ac9234a97433b522efb13cf", size = 13189 }, - { url = "https://files.pythonhosted.org/packages/2a/56/01fef62a479cdd6ff9ee40b6e062a205408ff386ce5ba56d7e14a71fcf73/pyobjc_framework_corebluetooth-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe72c9732ee6c5c793b9543f08c1f5bdd98cd95dfc9d96efd5708ec9d6eeb213", size = 13209 }, - { url = "https://files.pythonhosted.org/packages/e0/6c/831139ebf6a811aed36abfdfad846bc380dcdf4e6fb751a310ce719ddcfd/pyobjc_framework_corebluetooth-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5a894f695e6c672f0260327103a31ad8b98f8d4fb9516a0383db79a82a7e58dc", size = 13229 }, - { url = "https://files.pythonhosted.org/packages/09/3c/3a6fe259a9e0745aa4612dee86b61b4fd7041c44b62642814e146b654463/pyobjc_framework_corebluetooth-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1daf07a0047c3ed89fab84ad5f6769537306733b6a6e92e631581a0f419e3f32", size = 13409 }, - { url = "https://files.pythonhosted.org/packages/2f/41/90640a4db62f0bf0611cf8a161129c798242116e2a6a44995668b017b106/pyobjc_framework_corebluetooth-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:15ba5207ca626dffe57ccb7c1beaf01f93930159564211cb97d744eaf0d812aa", size = 13222 }, - { url = "https://files.pythonhosted.org/packages/86/99/8ed2f0ca02b9abe204966142bd8c4501cf6da94234cc320c4c0562c467e8/pyobjc_framework_corebluetooth-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e5385195bd365a49ce70e2fb29953681eefbe68a7b15ecc2493981d2fb4a02b1", size = 13408 }, -] - -[[package]] -name = "pyobjc-framework-coredata" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/ad/391d4c821c37ccf1a15ac13579c8f1eac8114a95b97d5904c9566ad4d593/pyobjc_framework_coredata-12.0.tar.gz", hash = "sha256:b9955d3b5951de8025cb24646281e42e85f37233150e4c7c62f1e2961088488b", size = 124704 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/96/e4/098293b3f490d3b4a1a281697172f66d3adc12d81c34c276e2a71e4a9c90/pyobjc_framework_coredata-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7a7c5398e05b0a3a44295c5541d2b524bcb06924934bcbf1b95aab8702b11d70", size = 16402 }, - { url = "https://files.pythonhosted.org/packages/78/50/11f57e33b290bc3d34a7901584761965bf273248ddc0ef9eab276e2fa709/pyobjc_framework_coredata-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5e51e6b80bd9151fe09be4084954c26f8c4332367bf2ea60347617491b477152", size = 16401 }, - { url = "https://files.pythonhosted.org/packages/a4/a4/68f5c43b795deb188be5bdbabd0b284e8610591de35b2bfbd22ae2841d40/pyobjc_framework_coredata-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:160d0348e7b03a6248c1810b1e493bb1a6c3bf4c4eab2577fc45b20967ff56ee", size = 16413 }, - { url = "https://files.pythonhosted.org/packages/d3/6d/bc0fd51b3d06f3cc7a555b8c16a4ac1194db213f4549e80802d0683eba05/pyobjc_framework_coredata-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a85947442d8aad572e54a9459f7285f69fcc5643b4fbec03bfad12d35ab23434", size = 16425 }, - { url = "https://files.pythonhosted.org/packages/05/62/af7bef77d6db9ee0f18e03017eb012a767ae495791b576815251f8aa5f89/pyobjc_framework_coredata-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:057e8e0535a39ed6f764dd840fbb99dee58d55944aab00258ba50edcf0ce9778", size = 16583 }, - { url = "https://files.pythonhosted.org/packages/f6/4d/22371987fcf1ab81697fbacfb1424f6a3fcf6826617fbb03d17ef537f0e0/pyobjc_framework_coredata-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b20932f5eef4544ff8ae6c2a483ea6d9d4e7f36d27520ec4f3c9c8dc47d92889", size = 16490 }, - { url = "https://files.pythonhosted.org/packages/2f/42/afc082fcdc6229ce3246308e9d1ab401d3f07907f551827a3df76ea2507b/pyobjc_framework_coredata-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c85318310737c3bf835fb6e4b5bf9bb333a7ac8b25a3880ea4a81adee8aa5852", size = 16643 }, -] - -[[package]] -name = "pyobjc-framework-coredata" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3e/c5/8cd46cd4f1b7cf88bdeed3848f830ea9cdcc4e55cd0287a968a2838033fb/pyobjc_framework_coredata-12.1.tar.gz", hash = "sha256:1e47d3c5e51fdc87a90da62b97cae1bc49931a2bb064db1305827028e1fc0ffa", size = 124348 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/66/d08c3d412a12f4032e432c770185bc9cd3521789d8f3eafa2c0c78f8ca4e/pyobjc_framework_coredata-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:547115df2391dafe9dbc0ae885a7d87e1c5f1710384effd8638857e5081c75ec", size = 16395 }, - { url = "https://files.pythonhosted.org/packages/6b/a8/4c694c85365071baef36013a7460850dcf6ebfea0ba239e52d7293cdcb93/pyobjc_framework_coredata-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c861dc42b786243cbd96d9ea07d74023787d03637ef69a2f75a1191a2f16d9d6", size = 16395 }, - { url = "https://files.pythonhosted.org/packages/a3/29/fe24dc81e0f154805534923a56fe572c3b296092f086cf5a239fccc2d46a/pyobjc_framework_coredata-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a3ee3581ca23ead0b152257e98622fe0bf7e7948f30a62a25a17cafe28fe015e", size = 16409 }, - { url = "https://files.pythonhosted.org/packages/f8/12/a22773c3a590d4923c74990d6714c4463bd1e183daaa67d6b00c9f325b33/pyobjc_framework_coredata-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:79f68577a7e96c57559ec844a129a5edce6827cdfafe49bf31524a488d715a37", size = 16420 }, - { url = "https://files.pythonhosted.org/packages/a6/32/9595f0c8727d6ac312d18d23fc4a327c34c6ab873d2b760bbc40cf063726/pyobjc_framework_coredata-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:279b39bdb2a9c5e4d0377c1e81263b7d137bf2be37e15d6b5b2403598596f0e3", size = 16576 }, - { url = "https://files.pythonhosted.org/packages/66/2e/238dedc9499b4cccb963dccdfbbc420ace33a01fb9e1221a79c3044fecce/pyobjc_framework_coredata-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:07d19e7db06e1ad21708cf01fc8014d5f1b73efd373a99af6ff882c1bfb8497b", size = 16479 }, - { url = "https://files.pythonhosted.org/packages/e1/55/a044857da51644bce6d1914156db5190443653ab9ce6806864728d06d017/pyobjc_framework_coredata-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ac49d45b372f768bd577a26b503dd04e553ffebd3aa96c653b1c88a3f2733552", size = 16636 }, -] - -[[package]] -name = "pyobjc-framework-corehaptics" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8d/3a/040fc7a9dfebe59825cf71749d1085cdbd21a2b9192efbe0333407d7c2e4/pyobjc_framework_corehaptics-12.0.tar.gz", hash = "sha256:f2de5699473162421522347a090285f5394da7fd23da5008c1f18229678d84bf", size = 22150 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/f0/928ebf2bae947ead0cf9aba49ad6f1085c4fa6c183e75d6719539348d2fe/pyobjc_framework_corehaptics-12.0-py2.py3-none-any.whl", hash = "sha256:b04d1a7895b7c56371971bc87aacbb604bb3778896cab3d81d97caef4e89240a", size = 5390 }, -] - -[[package]] -name = "pyobjc-framework-corehaptics" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3a/2f/74a3da79d9188b05dd4be4428a819ea6992d4dfaedf7d629027cf1f57bfc/pyobjc_framework_corehaptics-12.1.tar.gz", hash = "sha256:521dd2986c8a4266d583dd9ed9ae42053b11ae7d3aa89bf53fbee88307d8db10", size = 22164 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/f4/f469d6a9cac7c195f3d08fa65f94c32dd1dcf97a54b481be648fb3a7a5f3/pyobjc_framework_corehaptics-12.1-py2.py3-none-any.whl", hash = "sha256:a3b07d36ddf5c86a9cdaa411ab53d09553d26ea04fc7d4f82d21a84f0fc05fc0", size = 5382 }, -] - -[[package]] -name = "pyobjc-framework-corelocation" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/3a/a196c403b4f911905a5886374054019f3842873cf517f38c728905e0fe55/pyobjc_framework_corelocation-12.0.tar.gz", hash = "sha256:20a6fe17709f17ddbf9dd833a1a0ef045ad2e5838ba777f20eb329ed71c597c6", size = 53900 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/c1/7c7f4f6eb37aefb1f43e6ef642f96f7ec4e551a843b43a31be9981899207/pyobjc_framework_corelocation-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a334b081e877a27820254870f4c1443bfa5c4f6fa7977dfb313d4942219c59f5", size = 12706 }, - { url = "https://files.pythonhosted.org/packages/0a/8b/7b08d006d1eb8e44605657434a2f17e7fd16c87eef834081bb323ffca90f/pyobjc_framework_corelocation-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7417d38bf3ec97c14e87f7fedd8c4a978c27789fe738f15b774eb959dbbbe60", size = 12711 }, - { url = "https://files.pythonhosted.org/packages/54/f1/9dd04add550c24953ac6a9845734f22100bf10a2d5dc20949ff7630ce239/pyobjc_framework_corelocation-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dbe100fa108b1b1fa4cd240953988ba4f0e1e60fa6402d8a45c715048675828", size = 12727 }, - { url = "https://files.pythonhosted.org/packages/fd/7e/415ebfe90b909a9400755702a49c985cd8dd8a0669dac7747eb289a703b3/pyobjc_framework_corelocation-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4b3480a4dc2b2dadea40513d3aea48137be418fb0603a50adbb10b277c654195", size = 12744 }, - { url = "https://files.pythonhosted.org/packages/a6/ab/7d27db51f524bdfd2714d1132d0105fb6fc35beff381ed72d2cace7ac4c7/pyobjc_framework_corelocation-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6ae6031dc633780b8ebdb50642891cd12221809a9da2314aa02949df108d8dee", size = 12880 }, - { url = "https://files.pythonhosted.org/packages/13/ba/1a5e6b2efe67bfcffe1b919173ce1a410df4e48b7a85fd451511ea587998/pyobjc_framework_corelocation-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2c5c0ad450f18a22e800f50c3884652fce408ab0011e4d6c04c3f379056541d2", size = 12730 }, - { url = "https://files.pythonhosted.org/packages/d5/5b/146f329a0fdb8f33b1eea712c40924f4ee39b8a3fef5e19d4a0bd044a8a3/pyobjc_framework_corelocation-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e182e340ceb24a3907afbd75745b0f50e25f3f85adc589f48521009c0ba9351c", size = 12876 }, -] - -[[package]] -name = "pyobjc-framework-corelocation" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/79/b75885e0d75397dc2fe1ed9ca80be2b64c18b817f5fb924277cb1bf7b163/pyobjc_framework_corelocation-12.1.tar.gz", hash = "sha256:3674e9353f949d91dde6230ad68f6d5748a7f0424751e08a2c09d06050d66231", size = 53511 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/1c/e515e91de901715d33f6da49c5b6dd588262f5471265feda27bb5586acce/pyobjc_framework_corelocation-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:833678750636976833d905a1575896167841394b77936074774b8921c94653e5", size = 12701 }, - { url = "https://files.pythonhosted.org/packages/34/ac/44b6cb414ce647da8328d0ed39f0a8b6eb54e72189ce9049678ce2cb04c3/pyobjc_framework_corelocation-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ffc96b9ba504b35fe3e0fcfb0153e68fdfca6fe71663d240829ceab2d7122588", size = 12700 }, - { url = "https://files.pythonhosted.org/packages/71/57/1b670890fbf650f1a00afe5ee897ea3856a4a1417c2304c633ee2e978ed0/pyobjc_framework_corelocation-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8c35ad29a062fea7d417fd8997a9309660ba7963f2847c004e670efbe6bb5b00", size = 12721 }, - { url = "https://files.pythonhosted.org/packages/9f/09/3da1947a5908d70461596eda5a0dc486ae807dc1c5a1ce2bf98567b474be/pyobjc_framework_corelocation-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:616eec0ccfcdcff7696bccf88c1aa39935387e595b22dd4c14842567aa0986a6", size = 12736 }, - { url = "https://files.pythonhosted.org/packages/5d/9a/e5e11ec90500ce2c809a46113d3ebd70dd4b4ce450072db9a85f86e9a30f/pyobjc_framework_corelocation-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0a80ba8e8d9120eb80486235c483a0c734cb451265e5aa81bcf315f0e644eb00", size = 12867 }, - { url = "https://files.pythonhosted.org/packages/38/ef/cd24f05a406c4f8478117f7bf54a9a7753b6485b3fc645a5d0530b1fa34b/pyobjc_framework_corelocation-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3ed12521c457e484944fd91b1d19643d00596d3b0ea3455984c9e918a9c65138", size = 12720 }, - { url = "https://files.pythonhosted.org/packages/72/f5/f08ea0a1eacc0e45260a4395412af2f501f93aa91c7efc0cadd39ee75717/pyobjc_framework_corelocation-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:43aa6d5c273c5efa0960dbb05ae7165948f12a889cb0fdcba2e0099d98f4c78d", size = 12862 }, -] - -[[package]] -name = "pyobjc-framework-coremedia" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/6d/ed4f8b525a0520e609cea57fd0677bf7792e168297ad5577df1088eb7cd6/pyobjc_framework_coremedia-12.0.tar.gz", hash = "sha256:d7f76d2eb2890be9f8836b95682e83fa7f158c92043958daa71845fbc4a01ba9", size = 89928 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/1c/4fe6fe50d25cd5ad87d0f0dcacda29e5975a3c88b647264fda98319813dd/pyobjc_framework_coremedia-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff7613a4f7eda92716351976d011d3e8ceda9bd4bba167c7ee1ff3cbc5925dab", size = 29507 }, - { url = "https://files.pythonhosted.org/packages/05/1c/5e5fe69b142c98b844803a0579cbd8ea555d1bfeecede95a918e58bdfb67/pyobjc_framework_coremedia-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed5684c764e1d4eab10cfd8dcaea82b598a85d7757cef35d36e6c78a4bd4b1e5", size = 29508 }, - { url = "https://files.pythonhosted.org/packages/ec/15/9853b2e75db0bf47a80412f9584a84966310e3168dabde8d43f2c6fa9ff1/pyobjc_framework_coremedia-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:06e824c97391cacacfe6be4b80acdcb6924a8087d03d9af35ea0edf502f2ada1", size = 29406 }, - { url = "https://files.pythonhosted.org/packages/eb/08/15d500b9325f8c22ed379dba21559dfa9c7430c9b7eb709a55e515648c8d/pyobjc_framework_coremedia-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4d10a8b551626ae99a67436de498fc06a0beaa66db065baed19d7dfc5f1db44f", size = 29425 }, - { url = "https://files.pythonhosted.org/packages/a9/98/ccf63a3a3aff8fce8be57b8ae1a67c9872e278a890c0508e86ed6bf98055/pyobjc_framework_coremedia-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370aece067a0fb85e54eed57c6ca84118a55e7ff697988e5c82358d1bd3b648a", size = 29486 }, - { url = "https://files.pythonhosted.org/packages/8f/fb/43b2a78ffdcb1eed7f04c317f9675d40dcd573f805d7385fec6c54005a2d/pyobjc_framework_coremedia-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0c89ca9d7cedd7b37178e358c83332933fcd65d82c362244aa208383724dce6f", size = 29462 }, - { url = "https://files.pythonhosted.org/packages/2f/2b/3cb4ba97483987b6dd9165e2da0f5e85f81044bd8fba26c409271dc2c880/pyobjc_framework_coremedia-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:aaa904d82f75f1e38a1ba8ba9a19a5acb3869304626b12fd6b60040a85188211", size = 29512 }, -] - -[[package]] -name = "pyobjc-framework-coremedia" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/da/7d/5ad600ff7aedfef8ba8f51b11d9aaacdf247b870bd14045d6e6f232e3df9/pyobjc_framework_coremedia-12.1.tar.gz", hash = "sha256:166c66a9c01e7a70103f3ca44c571431d124b9070612ef63a1511a4e6d9d84a7", size = 89566 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/35/9310566c24aad764b619057a5d583781f2e615388bcdeb28113b3a8b054f/pyobjc_framework_coremedia-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4fce8570db3eaa7b841456a7890b24546504d1059157dc33e700b14d9d3073d8", size = 29501 }, - { url = "https://files.pythonhosted.org/packages/c8/bc/e66de468b3777d8fece69279cf6d2af51d2263e9a1ccad21b90c35c74b1b/pyobjc_framework_coremedia-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ee7b822c9bb674b5b0a70bfb133410acae354e9241b6983f075395f3562f3c46", size = 29503 }, - { url = "https://files.pythonhosted.org/packages/c8/ae/f773cdc33c34a3f9ce6db829dbf72661b65c28ea9efaec8940364185b977/pyobjc_framework_coremedia-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:161a627f5c8cd30a5ebb935189f740e21e6cd94871a9afd463efdb5d51e255fa", size = 29396 }, - { url = "https://files.pythonhosted.org/packages/a5/ea/aee26a475b4af8ed4152d3c50b1b8955241b8e95ae789aa9ee296953bc6a/pyobjc_framework_coremedia-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:98e885b7a092083fceaef0a7fc406a01ba7bcd3318fb927e59e055931c99cac8", size = 29414 }, - { url = "https://files.pythonhosted.org/packages/db/9d/5ff10ee0ff539e125c96b8cff005457558766f942919814c968c3367cc32/pyobjc_framework_coremedia-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d2b84149c1b3e65ec9050a3e5b617e6c0b4cdad2ab622c2d8c5747a20f013e16", size = 29477 }, - { url = "https://files.pythonhosted.org/packages/08/e2/b890658face1290c8b6b6b53a1159c822bece248f883e42302548bef38da/pyobjc_framework_coremedia-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:737ec6e0b63414f42f7188030c85975d6d2124fbf6b15b52c99b6cc20250af4d", size = 29447 }, - { url = "https://files.pythonhosted.org/packages/a4/9e/16981d0ee04b182481ce1e497b5e0326bad6d698fe0265bb7db72b1b26b5/pyobjc_framework_coremedia-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6a9419e0d143df16a1562520a13a389417386e2a53031530af6da60c34058ced", size = 29500 }, -] - -[[package]] -name = "pyobjc-framework-coremediaio" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/54/4f/903bcf45358beda6efa5c926f66cb8ebe2b4345ea29e17b63c57bb828a28/pyobjc_framework_coremediaio-12.0.tar.gz", hash = "sha256:4067639c463df36831f12a5a87366700e68de054ea2624ee5695c660fe667551", size = 51467 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/bb/92ed72006e65084256dca93febc34f2a8b0adab08812559f5e07198b9af4/pyobjc_framework_coremediaio-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3343be917674cc2044cfb1a6397f82bdcef6290d84412199adc5d64708d939db", size = 17228 }, - { url = "https://files.pythonhosted.org/packages/b2/da/34a72c9dddb2651d3e2cf1c0c1d3c9981f721995d9ef6f8338a824c30a08/pyobjc_framework_coremediaio-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4c2dc9cc924927623c5688481106ad75a75c857f4444e37aaced614a69c2d52a", size = 17229 }, - { url = "https://files.pythonhosted.org/packages/1a/01/b486563d03379c7d98d43b93a318c9af8aaded9d7d0b7e4f2c3d9e35ce0d/pyobjc_framework_coremediaio-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:aa3e482ec13391f9f7a34529ee8b438ac241446bbfd81fbda48e46624beb1d39", size = 17285 }, - { url = "https://files.pythonhosted.org/packages/44/82/7d7c0dd5987eabea2ee48a00909446b9332627d296f9874c567dc3c4e8a1/pyobjc_framework_coremediaio-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:768a2ec70927f9c74d0aa209f0051d1e7ce61d976a0bac519b1e380540d0a421", size = 17254 }, - { url = "https://files.pythonhosted.org/packages/1b/1b/3859742412f7659b666112ac50cabc29cd6909597713fbcedf2549b38d08/pyobjc_framework_coremediaio-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c6a1baae9dcf1731b0da312b6137a063a309a0d63688ae3f40a4bb78fecd1ce4", size = 17580 }, - { url = "https://files.pythonhosted.org/packages/ef/84/144acef5ea102b8ad22a0078fbc3f8532b681ffc787cc46ecae192d0fc07/pyobjc_framework_coremediaio-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9af3c8e3523379ea7b50326cafada8ad7bf6d1881bd1e0f1ee1c0dbbbea057df", size = 17273 }, - { url = "https://files.pythonhosted.org/packages/bb/1d/f87c421a35d3a10e52967511707acec81c1a942c2789a2bf5e7f46e71121/pyobjc_framework_coremediaio-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8e751b5fcfb66ff80bba8d9eea0210513326d3aaec519369c1c7601121b47b87", size = 17570 }, -] - -[[package]] -name = "pyobjc-framework-coremediaio" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/08/8e/23baee53ccd6c011c965cff62eb55638b4088c3df27d2bf05004105d6190/pyobjc_framework_coremediaio-12.1.tar.gz", hash = "sha256:880b313b28f00b27775d630174d09e0b53d1cdbadb74216618c9dd5b3eb6806a", size = 51100 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/33/9ab6ac724ae14b464fa183cc92f15a426f0aed0ecc296836bf114e4fc4e7/pyobjc_framework_coremediaio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1a471e82fddeaa8a172d96dd897c3489f0a0ad8d5e5d2b46ae690e273c254cd0", size = 17219 }, - { url = "https://files.pythonhosted.org/packages/46/6c/88514f8938719f74aa13abb9fd5492499f1834391133809b4e125c3e7150/pyobjc_framework_coremediaio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3da79c5b9785c5ccc1f5982de61d4d0f1ba29717909eb6720734076ccdc0633c", size = 17218 }, - { url = "https://files.pythonhosted.org/packages/d4/0c/9425c53c9a8c26e468e065ba12ef076bab20197ff7c82052a6dddd46d42b/pyobjc_framework_coremediaio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1108f8a278928fbca465f95123ea4a56456bd6571c1dc8b91793e6c61d624517", size = 17277 }, - { url = "https://files.pythonhosted.org/packages/6d/d1/0267ec27841ee96458e6b669ce5b0c67d040ef3d5de90fa4e945ff989c48/pyobjc_framework_coremediaio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:85ae768294ec307d5b502c075aeae1c53a731afc2f7f0307c9bef785775e26a6", size = 17249 }, - { url = "https://files.pythonhosted.org/packages/ca/4e/bd0114aa052aaffc250b0c00567b42df8c7cb35517488c3238bcc964d016/pyobjc_framework_coremediaio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6136a600a1435b9e798427984088a7bd5e68778e1bcf48a23a0eb9bc946a06f0", size = 17573 }, - { url = "https://files.pythonhosted.org/packages/41/fd/cdf26be5b15ee2f2a73c320a62393e03ab15966ee8262540f918f0c7b181/pyobjc_framework_coremediaio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a5ca5763f185f48fedafec82f794dca53c55d2e52058d1b11baa43dd4ab0cd16", size = 17266 }, - { url = "https://files.pythonhosted.org/packages/18/75/be0bfb86497f98915c7d015e3c21d199a1be8780ed08c171832b27593eac/pyobjc_framework_coremediaio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8aaeb44fdf9382dda30ff5f53ba6e291c1b514b7ab651f7b31d7fb4c27bfd309", size = 17561 }, -] - -[[package]] -name = "pyobjc-framework-coremidi" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/e5/705bc151fd4ee430288aaffcbaa965747b4c49564c2e2dcfa44e1208a783/pyobjc_framework_coremidi-12.0.tar.gz", hash = "sha256:0021e76c795e98fe17cefb6eb5b9a312c573ac65e7e732569af0932e9bc4a8c9", size = 55918 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/22/dc/15894461c996f7cc483f9d0983b2763ce0681a6d06613c10f99f24974fad/pyobjc_framework_coremidi-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:64b28d02318d1acfc3d29b54014acebc8f31609bb20abd4afd2ff20652981f2b", size = 24291 }, - { url = "https://files.pythonhosted.org/packages/28/63/33a66b10725bf5599a5c656fc5295e9e03ced21474b5fe06854df6af4ce1/pyobjc_framework_coremidi-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a67befca6b6b90afb3b4517c647baa7ef0e091d0856bae7fea2594e90fcaf12a", size = 24296 }, - { url = "https://files.pythonhosted.org/packages/1f/dd/81ff166cdd0ec93af1090da2f166ac17abba9d56da456b9a442c4aefa01b/pyobjc_framework_coremidi-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:daca81f33444a8e7c910018826c53430ccad78270562bbe59ddbc9ec3a41b2f9", size = 24318 }, - { url = "https://files.pythonhosted.org/packages/90/95/700498d0ce9f88a50ea5b0bf3be7d5dac6741f5003ac7f005306131c959e/pyobjc_framework_coremidi-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:731f8c5fd37d3c8117dfd27688d0cef70716f188ed763570532df3e74ce62b17", size = 24347 }, - { url = "https://files.pythonhosted.org/packages/28/64/3e8eca8b1ea58e7adbb1a1e5a4e3532137920eb5b8257e362eee39718cea/pyobjc_framework_coremidi-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:78acecbfb811050a6bb41f77b23c037c1cbefd3df7aacb20caf1048b7065219e", size = 24502 }, - { url = "https://files.pythonhosted.org/packages/84/55/0f21117eb6410865171f6407b824128206f2fd3a428c4b509fce4571c136/pyobjc_framework_coremidi-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:dd2f6ad40d5a39005aa4f0475e07002f4231f212a95b1f69ae10c81a39593563", size = 24384 }, - { url = "https://files.pythonhosted.org/packages/62/89/6760795cc834055fce7c00d988fdf421c13e13e665979fd1f173e3187d79/pyobjc_framework_coremidi-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:05752f8d2739fdbc410f30c06689c321650d6238514faf47f84ef3d9ebc8556c", size = 24546 }, -] - -[[package]] -name = "pyobjc-framework-coremidi" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/75/96/2d583060a71a73c8a7e6d92f2a02675621b63c1f489f2639e020fae34792/pyobjc_framework_coremidi-12.1.tar.gz", hash = "sha256:3c6f1fd03997c3b0f20ab8545126b1ce5f0cddcc1587dffacad876c161da8c54", size = 55587 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/77/36f4a45832c17bbc676dfec19215ae741c2f3a5083134159e39834993aa6/pyobjc_framework_coremidi-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bcbe70bdd5f79999d028aee7a8b34e72ff955547c7d277357c4d67afd8a23024", size = 24284 }, - { url = "https://files.pythonhosted.org/packages/76/d5/49b8720ec86f64e3dc3c804bd7e16fabb2a234a9a8b1b6753332ed343b4e/pyobjc_framework_coremidi-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:af3cdf195e8d5e30d1203889cc4107bebc6eb901aaa81bf3faf15e9ffaca0735", size = 24282 }, - { url = "https://files.pythonhosted.org/packages/e3/2d/99520f6f1685e4cad816e55cbf6d85f8ce6ea908107950e2d37dc17219d8/pyobjc_framework_coremidi-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e84ffc1de59691c04201b0872e184fe55b5589f3a14876bd14460f3b5f3cd109", size = 24317 }, - { url = "https://files.pythonhosted.org/packages/a9/2a/093ec8366d5f9e6c45e750310121ea572b8696518c51c4bbcf1623c01cf1/pyobjc_framework_coremidi-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:69720f38cfeea4299f31cb3e15d07e5d43e55127605f95e001794c7850c1c637", size = 24333 }, - { url = "https://files.pythonhosted.org/packages/0e/cf/f03a0b44d1cfcfa9837cdfd6385c1e7d1e42301076d376329a44b6cbec03/pyobjc_framework_coremidi-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:06e5bce0a28bac21f09bcfedda46d93b2152c138764380314d99f2370a8c00f2", size = 24493 }, - { url = "https://files.pythonhosted.org/packages/29/4d/7d8d6ee42a2c6ebc89fb78fa6a2924de255f76ba7907656c26cc5847fc92/pyobjc_framework_coremidi-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b49442cf533923952f56049be407edbe2ab2ece04ae1c94ca1e28d500f9f5754", size = 24371 }, - { url = "https://files.pythonhosted.org/packages/6c/e5/56239a9e05fe62ad7cf00844c9a89db249281dc6b72238dfdcaa783896b0/pyobjc_framework_coremidi-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:194bc4da148ace8b71117c227562cad39a2708d296f569839f56d83e8801b25b", size = 24536 }, -] - -[[package]] -name = "pyobjc-framework-coreml" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0c/a0/875b5174794c984df60944be54df0282945f8bae4a606fbafa0c6b717ddd/pyobjc_framework_coreml-12.0.tar.gz", hash = "sha256:e1d7a9812886150881c86000fba885cb15201352c75fb286bd9e3a1819b5a4d5", size = 40814 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/0a/1e7c0ef7cc2e9ac2df53df1ef78cb0e4db12903d5ded536daf59776723ff/pyobjc_framework_coreml-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764c33bae9a4599c8a07119765ae80d8067a883714fa9f2f83052460d4daa8f8", size = 11345 }, - { url = "https://files.pythonhosted.org/packages/aa/3e/00e55a82f71da860b784ab19f06927af2e2f0e705ce57529239005b5cd7a/pyobjc_framework_coreml-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:410fa327fc5ba347ac6168c3f7a188f36c1c6966bef6b46f12543e8c4c9c26d9", size = 11344 }, - { url = "https://files.pythonhosted.org/packages/09/86/b13dc7bed8ea3261d827be31d5239dbd234ca11fc4050f0a5a0dcbff97b9/pyobjc_framework_coreml-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:901a6343aabd1c1e8f2904abb35fe32d4335783ddec9be96279668b53ac0f4f9", size = 11366 }, - { url = "https://files.pythonhosted.org/packages/57/41/b532645812eed1fab1e1d296d972ff62c4a21ccb6f134784070b94b16a27/pyobjc_framework_coreml-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:67b69e035559cc04915c8463c7942b1b2ca0016f0c3044f16558730f4b69782e", size = 11386 }, - { url = "https://files.pythonhosted.org/packages/a8/df/5f250afd2e1a844956327d50200f3721a7c9b21d21b33a490512a54282b1/pyobjc_framework_coreml-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:75cf48d7555ec88dff51de1a5c471976fe601edc0a184ece79c2bcce976cd06a", size = 11613 }, - { url = "https://files.pythonhosted.org/packages/b2/a8/d7d45503e569658375465242118092934fd33a9325f71583fdcbbc109cdb/pyobjc_framework_coreml-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5c6ebfa62e62b154ea6aa3079578bf6cf22130137024e8ea316eb8fcde1c22ae", size = 11426 }, - { url = "https://files.pythonhosted.org/packages/08/93/30ab85521034cf65b9914a6e419e25ca8c55b43a5f4c69ee2a03c001b765/pyobjc_framework_coreml-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1e481ff8195721557eb357af8080c0ad77727d3fb6744a1bfa371a2a2b0603eb", size = 11609 }, -] - -[[package]] -name = "pyobjc-framework-coreml" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/30/2d/baa9ea02cbb1c200683cb7273b69b4bee5070e86f2060b77e6a27c2a9d7e/pyobjc_framework_coreml-12.1.tar.gz", hash = "sha256:0d1a4216891a18775c9e0170d908714c18e4f53f9dc79fb0f5263b2aa81609ba", size = 40465 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/47/f6/e8afa7143d541f6f0b9ac4b3820098a1b872bceba9210ae1bf4b5b4d445d/pyobjc_framework_coreml-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df4e9b4f97063148cc481f72e2fbe3cc53b9464d722752aa658d7c0aec9f02fd", size = 11334 }, - { url = "https://files.pythonhosted.org/packages/34/0f/f55369da4a33cfe1db38a3512aac4487602783d3a1d572d2c8c4ccce6abc/pyobjc_framework_coreml-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:16dafcfb123f022e62f47a590a7eccf7d0cb5957a77fd5f062b5ee751cb5a423", size = 11331 }, - { url = "https://files.pythonhosted.org/packages/bb/39/4defef0deb25c5d7e3b7826d301e71ac5b54ef901b7dac4db1adc00f172d/pyobjc_framework_coreml-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:10dc8e8db53d7631ebc712cad146e3a9a9a443f4e1a037e844149a24c3c42669", size = 11356 }, - { url = "https://files.pythonhosted.org/packages/ae/3f/3749964aa3583f8c30d9996f0d15541120b78d307bb3070f5e47154ef38d/pyobjc_framework_coreml-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:48fa3bb4a03fa23e0e36c93936dca2969598e4102f4b441e1663f535fc99cd31", size = 11371 }, - { url = "https://files.pythonhosted.org/packages/9c/c8/cf20ea91ae33f05f3b92dec648c6f44a65f86d1a64c1d6375c95b85ccb7c/pyobjc_framework_coreml-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:71de5b37e6a017e3ed16645c5d6533138f24708da5b56c35c818ae49d0253ee1", size = 11600 }, - { url = "https://files.pythonhosted.org/packages/bc/5c/510ae8e3663238d32e653ed6a09ac65611dd045a7241f12633c1ab48bb9b/pyobjc_framework_coreml-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a04a96e512ecf6999aa9e1f60ad5635cb9d1cd839be470341d8d1541797baef6", size = 11418 }, - { url = "https://files.pythonhosted.org/packages/d3/1a/b7367819381b07c440fa5797d2b0487e31f09aa72079a693ceab6875fa0a/pyobjc_framework_coreml-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7762b3dd2de01565b7cf3049ce1e4c27341ba179d97016b0b7607448e1c39865", size = 11593 }, -] - -[[package]] -name = "pyobjc-framework-coremotion" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/85/15/d4bff65f1817a4be08c8dc572e40afb561394f6b98833cc1bd0799939fe4/pyobjc_framework_coremotion-12.0.tar.gz", hash = "sha256:7db1f7a5d1a29c631e000bdcf3500af9cc9d51eb140326ab8dc4aea0f4ea358a", size = 34231 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/32/fc81f194c3f29f7247334b8846193c6259e4821dc164177ae7456a51d3e9/pyobjc_framework_coremotion-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4a88ae1559087c2794ce6df9fb518e53d72f93a672888a0b9c3bd783859a0590", size = 10397 }, - { url = "https://files.pythonhosted.org/packages/8f/82/377885eb18ef3da482cfc35b7c0b45494669d320e00d3ff568dd9110e7f4/pyobjc_framework_coremotion-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d88f0733f9038741d77bceb920989e36f93c594b66b7f227afeca58d863b561", size = 10392 }, - { url = "https://files.pythonhosted.org/packages/64/c3/3b8857e6b8dbc40bdb1f8943d5b2e76c6cd212fe9133b9936b19ac243894/pyobjc_framework_coremotion-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:70e573b9f12d1817e56696c681b6a1146bb417934fa680ca309a29f6fb337129", size = 10410 }, - { url = "https://files.pythonhosted.org/packages/b5/21/2238b5d8c092140f305bdaa41e1876950bb00664c06dfc6cef66123fa418/pyobjc_framework_coremotion-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fbfa46a5a81d7e1aa424011b56c6153b4e83ed34a81aab98f4432aeda469f4f0", size = 10428 }, - { url = "https://files.pythonhosted.org/packages/4a/c3/2a3288ef1762ec800b1cb6beac0a45604d23eb1b4932a9294417b0f04769/pyobjc_framework_coremotion-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0c8675abf26b6a647b3a085cceb35fde938f07068085b3f9ea029f08cb4fa86c", size = 10570 }, - { url = "https://files.pythonhosted.org/packages/0f/0d/abe75b17ddfbeb439d15e7c0f1cf6b5154520abdc95b286d613412d472eb/pyobjc_framework_coremotion-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:db0fa44ed782c3d5e76cb87bd2dc3a5c04cc0a8675520f0ed8a05b2aceab5d20", size = 10496 }, - { url = "https://files.pythonhosted.org/packages/e0/a0/4c2fdc40a6a3aa19fb624b9128851d6faf2b62bf226a534e94496af138a2/pyobjc_framework_coremotion-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2896ac44348c19d5e86f7892b5e843efaa7dd2dabba0527e9030bc482e1f11d8", size = 10641 }, -] - -[[package]] -name = "pyobjc-framework-coremotion" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2c/eb/abef7d405670cf9c844befc2330a46ee59f6ff7bac6f199bf249561a2ca6/pyobjc_framework_coremotion-12.1.tar.gz", hash = "sha256:8e1b094d34084cc8cf07bedc0630b4ee7f32b0215011f79c9e3cd09d205a27c7", size = 33851 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/38/bc/48ca9905725779de71543522d96e2e265f486df3fd5eecfabfee775e554c/pyobjc_framework_coremotion-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0da3c3e82744cf555537d65ad796e9ad2687d26aeb458078c74896496538eace", size = 10384 }, - { url = "https://files.pythonhosted.org/packages/77/fd/0d24796779e4d8187abbce5d06cfd7614496d57a68081c5ff1e978b398f9/pyobjc_framework_coremotion-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed8cb67927985d97b1dd23ab6a4a1b716fc7c409c35349816108781efdcbb5b6", size = 10382 }, - { url = "https://files.pythonhosted.org/packages/bc/75/89fa4aab818aeca21ac0a60b7ceb89a9e685df0ddd3828d36a6f84a0cff0/pyobjc_framework_coremotion-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a77908ab83c422030f913a2a761d196359ab47f6d1e7c76f21de2c6c05ea2f5f", size = 10406 }, - { url = "https://files.pythonhosted.org/packages/4d/dd/9a4cc56c55f7ffece2e100664503cb27b4f4265d57656d050a3af1c71d94/pyobjc_framework_coremotion-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b7b0d47b5889ca0b6e3a687bd1f83a13d3bb59c07a1c4c37dcca380ede5d6e81", size = 10423 }, - { url = "https://files.pythonhosted.org/packages/0d/4d/660b47e9e0bc10ae87f85bede39e3f922b8382e0f6ac273058183d0bdc2f/pyobjc_framework_coremotion-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:531ea82945266d78e23d1f35de0cae2391e18677ed54120b90a4b9dd19f32596", size = 10570 }, - { url = "https://files.pythonhosted.org/packages/21/b0/a1809fc3eea18db15d20bd2225f4d5e1cfc74f38b252e0cb1e3f2563bcfa/pyobjc_framework_coremotion-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e7ce95dfa7e33b5762e0a800d76ef9c6a34b827c700d7e80c3740b7cd05168a5", size = 10484 }, - { url = "https://files.pythonhosted.org/packages/1c/c4/167729d032e27985d1a6ba5e60c8045c43b9392624e8c605a24f2e22cf14/pyobjc_framework_coremotion-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d0aedcf8157c1428c7d2df8edae159b9de226d4df719c5bac8a96b648950b63e", size = 10629 }, -] - -[[package]] -name = "pyobjc-framework-coreservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-fsevents", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d6/8e/e9ad1d201482036d528a9d9f18459706013f8e0f44a61b029d3164167584/pyobjc_framework_coreservices-12.0.tar.gz", hash = "sha256:36e0cb684d20c2ace81fde9829fd972a69463c51800fc1102a28118bfb804a0b", size = 366603 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/93/a1acb1c910b6efc48b5165fdaa53cc8b2abd963e41ce3ab6dc9acff5a2ad/pyobjc_framework_coreservices-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:44c9140dfb6b2040805a51b8bcabe1ffa2b569bb7f60f46f5e77666e29aedfce", size = 30209 }, - { url = "https://files.pythonhosted.org/packages/ad/77/01a822a4f287a161a434e09d4abafcefd112f70f44193fdd1c85fac9a835/pyobjc_framework_coreservices-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:323c6facd66684c71b5df1cd911f4fe3a468218e83ed14c21be4e7f6c787e9a6", size = 30204 }, - { url = "https://files.pythonhosted.org/packages/06/4d/3c6f173c3f7a70f372936e26d14efbfd8300f12f8234f2d49566115e470a/pyobjc_framework_coreservices-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4ad1642efdaca73d607d4910f0cfd2137e1c54ac0d0fa183bb4a0db91ffd164d", size = 30214 }, - { url = "https://files.pythonhosted.org/packages/18/89/e0a0799f1a4a55b837c944d755e66e11bf501126567871de1e8b7cf645ee/pyobjc_framework_coreservices-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ad53b603762138ad88faec98fb27019ffb9083fce410b41225d8b41940e696d7", size = 30232 }, - { url = "https://files.pythonhosted.org/packages/28/7f/db3b852ad49329e291ebbd8013de787ac2680eac1c7c5df80134d4ffe81d/pyobjc_framework_coreservices-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7f630bbdd99e3f980b5b256357097a54fc17acab442e6c16d76504d95d9adf0b", size = 30238 }, - { url = "https://files.pythonhosted.org/packages/d7/4a/77310cb6e38ee2d7163ed962434c5ed528cb864b31e73020ded04f40c31c/pyobjc_framework_coreservices-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ee52df5f5dbf5a8b207e6c2319babe2766c4458fb3709b0d5e537a6394ff2c1b", size = 30264 }, - { url = "https://files.pythonhosted.org/packages/81/68/f0b673b73368561a09e14e049f6d78ea595813af55d119fdf35c70432014/pyobjc_framework_coreservices-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6f745ced27f61b729042138db04601104b51d5569029595e801e0c27e0fde960", size = 30273 }, -] - -[[package]] -name = "pyobjc-framework-coreservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-fsevents", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4c/b3/52338a3ff41713f7d7bccaf63bef4ba4a8f2ce0c7eaff39a3629d022a79a/pyobjc_framework_coreservices-12.1.tar.gz", hash = "sha256:fc6a9f18fc6da64c166fe95f2defeb7ac8a9836b3b03bb6a891d36035260dbaa", size = 366150 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/b0/a4e97059aba12d0940cfac08f440c061e1b9e9df8da7a38d5aafdb6fd7b5/pyobjc_framework_coreservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:38856a89ccab766a03270c415a6bf5ea0f87134134fe4c122af9894d50162d77", size = 30195 }, - { url = "https://files.pythonhosted.org/packages/55/56/c905deb5ab6f7f758faac3f2cbc6f62fde89f8364837b626801bba0975c3/pyobjc_framework_coreservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b6ef07bcf99e941395491f1efcf46e99e5fb83eb6bfa12ae5371135d83f731e1", size = 30196 }, - { url = "https://files.pythonhosted.org/packages/61/6c/33984caaf497fc5a6f86350d7ca4fac8abeb2bc33203edc96955a21e8c05/pyobjc_framework_coreservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8751dc2edcb7cfa248bf8a274c4d6493e8d53ef28a843827a4fc9a0a8b04b8be", size = 30206 }, - { url = "https://files.pythonhosted.org/packages/a7/6f/4a6eb2f2bbdbf66a1b35f272d8504ce6f098947f9343df474f0d15a2b507/pyobjc_framework_coreservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:96574fb24d2b8b507901ef7be7fcb70b7f49e110bd050a411b90874cc18c7c7b", size = 30226 }, - { url = "https://files.pythonhosted.org/packages/60/6e/78a831834dc7f84a2d61efb47d212239f3ae3d16aa5512f1265a8f6c0162/pyobjc_framework_coreservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:227fb4144a87c6c97a5f737fb0c666293b33e54f0ffb500f2c420da6c110ba2d", size = 30229 }, - { url = "https://files.pythonhosted.org/packages/d8/b6/c4100905d92f1187f74701ab520da95a235c09e94a71e5872462660ac022/pyobjc_framework_coreservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c650e1083fb313b9c8df4be8d582c266aa1b99c75ed5d7e45e3a91a7b8a128b2", size = 30255 }, - { url = "https://files.pythonhosted.org/packages/d2/79/df730603028dbd34aa61dbe0396cc23715520195726686bb5e5832429f56/pyobjc_framework_coreservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:dff0cb6ccbd39ea45b01a50955d757172567de5c164f6e8e241bf4e7639b0946", size = 30269 }, -] - -[[package]] -name = "pyobjc-framework-corespotlight" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/7e/6f7cd71fb6795eba72a5886b3de8a3ec2c3ae6f1696340d6e51076d48eaf/pyobjc_framework_corespotlight-12.0.tar.gz", hash = "sha256:440181b5bb177ed76cea6e5d65ed39814b04f51bcfa02fba1b58fb5dc30d17c9", size = 38429 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/26/b155b2ffe2ba521f0d9825a2320ee09f485eae05f8ddf6c38aa928917222/pyobjc_framework_corespotlight-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dcee0f0086a0006209fae93a3800e1fdf24169e31eb2c4de7e13bbc88990f613", size = 9983 }, - { url = "https://files.pythonhosted.org/packages/fe/fb/9a85e9c52b8fe75446f99faf9093555aa0198666051c9ddfb41a66fab6f8/pyobjc_framework_corespotlight-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1f5e2b003bd6bd6ece11f2d7366f11eef39decd79b2fcc4ef4624cce340a32b6", size = 9988 }, - { url = "https://files.pythonhosted.org/packages/b3/f1/1b972471d0e3587cb25567a260c46d3a1f631549a60b2616f8d39b2f9bf5/pyobjc_framework_corespotlight-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ec1868b8387759668dfcb5dabe4a4458da8ee1da00b3c52388d80d1591fb7bd", size = 10005 }, - { url = "https://files.pythonhosted.org/packages/f0/73/50db0cb816a1d47a77dfc998e1ba0e4159090438f465b96ecc10445183bf/pyobjc_framework_corespotlight-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7fb8b38bd6413b3fdcba4e5c710165835c84d0ea69800c5e8d5c8244286f9007", size = 10021 }, - { url = "https://files.pythonhosted.org/packages/cf/d3/8e7e39111978edea5e3061b007e1cb1f199a019e0877d0d1dc37cffcdc14/pyobjc_framework_corespotlight-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:243e6d8b667402cd19dd9ec5402d33d5d761601d0c3ceea6de5b2e492f643d2c", size = 10163 }, - { url = "https://files.pythonhosted.org/packages/2e/de/0eabeb3ec532658ac0b13c4802802555d09fed23a47ae9243cda9142d556/pyobjc_framework_corespotlight-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9d63fa40c2fee8de6ae6aa687d6110cd9b2faeeb0459930e5a73add0fe3dc2b3", size = 10081 }, - { url = "https://files.pythonhosted.org/packages/cd/94/a9d0e3fa2b2fdde4df51fb5047ad91f89224f1b2499bcb23c7e70725caa5/pyobjc_framework_corespotlight-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3c9e2a61a5bf6399fae62c3f0cf3ac2f024752b5153aa47844cdbdfbafc63cac", size = 10219 }, -] - -[[package]] -name = "pyobjc-framework-corespotlight" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/99/d0/88ca73b0cf23847af463334989dd8f98e44f801b811e7e1d8a5627ec20b4/pyobjc_framework_corespotlight-12.1.tar.gz", hash = "sha256:57add47380cd0bbb9793f50a4a4b435a90d4ebd2a33698e058cb353ddfb0d068", size = 38002 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/e1/d9efae11e4fde82c38a747b48c72b00cfeefe1f7f2aa7bc7b60ffdeac6be/pyobjc_framework_corespotlight-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9299ebabe2031433c384aec52074c52f6258435152d3bdbbed0ed68e37ad1f45", size = 9977 }, - { url = "https://files.pythonhosted.org/packages/d4/37/1e7bacb9307a8df52234923e054b7303783e7a48a4637d44ce390b015921/pyobjc_framework_corespotlight-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:404a1e362fe19f0dff477edc1665d8ad90aada928246802da777399f7c06b22e", size = 9976 }, - { url = "https://files.pythonhosted.org/packages/f6/3b/d3031eddff8029859de6d92b1f741625b1c233748889141a6a5a89b96f0e/pyobjc_framework_corespotlight-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bfcea64ab3250e2886d202b8731be3817b5ac0c8c9f43e77d0d5a0b6602e71a7", size = 9996 }, - { url = "https://files.pythonhosted.org/packages/7b/ed/419ae27bdd17701404301ede1969daadeef6ef6dd8b4a8110a90a1d77df1/pyobjc_framework_corespotlight-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:37003bfea415ff21859d44403c3a13ac55f90b6dca92c69b81b61d96cee0c7be", size = 10012 }, - { url = "https://files.pythonhosted.org/packages/a8/84/ebe1acb365958604465f83710772c1a08854f472896e607f7eedb5944e1b/pyobjc_framework_corespotlight-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ede26027cfa577e6748b7dd0615e8a1bb379e48ad2324489b2c8d242cdf6fce8", size = 10152 }, - { url = "https://files.pythonhosted.org/packages/21/cf/11cafe42bc7209bd96d71323beb60d6d1cdb069eb651f120323b3ef9c8d4/pyobjc_framework_corespotlight-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:986ac40755e15aa3a562aac687b22c882de2b4b0fa58fbd419cc3487a0df1507", size = 10069 }, - { url = "https://files.pythonhosted.org/packages/10/95/a64f847413834ced69c29d63b60aeb084174d81d57f748475be03fbfcdc2/pyobjc_framework_corespotlight-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0041b9a10d7f6c4a8d05f2ed281194a3d8bc5b2d0ceca4f4a9d9a8ce064fd68e", size = 10215 }, -] - -[[package]] -name = "pyobjc-framework-coretext" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/36/32ec183e555b73152d7813f6f7c277fd018440f70a1f142bd75b04946089/pyobjc_framework_coretext-12.0.tar.gz", hash = "sha256:8cc0c7dd2b7e68ad1c760784e422722550c77cbdbd60eb455170ec444ca1cfd2", size = 90546 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/65/9638497f1e3df02c22317f4769e04c1e9adda99b08a6b5b00da35e0bb3b0/pyobjc_framework_coretext-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3cb1c1068f68f1119306c5e9df84c70cbaedd259446c9602093b5ae96ac543cb", size = 29997 }, - { url = "https://files.pythonhosted.org/packages/31/b2/55fd3dce67223e799d862a62f2b8228836e3921dbf58a2fba939ecf605e1/pyobjc_framework_coretext-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:681b6276e1b14b79a8de2ba25dd2406fa88b147a55775e19bf0a2dd32f23c143", size = 30001 }, - { url = "https://files.pythonhosted.org/packages/40/7e/146d609f67784b184f9d0d178d57be4f9e0542ea73201c2f0d5a6d4341b2/pyobjc_framework_coretext-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a17dfb9366ce16be7da3d42c14e67bcd230a90cafada2249110e237e8ce1d114", size = 30118 }, - { url = "https://files.pythonhosted.org/packages/30/64/31da2b1236c710b963510fc03008ebe607d03e2c0288467db9bf9f297873/pyobjc_framework_coretext-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ecd424cf6da1a69cad40ef4007bc5af842ccb7456c5fcc4c9aded40e3e0c22ba", size = 30119 }, - { url = "https://files.pythonhosted.org/packages/21/1d/d23fa47ffb6ad32e26a58e357619b5564b4f6e421a839d12961cce521c8f/pyobjc_framework_coretext-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:60e84e46e0aeb12101a4354c39ce84066107773b0c96fdc4ff15fd1662dc88d8", size = 30702 }, - { url = "https://files.pythonhosted.org/packages/07/e4/96caefd91817d0f82aaae089e4421cbbef2a216933b5c98435ee2927fbef/pyobjc_framework_coretext-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6ecf89af6de87072f1615fb89d7ed51b345000850a9b827774f262bf6be5acac", size = 30104 }, - { url = "https://files.pythonhosted.org/packages/e5/b5/9152c1a2d8a6fb06d48a36d95b5bb919e820a2f623ca8313ab5eba263be0/pyobjc_framework_coretext-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ddc34c91d16a653db81963141d29f8fc82550fc7a39ed39ff0332764d844ffe1", size = 30714 }, -] - -[[package]] -name = "pyobjc-framework-coretext" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/29/da/682c9c92a39f713bd3c56e7375fa8f1b10ad558ecb075258ab6f1cdd4a6d/pyobjc_framework_coretext-12.1.tar.gz", hash = "sha256:e0adb717738fae395dc645c9e8a10bb5f6a4277e73cba8fa2a57f3b518e71da5", size = 90124 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/1c/ddecc72a672d681476c668bcedcfb8ade16383c028eac566ac7458fb91ef/pyobjc_framework_coretext-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1c8315dcef6699c2953461d97117fe81402f7c29cff36d2950dacce028a362fd", size = 29987 }, - { url = "https://files.pythonhosted.org/packages/f0/81/7b8efc41e743adfa2d74b92dec263c91bcebfb188d2a8f5eea1886a195ff/pyobjc_framework_coretext-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f6742ba5b0bb7629c345e99eff928fbfd9e9d3d667421ac1a2a43bdb7ba9833", size = 29990 }, - { url = "https://files.pythonhosted.org/packages/cd/0f/ddf45bf0e3ba4fbdc7772de4728fd97ffc34a0b5a15e1ab1115b202fe4ae/pyobjc_framework_coretext-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d246fa654bdbf43bae3969887d58f0b336c29b795ad55a54eb76397d0e62b93c", size = 30108 }, - { url = "https://files.pythonhosted.org/packages/20/a2/a3974e3e807c68e23a9d7db66fc38ac54f7ecd2b7a9237042006699a76e1/pyobjc_framework_coretext-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7cbb2c28580e6704ce10b9a991ccd9563a22b3a75f67c36cf612544bd8b21b5f", size = 30110 }, - { url = "https://files.pythonhosted.org/packages/0f/5d/85e059349e9cfbd57269a1f11f56747b3ff5799a3bcbd95485f363c623d8/pyobjc_framework_coretext-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:14100d1e39efb30f57869671fb6fce8d668f80c82e25e7930fb364866e5c0dab", size = 30697 }, - { url = "https://files.pythonhosted.org/packages/ef/c3/adf9d306e9ead108167ab7a974ab7d171dbacf31c72fad63e12585f58023/pyobjc_framework_coretext-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:782a1a9617ea267c05226e9cd81a8dec529969a607fe1e037541ee1feb9524e9", size = 30095 }, - { url = "https://files.pythonhosted.org/packages/bd/ca/6321295f47a47b0fca7de7e751ddc0ddc360413f4e506335fe9b0f0fb085/pyobjc_framework_coretext-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7afe379c5a870fa3e66e6f65231c3c1732d9ccd2cd2a4904b2cd5178c9e3c562", size = 30702 }, -] - -[[package]] -name = "pyobjc-framework-corewlan" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ac/06/ed26dab70dce1e2137e08cd18beca9313bccb2cc357bcbf5764c776b85ff/pyobjc_framework_corewlan-12.0.tar.gz", hash = "sha256:a724959e0b9b0fcc7b698b7c0a6e8457b82828c3a88385c9ac8c758791aed15a", size = 32760 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/68/d7b2c1837f63dedc98180885b986c8f307ac517302dff4b980476b1e9a53/pyobjc_framework_corewlan-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d92bb5493030a273ff8790edefd0382b65a8e837b0a1901215a78627058c9057", size = 9947 }, - { url = "https://files.pythonhosted.org/packages/19/9b/24bbc483ea6471d3d9321f3e768cd5399c5d41ab7a700a81114b120bd89d/pyobjc_framework_corewlan-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d9180f71c2169c8530c3592b5ab8809fbc93ed1d3526e26443fe927784aad259", size = 9942 }, - { url = "https://files.pythonhosted.org/packages/d4/13/50e3c6fee0ae19d502ae9c42cee3da28a7b86a476abe59082f9403e43ef8/pyobjc_framework_corewlan-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82bbe5e172d99d47070cc4ad9715306df789fe97031da0af3b25f084f8e47586", size = 9964 }, - { url = "https://files.pythonhosted.org/packages/0a/1c/f4bcb0c6cdf1cc5184f266aecf814ca60e4acbb3b65bfa9395d39fb0f425/pyobjc_framework_corewlan-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1bf43f273f5bce60dd60c98739bd5877581f04027774018549d8ffd81a3f93ea", size = 9974 }, - { url = "https://files.pythonhosted.org/packages/ac/9f/53e0886d9fe5de867cf77c0e0c6f90b8b40058375c3bf3770fe878e5aae9/pyobjc_framework_corewlan-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7f2c0d38dc39877365185dd748c5e61ae5c418dec5b2683cebedd653d1a333e6", size = 10124 }, - { url = "https://files.pythonhosted.org/packages/b7/b1/7043bab71e3f917711ba4da5f7ac8a248fe6a6f56dfaacf12f739de097a4/pyobjc_framework_corewlan-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e8675a8aa5906d22cfd6ccc834344ddfd6527a362c0c140e4659f349a59c9915", size = 10016 }, - { url = "https://files.pythonhosted.org/packages/39/4b/7f4c8d26b7c9f1389ee075f44f123b5354046dc2b8f884b6ecf66a734128/pyobjc_framework_corewlan-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:85958c9e61c6894ff6f039b771f5b01a9f53a8ad4d930504bfe1c1c2dfdef1e9", size = 10177 }, -] - -[[package]] -name = "pyobjc-framework-corewlan" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/88/71/739a5d023566b506b3fd3d2412983faa95a8c16226c0dcd0f67a9294a342/pyobjc_framework_corewlan-12.1.tar.gz", hash = "sha256:a9d82ec71ef61f37e1d611caf51a4203f3dbd8caf827e98128a1afaa0fd2feb5", size = 32417 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/cb/97f07239a9e2dacc8b8db56be765527361963fb2582f531a28a0706c0e84/pyobjc_framework_corewlan-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:440db62f4ecc0c3b636fa06928d51f147b58c4cb000c0ba2dfc820ad484c2358", size = 9936 }, - { url = "https://files.pythonhosted.org/packages/f5/74/4d8a52b930a276f6f9b4f3b1e07cd518cb6d923cb512e39c935e3adb0b86/pyobjc_framework_corewlan-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3e3f2614eb37dfd6860d6a0683877c2f3b909758ef78b68e5f6b7ea9c858cc51", size = 9931 }, - { url = "https://files.pythonhosted.org/packages/4e/31/3e9cf2c0ac3c979062958eae7a275b602515c9c76fd30680e1ee0fea82ae/pyobjc_framework_corewlan-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5cba04c0550fc777767cd3a5471e4ed837406ab182d7d5c273bc5ce6ea237bfe", size = 9958 }, - { url = "https://files.pythonhosted.org/packages/c0/a4/b691e4d1730c16f8ea2f883712054961a3e45f40e1471c0edfc30f061c07/pyobjc_framework_corewlan-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aac949646953effdd36d2d21bc0ab645e58bb25deafe86c6e600b3cdcfc2228b", size = 9968 }, - { url = "https://files.pythonhosted.org/packages/88/2e/dbba1674e1629839f479c9d14b90c37ed3b5f76d3b6b3ad56af48951c45b/pyobjc_framework_corewlan-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dae63c36affcc933c9161980e4fe7333e0c59c968174a00a75cb5f6e4ede10c6", size = 10115 }, - { url = "https://files.pythonhosted.org/packages/e8/e2/e89ea1ee92de17ec53087868d0466f6fd8174488b613a46528a3642aa41d/pyobjc_framework_corewlan-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:336536ecfd503118f79c8337cc983bbf0768e3ba4ac142e0cf8db1408c644965", size = 10010 }, - { url = "https://files.pythonhosted.org/packages/15/df/e695f432dbfcd0fbfa416db21471091e94e921094a795b87cb9ebea423e5/pyobjc_framework_corewlan-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fe6373e83e12be6854f7c1f054e2f68b41847fd739aa578d3c5478bd3fd4014f", size = 10162 }, -] - -[[package]] -name = "pyobjc-framework-cryptotokenkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/43/4b/31141f2f8ba250d1de21895984b179ca2307870a5c00e97f0ad34227303c/pyobjc_framework_cryptotokenkit-12.0.tar.gz", hash = "sha256:3b6aa22c584a5e330be6c85ca588798686c7eb3e25f06e069c12e82eacb36c38", size = 33086 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/ff/2a4fe2a79c4ff288e1b37549248df940860b65dcec05cf8aac62d1f14dfd/pyobjc_framework_cryptotokenkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2b45777ff5f2b812435096d7628093257c57a60a62047c144a66213f39f6cf61", size = 12607 }, - { url = "https://files.pythonhosted.org/packages/2a/5e/488baba13dc3dc3b66ff009e492436f81c4282e038070950ac7c46f3d9e1/pyobjc_framework_cryptotokenkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bacf606c2a322fa3d7d9bfc0a9ae653a85450308073ff19d3e09b3c6b4bd1c2a", size = 12605 }, - { url = "https://files.pythonhosted.org/packages/b9/16/b3809fb5959fe33aae4c463ae2c82398ad71499278d2114341bd57c7dcd2/pyobjc_framework_cryptotokenkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5b130e3769439076458ca6e9f5e337b99d38cdc47c2d4d251513efacc99fcf26", size = 12643 }, - { url = "https://files.pythonhosted.org/packages/21/f3/016fa856ae44547273ed36c2d87a4ae7376b9eda6dfaa80e3515ed853f42/pyobjc_framework_cryptotokenkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0907f65b48857ed1724299aca5fa94f96abb56cc078d7455e7ba4dbcf1dee77d", size = 12660 }, - { url = "https://files.pythonhosted.org/packages/fb/56/7e2bd25abd3ee53ff98765615850393851408033d13d1a2dc0796e7236ff/pyobjc_framework_cryptotokenkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:973efe489fff55b7e688bf62c161c18c0007d8b029f09d80267a1181a8aca6f2", size = 12845 }, - { url = "https://files.pythonhosted.org/packages/f2/7d/112a3b8308fa18e65b86b9d2f09cc3e00758df6a24b96f0776ba8e008274/pyobjc_framework_cryptotokenkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d58427f8794250574a4ed8736efd294414755ecbd84bc103531aeeaaa5b922ee", size = 12639 }, - { url = "https://files.pythonhosted.org/packages/4a/f7/6132d386f89a013d87bd210da86e66182e0dc5942f309c6122baa79e5931/pyobjc_framework_cryptotokenkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0bafe8ca98d016637b9ae94b845469e6fd193922a004194dd75c5e8768fff718", size = 12848 }, -] - -[[package]] -name = "pyobjc-framework-cryptotokenkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6b/7c/d03ff4f74054578577296f33bc669fce16c7827eb1a553bb372b5aab30ca/pyobjc_framework_cryptotokenkit-12.1.tar.gz", hash = "sha256:c95116b4b7a41bf5b54aff823a4ef6f4d9da4d0441996d6d2c115026a42d82f5", size = 32716 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b2/013410837cebf67e40b470cd8ffc524bd85f0ff72b62021ddf7b6e32f2b2/pyobjc_framework_cryptotokenkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cfdefb1d9b1bf2223055378ee84ad40b771b1a0ba02258fbf06be54d6b30a689", size = 12597 }, - { url = "https://files.pythonhosted.org/packages/2c/90/1623b60d6189db08f642777374fd32287b06932c51dfeb1e9ed5bbf67f35/pyobjc_framework_cryptotokenkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d84b75569054fa0886e3e341c00d7179d5fe287e6d1509630dd698ee60ec5af1", size = 12598 }, - { url = "https://files.pythonhosted.org/packages/0f/c7/aecba253cf21303b2c9f3ce03fc0e987523609d7839ea8e0a688ae816c96/pyobjc_framework_cryptotokenkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ef51a86c1d0125fabdfad0b3efa51098fb03660d8dad2787d82e8b71c9f189de", size = 12633 }, - { url = "https://files.pythonhosted.org/packages/15/8d/3e24abc92a8ee8ee11386d4d9dfb2d6961d10814474053a8ebccfaff0d97/pyobjc_framework_cryptotokenkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e65a8e4558e6cf1e46a9b4a52fcbf7b2ddd17958d675e9047d8a9f131d0a4d33", size = 12650 }, - { url = "https://files.pythonhosted.org/packages/e9/eb/418afc27429922e73a05bd22198c71e1f6b3badebd73cad208eb9e922f64/pyobjc_framework_cryptotokenkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cc9aa75e418376e92b1540d1edfa0c8097a027a1a241717983d0223cdad8e9ca", size = 12834 }, - { url = "https://files.pythonhosted.org/packages/6d/cc/32c8e34c6c54e487b993eaabe70d997096fcc1d82176207f967858f2987b/pyobjc_framework_cryptotokenkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:94fa4b3903a1a39fe1d5874a5ae5b67471f488925c485a7e9c3575fbf9eba43e", size = 12632 }, - { url = "https://files.pythonhosted.org/packages/a9/7e/57c569f4f71dfcb65b049fbb0aace19da0ed756eef7f440950098f8de498/pyobjc_framework_cryptotokenkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:05d40859a40ba4ed3dd8befabefc02aa224336c660b2f33ebf14d5397a30ffb3", size = 12839 }, -] - -[[package]] -name = "pyobjc-framework-datadetection" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9f/a1/2d556dd61c05f8fdd05d3383eb85f49d037cb3ccc276da10d38c86259720/pyobjc_framework_datadetection-12.0.tar.gz", hash = "sha256:3784ce6f220dc1bd7bc39fed240431500f106d4ae627ff2b99575ef7667f2a37", size = 12377 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/71/1d/5fa176aa5734c99ed0c99c64b547225ac97f6254ce00703d13289f09b4f2/pyobjc_framework_datadetection-12.0-py2.py3-none-any.whl", hash = "sha256:6715d68cb38a3660e083fb8c70bce75c30e61d91cd7818f006b6e2cb49491e05", size = 3505 }, -] - -[[package]] -name = "pyobjc-framework-datadetection" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/db/97/9b03832695ec4d3008e6150ddfdc581b0fda559d9709a98b62815581259a/pyobjc_framework_datadetection-12.1.tar.gz", hash = "sha256:95539e46d3bc970ce890aa4a97515db10b2690597c5dd362996794572e5d5de0", size = 12323 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/1c/5d2f941501e84da8fef8ef3fd378b5c083f063f083f97dd3e8a07f0404b3/pyobjc_framework_datadetection-12.1-py2.py3-none-any.whl", hash = "sha256:4dc8e1d386d655b44b2681a4a2341fb2fc9addbf3dda14cb1553cd22be6a5387", size = 3497 }, -] - -[[package]] -name = "pyobjc-framework-devicecheck" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/56/72626225f821c6c7aef0bb14100e5418b9c4a46c101236336096e9f9b2ad/pyobjc_framework_devicecheck-12.0.tar.gz", hash = "sha256:dc51a4ac7afb68f7dbfaa6ec74b85ac0915058be9d4ee5e17b2ca33edde57d28", size = 12953 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/31/ee708c5f5329da63ad4448eed9079c4310c140a0d064cce9a03bb8c112e4/pyobjc_framework_devicecheck-12.0-py2.py3-none-any.whl", hash = "sha256:b11efc8d82875de368cd102aedea468da32fed6d0686b5da2eeed9cd750cc5ae", size = 3696 }, -] - -[[package]] -name = "pyobjc-framework-devicecheck" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cd/af/c676107c40d51f55d0a42043865d7246db821d01241b518ea1d3b3ef1394/pyobjc_framework_devicecheck-12.1.tar.gz", hash = "sha256:567e85fc1f567b3fe64ac1cdc323d989509331f64ee54fbcbde2001aec5adbdb", size = 12885 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/d8/1f1b13fa4775b6474c9ad0f4b823953eaeb6c11bd6f03fa8479429b36577/pyobjc_framework_devicecheck-12.1-py2.py3-none-any.whl", hash = "sha256:ffd58148bdef4a1ee8548b243861b7d97a686e73808ca0efac5bef3c430e4a15", size = 3684 }, -] - -[[package]] -name = "pyobjc-framework-devicediscoveryextension" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4b/b4/7fd6b558a657d1557ce41be0f647473f739079a6f5e1289cdd788fb717e0/pyobjc_framework_devicediscoveryextension-12.0.tar.gz", hash = "sha256:77a6a39468a9aa01d127b14ea314870b757280ddd802e7b30274ffc138b7a76c", size = 14768 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/a5/b48b9018ebaf3d79ed01c33ba23828a2c10ad276f45457c7b5dd0b00ecd7/pyobjc_framework_devicediscoveryextension-12.0-py2.py3-none-any.whl", hash = "sha256:46c1a39be20183776ee95cc7b2132e2e3013aeea559ec0431275a77a613c4012", size = 4327 }, -] - -[[package]] -name = "pyobjc-framework-devicediscoveryextension" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/91/b0/e6e2ed6a7f4b689746818000a003ff7ab9c10945df66398ae8d323ae9579/pyobjc_framework_devicediscoveryextension-12.1.tar.gz", hash = "sha256:60e12445fad97ff1f83472255c943685a8f3a9d95b3126d887cfe769b7261044", size = 14718 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/0c/005fe8db1e19135f493a3de8c8d38031e1ad2d626de4ef89f282acf4aff7/pyobjc_framework_devicediscoveryextension-12.1-py2.py3-none-any.whl", hash = "sha256:d6d6b606d27d4d88efc0bed4727c375e749149b360290c3ad2afc52337739a1b", size = 4321 }, -] - -[[package]] -name = "pyobjc-framework-dictionaryservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0b/14/18a56b54e3fe6477f6a9ab92a318f05fd70b0b7797f4170bcd38418aba37/pyobjc_framework_dictionaryservices-12.0.tar.gz", hash = "sha256:e415dcdcc93ab42bc7beaab9b6696f6c417e57ace689d3e7d7ed9b1fef5d1119", size = 10589 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/b0/c57721118d28a9cd3d05fb74774c72eb2304b95a2a7beb1d7653fdd551e6/pyobjc_framework_dictionaryservices-12.0-py2.py3-none-any.whl", hash = "sha256:f8f54b290772c36081d38dfc089d5ed5c4486a7a584a7e1f685203e1c8b210f6", size = 3940 }, -] - -[[package]] -name = "pyobjc-framework-dictionaryservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7a/c0/daf03cdaf6d4e04e0cf164db358378c07facd21e4e3f8622505d72573e2c/pyobjc_framework_dictionaryservices-12.1.tar.gz", hash = "sha256:354158f3c55d66681fa903c7b3cb05a435b717fa78d0cef44d258d61156454a7", size = 10573 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/13/ab308e934146cfd54691ddad87e572cd1edb6659d795903c4c75904e2d7d/pyobjc_framework_dictionaryservices-12.1-py2.py3-none-any.whl", hash = "sha256:578854eec17fa473ac17ab30050a7bbb2ab69f17c5c49b673695254c3e88ad4b", size = 3930 }, -] - -[[package]] -name = "pyobjc-framework-discrecording" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8c/ab/a6126d2a23e50cb5c53a731a4eb084b98c9ee7fc86ba3952a61ef1729c39/pyobjc_framework_discrecording-12.0.tar.gz", hash = "sha256:cb2bc1c9ea9c4f3ed38e4fa64ed0d7ff3c1d8cfa2a90cee5680e9468190aeb17", size = 55974 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/eb/606f1566b39cd1b8c36790b46a70d1c37834dff5192e84c5d09b0fd8fec2/pyobjc_framework_discrecording-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:31c26d7807c4c75daa61f21f808d100494809f248d2aad02f5526861b4d61898", size = 14557 }, - { url = "https://files.pythonhosted.org/packages/73/fb/946cdb1c70df944d5fd6e28c300f15c8672c4ef74f30b4a578deba09749c/pyobjc_framework_discrecording-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8ece9ff8b81c6ca1ab1360e7052346dfffa752f494edbe701d25f2312629f084", size = 14560 }, - { url = "https://files.pythonhosted.org/packages/b7/1f/ac20e19df780b7d14a7ae741da672400c5c8d331c41ab014ea025517ae2f/pyobjc_framework_discrecording-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:817ed6254bb81e4703e6841c474025ca281a242a9f09f274a02f66128a4c6b6d", size = 14567 }, - { url = "https://files.pythonhosted.org/packages/f2/5f/ec63dda83d0616c68855801e4c3aa341b9c47b9d6cecbbcce57f26e637aa/pyobjc_framework_discrecording-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d5e3f5ac73ee969ee99a12057ce6356609971f52a2323b1b5f1abb7ba5fcee50", size = 14582 }, - { url = "https://files.pythonhosted.org/packages/96/50/d844de9cb36193dc990fd68ac7989e9f592fd8d50971bcd1a71b4d0815d2/pyobjc_framework_discrecording-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:91e369ff415c189df373a4e435456eb227e2579636801b4635cd60577293d06a", size = 14756 }, - { url = "https://files.pythonhosted.org/packages/ac/bd/56b912a9a1314696b9e5d23e99632601689f9e2ff8a08a17214f761ecbaa/pyobjc_framework_discrecording-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6f62d945627c78acfd5ffd523e86a5d4ae41cfcd0c2683e437ee9e65aefccb5d", size = 14646 }, - { url = "https://files.pythonhosted.org/packages/d2/85/cb54cc0344900c4bc34e3eb02ada9dae5a966b5ec4bd733490f781b45429/pyobjc_framework_discrecording-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:95f09e2c715660fff406637946a4b8d7696dafd2c3c00d840c46b15fede91667", size = 14818 }, -] - -[[package]] -name = "pyobjc-framework-discrecording" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c4/87/8bd4544793bfcdf507174abddd02b1f077b48fab0004b3db9a63142ce7e9/pyobjc_framework_discrecording-12.1.tar.gz", hash = "sha256:6defc8ea97fb33b4d43870c673710c04c3dc48be30cdf78ba28191a922094990", size = 55607 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/48/99/bd915504fd2a8b15b65817bc2d06c29846d312b972ce57acf0a5911ecfa2/pyobjc_framework_discrecording-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b940e018b57ce637f5ada4d44ed6775d349dbc4e67c6e563f682fc3277c7affe", size = 14545 }, - { url = "https://files.pythonhosted.org/packages/0e/ce/89df4d53a0a5e3a590d6e735eca4f0ba4d1ccc0e0acfbc14164026a3c502/pyobjc_framework_discrecording-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f7d815f28f781e20de0bf278aaa10b0de7e5ea1189aa17676c0bf5b99e9e0d52", size = 14540 }, - { url = "https://files.pythonhosted.org/packages/c8/70/14a5aa348a5eba16e8773bb56698575cf114aa55aa303037b7000fc53959/pyobjc_framework_discrecording-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:865f1551e58459da6073360afc8f2cc452472c676ba83dcaa9b0c44e7775e4b5", size = 14566 }, - { url = "https://files.pythonhosted.org/packages/aa/29/0064a48b24694597890cb065f5d33f719eed2cfff2878f43f310f27485cc/pyobjc_framework_discrecording-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c682c458622db9b4ea8363335ee38f5dd98db6691680041a3fda73e26714346", size = 14567 }, - { url = "https://files.pythonhosted.org/packages/de/78/b8b3f063ecda49d600548eeee0c29b47a0b7635623a68609038326bfa7e7/pyobjc_framework_discrecording-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:36e1ba4d37fe310bad2fbfeadd43c8ef001cfae9a2a0484d7318504c5dbefa3f", size = 14745 }, - { url = "https://files.pythonhosted.org/packages/d1/f1/61b7d8a35fb654ece97b539912452334665abf0a1fa9e83cda809c674c9e/pyobjc_framework_discrecording-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a60e2cab88fdf923f2017effb248f7c32819fbe494a6d17acfa71754b44ff68c", size = 14632 }, - { url = "https://files.pythonhosted.org/packages/59/f5/e3db465b3087a3d3550dc9b4a90b33fa281d19da24dd0a5b591eeddbbe64/pyobjc_framework_discrecording-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3345fcb139f1646c2aef41be6344c5b944817ea4df85d7f61db27781a90d77a6", size = 14808 }, -] - -[[package]] -name = "pyobjc-framework-discrecordingui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-discrecording", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9f/12/895107bac87ad78c822debb9c68bfc17d7e632f9778cfb8f01b3b7fcafc8/pyobjc_framework_discrecordingui-12.0.tar.gz", hash = "sha256:31d31a903f4d12753e24e77951fe1fc2e27a7bf8643e7b97ba061d41008336ec", size = 16477 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/ce/35f69d7fb296e7548d2d76de446e02c351890a745799454e85bd170c60ca/pyobjc_framework_discrecordingui-12.0-py2.py3-none-any.whl", hash = "sha256:3cce85f3d13f28561e734b61facc1a16b632b73e69c5f14943816cf0fa184cdc", size = 4716 }, -] - -[[package]] -name = "pyobjc-framework-discrecordingui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-discrecording", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/30/63/8667f5bb1ecb556add04e86b278cb358dc1f2f03862705cae6f09097464c/pyobjc_framework_discrecordingui-12.1.tar.gz", hash = "sha256:6793d4a1a7f3219d063f39d87f1d4ebbbb3347e35d09194a193cfe16cba718a8", size = 16450 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/4e/76016130c27b98943c5758a05beab3ba1bc9349ee881e1dfc509ea954233/pyobjc_framework_discrecordingui-12.1-py2.py3-none-any.whl", hash = "sha256:6544ef99cad3dee95716c83cb207088768b6ecd3de178f7e1b17df5997689dfd", size = 4702 }, -] - -[[package]] -name = "pyobjc-framework-diskarbitration" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0e/96/be0ced457c9483efa7ec9789abcd5945446bc54ab1d785363c5f8d8bbd45/pyobjc_framework_diskarbitration-12.0.tar.gz", hash = "sha256:88df934c0cbc63daa496e2318e9ffa1d5e0096b6107fcff550afdd6817142813", size = 17191 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/9c/79e41d6fedea3c07d1a9d83b1d6ad2585a0d9693b57a8b92ee60a0c19135/pyobjc_framework_diskarbitration-12.0-py2.py3-none-any.whl", hash = "sha256:690e34ea7548c21519855e5d1ebb0fcf9538d7562ec15779c5c63b580d9c855f", size = 4889 }, -] - -[[package]] -name = "pyobjc-framework-diskarbitration" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3a/42/f75fcabec1a0033e4c5235cc8225773f610321d565b63bf982c10c6bbee4/pyobjc_framework_diskarbitration-12.1.tar.gz", hash = "sha256:6703bc5a09b38a720c9ffca356b58f7e99fa76fc988c9ec4d87112344e63dfc2", size = 17121 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/48/65/c1f54c47af17cb6b923eab85e95f22396c52f90ee8f5b387acffad9a99ea/pyobjc_framework_diskarbitration-12.1-py2.py3-none-any.whl", hash = "sha256:54caf3079fe4ae5ac14466a9b68923ee260a1a88a8290686b4a2015ba14c2db6", size = 4877 }, -] - -[[package]] -name = "pyobjc-framework-dvdplayback" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/de/28/a9b7a2722cf94382ec843601e656524246384f3ff710a60c18e617acc756/pyobjc_framework_dvdplayback-12.0.tar.gz", hash = "sha256:433e8790641a210304b47079965eda2737578033747f3eb20d1758afcfbb35a2", size = 32345 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/81/57fe080195079c27e45bcfbc528895549f6f35080fb41dde6720485964ec/pyobjc_framework_dvdplayback-12.0-py2.py3-none-any.whl", hash = "sha256:9d68ed25523e14faf6c79f89d87c21942147063b7e5cb625edad40e9dffe6360", size = 8253 }, -] - -[[package]] -name = "pyobjc-framework-dvdplayback" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cf/dd/7859a58e8dd336c77f83feb76d502e9623c394ea09322e29a03f5bc04d32/pyobjc_framework_dvdplayback-12.1.tar.gz", hash = "sha256:279345d4b5fb2c47dd8e5c2fd289e644b6648b74f5c25079805eeb61bfc4a9cd", size = 32332 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/7d/22c07c28fab1f15f0d364806e39a6ca63c737c645fe7e98e157878b5998c/pyobjc_framework_dvdplayback-12.1-py2.py3-none-any.whl", hash = "sha256:af911cc222272a55b46a1a02a46a355279aecfd8132231d8d1b279e252b8ad4c", size = 8243 }, -] - -[[package]] -name = "pyobjc-framework-eventkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1d/c4/b6e30b7917777bb74d3caffb6568e4644c0b9cfa75b0dfc4942bfde3fad1/pyobjc_framework_eventkit-12.0.tar.gz", hash = "sha256:6a67a70cee1d9399cca2c04303ec10ae0d2a99ceca1bd7f9a3c67ff166057680", size = 28578 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/49/aa23695c867aafea7254058218202bffda0abf1b3bbf2d1c617a73266662/pyobjc_framework_eventkit-12.0-py2.py3-none-any.whl", hash = "sha256:1771062ab40d26e878cbf27bdf1f9fe539854c62eea8b44d7be9218dc7d6ce67", size = 6827 }, -] - -[[package]] -name = "pyobjc-framework-eventkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b6/42/4ec97e641fdcf30896fe76476181622954cb017117b1429f634d24816711/pyobjc_framework_eventkit-12.1.tar.gz", hash = "sha256:7c1882be2f444b1d0f71e9a0cd1e9c04ad98e0261292ab741fc9de0b8bbbbae9", size = 28538 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/35/142f43227627d6324993869d354b9e57eb1e88c4e229e2271592254daf25/pyobjc_framework_eventkit-12.1-py2.py3-none-any.whl", hash = "sha256:3d2d36d5bd9e0a13887a6ac7cdd36675985ebe2a9cb3cdf8cec0725670c92c60", size = 6820 }, -] - -[[package]] -name = "pyobjc-framework-exceptionhandling" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/51/e6/afbd7407d43562878cf66f16bc79439616a447900f1dadf5015e9bbf3f8d/pyobjc_framework_exceptionhandling-12.0.tar.gz", hash = "sha256:047dc74c185b9bacb165a6d77a079a0ccec099f0ab516da726273305e41b18f6", size = 16748 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/c3/97804dc40a8a3af7a01b71b52a50bb2d43e4bb6aabb15a20de083f49caa6/pyobjc_framework_exceptionhandling-12.0-py2.py3-none-any.whl", hash = "sha256:d69f34caf50bd2fe135d04ffc00342e4b1c0d76340170418688317ad4685ac08", size = 7124 }, -] - -[[package]] -name = "pyobjc-framework-exceptionhandling" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f1/17/5c9d4164f7ccf6b9100be0ad597a7857395dd58ea492cba4f0e9c0b77049/pyobjc_framework_exceptionhandling-12.1.tar.gz", hash = "sha256:7f0719eeea6695197fce0e7042342daa462683dc466eb6a442aad897032ab00d", size = 16694 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/ad/8e05acf3635f20ea7d878be30d58a484c8b901a8552c501feb7893472f86/pyobjc_framework_exceptionhandling-12.1-py2.py3-none-any.whl", hash = "sha256:2f1eae14cf0162e53a0888d9ffe63f047501fe583a23cdc9c966e89f48cf4713", size = 7113 }, -] - -[[package]] -name = "pyobjc-framework-executionpolicy" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cf/40/10c3c6a10d0b2829e96fcf3f8375846e5af1926b9b024147c9fc7e0ceff8/pyobjc_framework_executionpolicy-12.0.tar.gz", hash = "sha256:508d1ac045f9f2747db1a93ce45381f4e5f64881f4adc79fb0474f4dbe6237eb", size = 12649 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/67/b8398c778e3821f666d8530974e216f7e7c148beb5fa0088c151935b6554/pyobjc_framework_executionpolicy-12.0-py2.py3-none-any.whl", hash = "sha256:6b882acdbfe5cc6f0783f9f99ffb98d2d34eb72b0761e8cc812f7b518b77b2a8", size = 3749 }, -] - -[[package]] -name = "pyobjc-framework-executionpolicy" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/95/11/db765e76e7b00e1521d7bb3a61ae49b59e7573ac108da174720e5d96b61b/pyobjc_framework_executionpolicy-12.1.tar.gz", hash = "sha256:682866589365cd01d3a724d8a2781794b5cba1e152411a58825ea52d7b972941", size = 12594 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/2c/f10352398f10f244401ab8f53cabd127dc3f5dbbfc8de83464661d716671/pyobjc_framework_executionpolicy-12.1-py2.py3-none-any.whl", hash = "sha256:c3a9eca3bd143cf202787dd5e3f40d954c198f18a5e0b8b3e2fcdd317bf33a52", size = 3739 }, -] - -[[package]] -name = "pyobjc-framework-extensionkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/54/36ea7f32481e5e4cc1bac159ff9e4dc94fd4827f544e85caa2a03b4c5938/pyobjc_framework_extensionkit-12.0.tar.gz", hash = "sha256:02e6b5613797a79c77b277b352441c8667117b657b06b862277c681d75cc7c01", size = 19085 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/25/a254560c012fa87fba5df9ad7351a6ea73daf9bbab25c6a0e1ab4c71eefd/pyobjc_framework_extensionkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3371c917d3ab581b0ea1261031412ac7febe12e94c07099c3fdb6cb7326c03a6", size = 7929 }, - { url = "https://files.pythonhosted.org/packages/98/a2/4a280fc8c6df72b6a3ea83997251fd8bdc81c06cb09fc726b2d2c1000613/pyobjc_framework_extensionkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:83c4adb2a6dcc45666c08f0d9cfc9a6021786dfb247defea5366d0cdccb03544", size = 7924 }, - { url = "https://files.pythonhosted.org/packages/2a/39/1f66656b0514189192d867d1937321d5aedcadaae796702f58299a922ddc/pyobjc_framework_extensionkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9d5c95e090b08594e4fb7e57c3cbfc30a6058c9504e908beebb97a963126e6dc", size = 7941 }, - { url = "https://files.pythonhosted.org/packages/08/ef/a4fe3c097e55244f27ade55af62e5a8a747fc87c2285b6838ec2c1593550/pyobjc_framework_extensionkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f0d037a5288d709ea6eb44adf5406d324958f693aca622b840078d8a5825db2", size = 7950 }, - { url = "https://files.pythonhosted.org/packages/67/6c/8a2b08eaa67c883eb434821af0d415168dd7123fcbf3e03ad7bb4bc3cd27/pyobjc_framework_extensionkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:eed6b5bf85b9d06c5e47b95c3b36fd530b3c768cda830b58734ba18cdd5b39ba", size = 8099 }, - { url = "https://files.pythonhosted.org/packages/d7/a2/df77539dd30d5344f223a4fc5bc9414ae8029ba5b196cdf7a33d6f6cffdb/pyobjc_framework_extensionkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2c3dc04387cf96467e3aa8221150b6d0ed9d52af26980ff3eca012671eb662df", size = 8018 }, - { url = "https://files.pythonhosted.org/packages/9b/f3/764fe0feb220667b85110d95399e76d567a4d626ed2ae7d1eabc0c685c2c/pyobjc_framework_extensionkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1a97ae6663bd5faf256484fcbc85625cb9735994fcce83d0bfa912967b33e3df", size = 8157 }, -] - -[[package]] -name = "pyobjc-framework-extensionkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9a/d4/e9b1f74d29ad9dea3d60468d59b80e14ed3a19f9f7a25afcbc10d29c8a1e/pyobjc_framework_extensionkit-12.1.tar.gz", hash = "sha256:773987353e8aba04223dbba3149253db944abfb090c35318b3a770195b75da6d", size = 18694 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/22/2714fe409dda791152bfe9463807a3deefcee316089af1a123019871a3cf/pyobjc_framework_extensionkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6764f7477bb0f6407a5217cbfc2da13a71a5d402ac5f005300958886e25fd9b5", size = 7919 }, - { url = "https://files.pythonhosted.org/packages/4f/02/3d1df48f838dc9d64f03bedd29f0fdac6c31945251c9818c3e34083eb731/pyobjc_framework_extensionkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9139c064e1c7f21455411848eb39f092af6085a26cad322aa26309260e7929d9", size = 7919 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/8064dad6114a489e5439cc20d9fb0dd64cfc406d875b4a3c87015b3f6266/pyobjc_framework_extensionkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7e01d705c7ac6d080ae34a81db6d9b81875eabefa63fd6eafbfa30f676dd780b", size = 7932 }, - { url = "https://files.pythonhosted.org/packages/f5/75/63c304543fc3c5c0755521ab0535e3f81f6ab8de656a02598e23f687cb6c/pyobjc_framework_extensionkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8f2a87bd4fbb8d14900bbe9c979b23b7532b23685c0f5022671b26db4fa3e515", size = 7946 }, - { url = "https://files.pythonhosted.org/packages/bd/40/2dab02d8726abf586f253fbddc2d0d9b2abd5dbb4b24272eb48c886741fc/pyobjc_framework_extensionkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:570e8a89116380a27dd8df7ce28cd5f7296eb785aea4cb7dc6447954005360c2", size = 8086 }, - { url = "https://files.pythonhosted.org/packages/fc/ec/a02ddac5ea7439dc4deb488ba551e27565920b8864c2f71611159794a1b5/pyobjc_framework_extensionkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b002bd4ee7aa951298f8bdd41e2a59d172050975499f94a26caff263b5fadca4", size = 8004 }, - { url = "https://files.pythonhosted.org/packages/15/21/2fad7badad0bb25c22bff840563041a3f9e10aee4da7232bdbbff1b48138/pyobjc_framework_extensionkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d14ebebffe05d33d189bf2bec5b676721790cf041b7ee628bfd05bcda4c148cc", size = 8141 }, -] - -[[package]] -name = "pyobjc-framework-externalaccessory" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/77/af/65fb12b47da17c7cbe32c5650fbe6071aa7ca580d1db27f6760730bbba55/pyobjc_framework_externalaccessory-12.0.tar.gz", hash = "sha256:654301eb0370eef57ddd472c8e71e25a0f0e6d720e38730369b1c3712fe67b0b", size = 21353 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/10/586261039be0961c9110ac3e5c3c4d62bebcb61aaf282aa9295dad6f5ede/pyobjc_framework_externalaccessory-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0bec7d7fc1a204f4c6a738469afe4706ded4b00df9d4b7aabdb32f186221d44", size = 8918 }, - { url = "https://files.pythonhosted.org/packages/ed/7a/d90b0e09d784e18c5a3ea1530d234c225de758cb8bb24cb4e6882e8c9736/pyobjc_framework_externalaccessory-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:913b0e5ef1047ad87b6b5e690ac3dd7132f25c51874ba4552a57092d161374ab", size = 8919 }, - { url = "https://files.pythonhosted.org/packages/eb/e8/e40ebad20df2d4124e701a08d7d421091d42c8465681f7578cb03b233ab3/pyobjc_framework_externalaccessory-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:281fd839361e48a2b193f4cb3b4690d9551de31a6b2fd12a8bdec085cf835b26", size = 8937 }, - { url = "https://files.pythonhosted.org/packages/37/00/56c302c594516fd9cb1e64c073774ba1e3337a1236cd55a88d5ef0f2acee/pyobjc_framework_externalaccessory-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e8ea60aede93ed6af3b121f95aedfffe87913659ee470d9140eedaf3cac04d7", size = 8953 }, - { url = "https://files.pythonhosted.org/packages/8d/2b/74456a9f89e966560e09beb4841bd8ee52284f2eb6692e0cce3adebba343/pyobjc_framework_externalaccessory-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b9275d656f44464b96e75cb1d5514ef6806747ca3d9e34469d409a8bd16eaa22", size = 9111 }, - { url = "https://files.pythonhosted.org/packages/a4/fa/c647e023dafc79675024f5a0afa9ea179a7c97ae9d6a267129cf541857f6/pyobjc_framework_externalaccessory-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f2e188740640270af2b608682bb041b9006d38899657c54d775acc723ba7c7ef", size = 9009 }, - { url = "https://files.pythonhosted.org/packages/f8/61/a9cdaf3bca459b81a8f4d2d367eb9753ee7ebbd56733588ddf1bf0e95e25/pyobjc_framework_externalaccessory-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:38f655c538a6a7dc65ff83b6fb2c6d9441f9334612012fc2c05d3e7f2f9f2073", size = 9193 }, -] - -[[package]] -name = "pyobjc-framework-externalaccessory" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8e/35/86c097ae2fdf912c61c1276e80f3e090a3fc898c75effdf51d86afec456b/pyobjc_framework_externalaccessory-12.1.tar.gz", hash = "sha256:079f770a115d517a6ab87db1b8a62ca6cdf6c35ae65f45eecc21b491e78776c0", size = 20958 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/af/754d05e6411be3464efffd8111bc12ce1b29d615910b19e532f39083dfc3/pyobjc_framework_externalaccessory-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ee55a06fe8ef7ff07a435d75544d8c7177e790afaff60b5a55e3ceea1c9f03e7", size = 8908 }, - { url = "https://files.pythonhosted.org/packages/18/01/2a83b63e82ce58722277a00521c3aeec58ac5abb3086704554e47f8becf3/pyobjc_framework_externalaccessory-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:32208e05c9448c8f41b3efdd35dbea4a8b119af190f7a2db0d580be8a5cf962e", size = 8911 }, - { url = "https://files.pythonhosted.org/packages/ec/52/984034396089766b6e5ff3be0f93470e721c420fa9d1076398557532234f/pyobjc_framework_externalaccessory-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dedbf7a09375ac19668156c1417bd7829565b164a246b714e225b9cbb6a351ad", size = 8932 }, - { url = "https://files.pythonhosted.org/packages/2d/bf/9e368e16edb94d9507c1034542379b943e0d9c3bcc0ce8062ac330216317/pyobjc_framework_externalaccessory-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:34858f06cd75fe4e358555961a6898eb8778fd2931058fd660fcd5d6cf31b162", size = 8944 }, - { url = "https://files.pythonhosted.org/packages/71/5b/643a00fe334485b4100d7a68330b6c6c349fe27434e0dc0fdf2065984555/pyobjc_framework_externalaccessory-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5551915fa82ff1eea8e5810f74c1298e5327aefe4ac90abeb9a7abd69ff33a22", size = 9100 }, - { url = "https://files.pythonhosted.org/packages/7b/e4/b7f1c8b977e64b495a5f268f9f6d82ed71152268542a7e676c26c647a6b0/pyobjc_framework_externalaccessory-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:22efc5bf68f5f0ef39f4308ef06403c42544f5fc75f6eeb137a87af99357dda1", size = 8999 }, - { url = "https://files.pythonhosted.org/packages/02/23/c038dd6c9dee7067dd51e430f5019a39f68102aade47ae9a89f64eb913d6/pyobjc_framework_externalaccessory-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3a0f21fe660ee89b98d357ce3df9ff546f19161b6f569cc93888e6bcbd1d7f22", size = 9178 }, -] - -[[package]] -name = "pyobjc-framework-fileprovider" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/79/3c/57bcedb1076903d44078ecfa402ee4a27a3cee123a86e684c8683316b2d1/pyobjc_framework_fileprovider-12.0.tar.gz", hash = "sha256:8b0c33f34c123b757b09406e6fd29a8e5b3348cc8e271533386af860f2bfce65", size = 43431 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/8c/f4e75b4b641a3cc88611bc1f18da6909d64e82e73eaacc99359b399f9ad1/pyobjc_framework_fileprovider-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:251594f835e87e6f8732ed454a8c345e831060ab083e825ba9c5539c569b5545", size = 20979 }, - { url = "https://files.pythonhosted.org/packages/67/3b/0a439219ec7f71bad775481d4f943c1ac8eebe3d841938160049cbf55cb6/pyobjc_framework_fileprovider-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd2a7b6d79e3dd1487375c0f9a653b0242d5abe000915d443cc57ab384369f64", size = 20981 }, - { url = "https://files.pythonhosted.org/packages/9d/54/9c4e41fe4a2c9eb91c1d4cf3501d4d3843f40ee5ab9fbc9ecf4202ef0f42/pyobjc_framework_fileprovider-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:14db02897901a02eca7c7a1e587bc3fb89eb72f7d53c30a8f449c53768275501", size = 21019 }, - { url = "https://files.pythonhosted.org/packages/34/38/401a24b91f299bc7de29e9ec61c214ae4b84d6834f629fb34858d34fe7e0/pyobjc_framework_fileprovider-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b4fcea703e8f8b17b0503b7b48c071bef524f5420f5ae4c66fcd35cf87a85bb", size = 21016 }, - { url = "https://files.pythonhosted.org/packages/ce/c4/43325b4d2161ea22180087bf29f3c784cdc22ed2c395ee6324a123bcab4f/pyobjc_framework_fileprovider-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dab249a72005cd473bf18cc5d335bacac15bf9faeb639960d7b38594543f6a45", size = 21307 }, - { url = "https://files.pythonhosted.org/packages/f6/7d/6f7cd199ce73c6b0001cbaf972531ca64f90c405e2362a776cee8614cb81/pyobjc_framework_fileprovider-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f6b842ea2f9bc7fab2bfc8bf62262a4e4594b7b29052afc4587dc1bb601507ba", size = 21066 }, - { url = "https://files.pythonhosted.org/packages/eb/51/571806793ef91f8c522a879a24b621b816f777ebe39b9e0f0f625d219a42/pyobjc_framework_fileprovider-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:040e13cb5ec00bc9453bbed2fe65b8b8900c035cf169cc76e6c4fd96760a683d", size = 21343 }, -] - -[[package]] -name = "pyobjc-framework-fileprovider" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/9a/724b1fae5709f8860f06a6a2a46de568f9bb8bdb2e2aae45b4e010368f51/pyobjc_framework_fileprovider-12.1.tar.gz", hash = "sha256:45034e0d00ae153c991aa01cb1fd41874650a30093e77ba73401dcce5534c8ad", size = 43071 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/eb/3ead14806cb784692504f331756f2c03a7254e384c01a6a08e0e16ba0115/pyobjc_framework_fileprovider-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6f672069340bd8e994f9ef144949d807485ced5b1b9e21917cc7810e1aa8cda0", size = 20976 }, - { url = "https://files.pythonhosted.org/packages/1d/37/2f56167e9f43d3b25a5ed073305ca0cfbfc66bedec7aae9e1f2c9c337265/pyobjc_framework_fileprovider-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d527c417f06d27c4908e51d4e6ccce0adcd80c054f19e709626e55c511dc963", size = 20970 }, - { url = "https://files.pythonhosted.org/packages/2c/f5/56f0751a2988b2caca89d6800c8f29246828d1a7498bb676ef1ab28000b7/pyobjc_framework_fileprovider-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:89b140ea8369512ddf4164b007cbe35b4d97d1dcb8affa12a7264c0ab8d56e45", size = 21003 }, - { url = "https://files.pythonhosted.org/packages/31/92/23deb9d12690a69599dd7a66f3f5a5a3c09824147d148759a33c5c2933fc/pyobjc_framework_fileprovider-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a1a7a6ac3af1e93d23f5644b4c7140dc7edf5ff79419cc0bd25ce7001afc1cf6", size = 21018 }, - { url = "https://files.pythonhosted.org/packages/a4/99/cec0a13ca8da9283d1a1bbaeeabdff7903be5c85cfb27a2bb7cc121cb529/pyobjc_framework_fileprovider-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6d6744c8c4f915b6193a982365d947b63286cea605f990a2aaa3bb37069471f2", size = 21300 }, - { url = "https://files.pythonhosted.org/packages/4f/8d/b1c6e0927d22d0c125c8a62cd2342c4613e3aabf13cb0e66ea62fe85fff1/pyobjc_framework_fileprovider-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:520b8c83b1ce63e0f668ea1683e3843f2e5379c0af76dceb19d5d540d584ff54", size = 21062 }, - { url = "https://files.pythonhosted.org/packages/25/14/1a05c99849e6abb778f601eeb93e27f2fbbbb8f4ffaab42c8aa02ff62406/pyobjc_framework_fileprovider-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:de9aaea1308e37f7537dd2a8e89f151d4eaee2b0db5d248dc85cc1fd521adaaa", size = 21331 }, -] - -[[package]] -name = "pyobjc-framework-fileproviderui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-fileprovider", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/39/19/fb3a1ce592110c02152b1663ce82ec9505af9310dc1b4d30b6669e2becdb/pyobjc_framework_fileproviderui-12.0.tar.gz", hash = "sha256:7d6903eeb9a1b890d26d4beff0fa027be780c2135eab6a642fbfdcad71dfa78c", size = 12476 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/24/41981f2d97c7beeaf7b48351fc7044293f99ffd678c5690e24e356ce02f4/pyobjc_framework_fileproviderui-12.0-py2.py3-none-any.whl", hash = "sha256:821e5a84f6c2122cd03d64428a9b0af2d41ee27bce8b417d9fa7a97470a97ee7", size = 3723 }, -] - -[[package]] -name = "pyobjc-framework-fileproviderui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-fileprovider", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/00/234f9b93f75255845df81d9d5ea20cb83ecb5c0a4e59147168b622dd0b9d/pyobjc_framework_fileproviderui-12.1.tar.gz", hash = "sha256:15296429d9db0955abc3242b2920b7a810509a85118dbc185f3ac8234e5a6165", size = 12437 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/65/cc4397511bd0af91993d6302a2aed205296a9ad626146eefdfc8a9624219/pyobjc_framework_fileproviderui-12.1-py2.py3-none-any.whl", hash = "sha256:521a914055089e28631018bd78df4c4f7416e98b4150f861d4a5bc97d5b1ffe4", size = 3715 }, -] - -[[package]] -name = "pyobjc-framework-findersync" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/8f/7574edd92f3ba6358b14708ab40a049d2a4c02029ac6f4f88f498074a0ba/pyobjc_framework_findersync-12.0.tar.gz", hash = "sha256:7a7220395127bec31b4cbbbe40c1ec8fa0f5586c241e5c158c567543338d766d", size = 13615 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/93/b49eb8f4e8bdc8892018acfd82b0be9b5b4f2cc44416867bf3afa0e16ccc/pyobjc_framework_findersync-12.0-py2.py3-none-any.whl", hash = "sha256:0b27ef0255a04d0241700bd68d30df629c01a02afeb9ab2aad0bd50219022485", size = 4901 }, -] - -[[package]] -name = "pyobjc-framework-findersync" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/63/c8da472e0910238a905bc48620e005a1b8ae7921701408ca13e5fb0bfb4b/pyobjc_framework_findersync-12.1.tar.gz", hash = "sha256:c513104cef0013c233bf8655b527df665ce6f840c8bc0b3781e996933d4dcfa6", size = 13507 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/9f/ec7f393e3e2fd11cbdf930d884a0ba81078bdb61920b3cba4f264de8b446/pyobjc_framework_findersync-12.1-py2.py3-none-any.whl", hash = "sha256:e07abeca52c486cf14927f617afc27afa7a3828b99fab3ad02355105fb29203e", size = 4889 }, -] - -[[package]] -name = "pyobjc-framework-fsevents" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/59/2b/52f6c1f1c8725b08d53c8fe4c0ea18fb17a91674b8023e20d6aef0f15820/pyobjc_framework_fsevents-12.0.tar.gz", hash = "sha256:768bfc90da3547516b6833e33f28d5f49238c2b47f44b8a9b7c941b951488cd9", size = 26890 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/ec/98db1800fa008c796d013c2b8f4143928385fcbe8267219c63cafbf42baa/pyobjc_framework_fsevents-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:084aeee01d17e4024d3688b79bb1605b1c4ed7a65008e06e8b41de88f681ab3a", size = 13068 }, - { url = "https://files.pythonhosted.org/packages/e8/de/77ba26869434b6af5261a8da3d60633fa7529335e73efb46f6a8799c1f0e/pyobjc_framework_fsevents-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:72107b82442e644b603306ee65900cc5a25a941b3374c77c0f3c3db713cd442c", size = 13070 }, - { url = "https://files.pythonhosted.org/packages/b3/d2/2f47bf12ab314f3f792ea70616cbd9be01d03de2a4ae7df104aa519e9871/pyobjc_framework_fsevents-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b48c86d919ad554b6a8aee0e6536ed3877425d4eaa83b9e9ad1cc52482c15123", size = 13154 }, - { url = "https://files.pythonhosted.org/packages/af/ab/085b9012909b7daee172c0466d25f38928b9c8d905da0d8b8a2e85aeb81a/pyobjc_framework_fsevents-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0fdddf5a11b2d3f46d75e53d72aa01dedb74bbbcdc0251df4e47196989f1102e", size = 13155 }, - { url = "https://files.pythonhosted.org/packages/df/7d/5ea57bf2a101c37a019bf2a2af3c1444c85aa6602d5aab52630c8d470237/pyobjc_framework_fsevents-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2bcfc084dfc4db42f503eeecb5d3e8f5cad9cf54f14ab84e61f6d24c41276454", size = 13518 }, - { url = "https://files.pythonhosted.org/packages/d9/1d/3105e4419e184e1b31ededdd788c5f2a9c9b97cfa0a391f584218cc8ec85/pyobjc_framework_fsevents-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a066a7f3aa2eb9e1cdae0773939a736e133fbdaf08a36b07558cf9283f9c5541", size = 13047 }, - { url = "https://files.pythonhosted.org/packages/1e/70/feb81655ed49ef3b4adc211e98cbc9f0360a380deb74afaeb8f4cf064519/pyobjc_framework_fsevents-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a8046f4cecaa5b107bd1968a99925bbccf36ef9ab70e9ac6990483334465967a", size = 13510 }, -] - -[[package]] -name = "pyobjc-framework-fsevents" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/43/17/21f45d2bca2efc72b975f2dfeae7a163dbeabb1236c1f188578403fd4f09/pyobjc_framework_fsevents-12.1.tar.gz", hash = "sha256:a22350e2aa789dec59b62da869c1b494a429f8c618854b1383d6473f4c065a02", size = 26487 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/97/8c0cc7fb5e3e2c94fa11b3e2a1e6a2546af067263c6da1eafe09485492c3/pyobjc_framework_fsevents-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b3af4e030325672679e3fce55d34fff2a6d9da0cf27810f3cfc0eec0880e45e8", size = 13057 }, - { url = "https://files.pythonhosted.org/packages/a4/3f/a7fe5656b205ee3a9fd828e342157b91e643ee3e5c0d50b12bd4c737f683/pyobjc_framework_fsevents-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:459cc0aac9850c489d238ba778379d09f073bbc3626248855e78c4bc4d97fe46", size = 13059 }, - { url = "https://files.pythonhosted.org/packages/2d/e3/2c5eeea390c0b053e2d73b223af3ec87a3e99a8106e8d3ee79942edb0822/pyobjc_framework_fsevents-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a2949358513fd7bc622fb362b5c4af4fc24fc6307320070ca410885e5e13d975", size = 13141 }, - { url = "https://files.pythonhosted.org/packages/19/41/f06d14020eb9ec10c0e36f5e3f836f8541b989dcde9f53ea172852a7c864/pyobjc_framework_fsevents-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b30c72239a9ced4e4604fcf265a1efee788cb47850982dd80fcbaafa7ee64f9", size = 13143 }, - { url = "https://files.pythonhosted.org/packages/2b/3a/10c1576da38f7e39d6adb592f54fa1b058c859c7d38d03b0cdaf25e12f8d/pyobjc_framework_fsevents-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:05220368b0685783e0ae00c885e167169d47ff5cf66de7172ca8074682dfc330", size = 13511 }, - { url = "https://files.pythonhosted.org/packages/90/f6/d6ea1ce944adb3e2c77abc84470a825854428c72e71efe5742bad1c1b1cd/pyobjc_framework_fsevents-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:90819f2fe0516443f679273b128c212d9e6802570f2f1c8a1e190fed76e2dc48", size = 13033 }, - { url = "https://files.pythonhosted.org/packages/be/73/62129609d6ef33987351297d052d25ff042d2d9a3876767915e8dc75d183/pyobjc_framework_fsevents-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:028f6a3195c6a00ca29baef31019cb2ca0c54e799072f0f0246b391dc6c4c1d3", size = 13495 }, -] - -[[package]] -name = "pyobjc-framework-fskit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0b/6e/240f3ff4e1b6c51ddb48f0ebb7dfb25d6d328b474fc43891fbbd70a7e760/pyobjc_framework_fskit-12.0.tar.gz", hash = "sha256:90efb6c61aa27f7a0c7a9c09d465f5dac65ccfc35753e772be0394274fbad499", size = 42767 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/e2/7135fe17eee5aac9be025ecde20f28b225f1ab744dd23d2abe97ea7696ef/pyobjc_framework_fskit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7188a1b891c054c2626cfb68d489b36595cdefdde8f4bf189993dcdf1ce56daf", size = 20237 }, - { url = "https://files.pythonhosted.org/packages/0a/1b/7d33b5645ab26f51a0e69c19649880021c6e45176bb9cf52df5f41703103/pyobjc_framework_fskit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:decb8b41bed5a66f0ee7d4786a93bf81a965edd2775e6850ad5d30af374e8364", size = 20234 }, - { url = "https://files.pythonhosted.org/packages/c9/b2/4317f6786a2b0b0050378bf07a0ed09b613d1f3a8917aa6e9b2e5bd8ab80/pyobjc_framework_fskit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:75fbc58f0e7f2fbbb3fb0ac4e8338c238e363a0fffe0efc369badb832d690c2a", size = 20254 }, - { url = "https://files.pythonhosted.org/packages/82/7d/95b2effe20b05f8b99cc85838ab25c1da09d8ba5d80ae91a9d02c5a89942/pyobjc_framework_fskit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6b56bb27d6e628594c09fe61d7de42b4c63499fa402b2b486669a904519aea4c", size = 20265 }, - { url = "https://files.pythonhosted.org/packages/73/a6/341008b04ac28924e5e1e1c038f117e22e2edab11741941eb34a3d45db87/pyobjc_framework_fskit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:be56f2edc7f25dbf94cc579f84bd33bdf0278f742a95565cb5ae8a2305fba774", size = 20497 }, - { url = "https://files.pythonhosted.org/packages/70/c4/7e9fbbc5ab1e349f700e870fae04a67f6a9c58e5456cf3e93c4b397be2e0/pyobjc_framework_fskit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fb228d94776a7b8e73259302231fc0c9db2423d404e75fafc867e637b740f4a9", size = 20300 }, - { url = "https://files.pythonhosted.org/packages/b9/ea/fa33ebef6388bce4533bb5892638ff1b6dd571229ebb1e6b99bca363e3b4/pyobjc_framework_fskit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ae6a2c2c9dd0ba405f1c9cdc4dd63c22e713257baa73ae394dacaa84066b8ed4", size = 20546 }, -] - -[[package]] -name = "pyobjc-framework-fskit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a1/55/d00246d6e6d9756e129e1d94bc131c99eece2daa84b2696f6442b8a22177/pyobjc_framework_fskit-12.1.tar.gz", hash = "sha256:ec54e941cdb0b7d800616c06ca76a93685bd7119b8aa6eb4e7a3ee27658fc7ba", size = 42372 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/14/b76574b79afe10d6365915868c168c2c7d3825c6be212cadc55add85f319/pyobjc_framework_fskit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:521423e7dfc4d2c5c262ba1db0adeb0e0b60976a2d74dec285642914f50252b2", size = 20228 }, - { url = "https://files.pythonhosted.org/packages/e7/1a/5a0b6b8dc18b9dbcb7d1ef7bebdd93f12560097dafa6d7c4b3c15649afba/pyobjc_framework_fskit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:95b9135eea81eeed319dcca32c9db04b38688301586180b86c4585fef6b0e9cd", size = 20228 }, - { url = "https://files.pythonhosted.org/packages/6d/a9/0c47469fe80fa14bc698bb0a5b772b44283cc3aca0f67e7f70ab45e09b24/pyobjc_framework_fskit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:50972897adea86508cfee33ec4c23aa91dede97e9da1640ea2fe74702b065be1", size = 20250 }, - { url = "https://files.pythonhosted.org/packages/ce/99/eb30b8b99a4d62ff90b8aa66c6074bf6e2732705a3a8f086ba623fcc642f/pyobjc_framework_fskit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:528b988ea6af1274c81ff698f802bb55a12e32633862919dd4b303ec3b941fae", size = 20258 }, - { url = "https://files.pythonhosted.org/packages/50/b6/0579127ff0ad03f6b8f26a7e856e5c9998c9b0efb7ac944b27e23136acf7/pyobjc_framework_fskit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:55e3e00e51bc33d43ed57efb9ceb252abfceba0bd563dae07c7b462da7add849", size = 20491 }, - { url = "https://files.pythonhosted.org/packages/7f/4a/10a5d0a35ab18129289e0dfa2ab56469af2f1a9b2c8eeccd814d9c171e63/pyobjc_framework_fskit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d856df1b12ef79803e11904571411ffe5720ceb8840f489ca7ec977c1d789e57", size = 20291 }, - { url = "https://files.pythonhosted.org/packages/35/0b/cd618c1ea92f2bc8450bc3caa9c3f01ab54536a8d437b4df22f075b9d654/pyobjc_framework_fskit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fc9ccf7a0f483ce98274ed89bc91226c3f1aaa32cb380b4fdd8b258317cc8fb", size = 20538 }, -] - -[[package]] -name = "pyobjc-framework-gamecenter" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/71/46/f4a7d4aef99e82a65a6c769cf5eed4dad42c8a9a6b2bc72234590513990f/pyobjc_framework_gamecenter-12.0.tar.gz", hash = "sha256:c33467f4a8d93b1d6d3e719d6d11d373909ede6e86f61eaf5fa936d8d7e78cdf", size = 31860 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/ea/409dd1c2e0a39ffac89ef570a6a1bd99eea3f998407f4307d09e892594c4/pyobjc_framework_gamecenter-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2269f8006be7b94eb7aa56d885d80747817e30a6aee7b99e96cce0a6b9f3e3ef", size = 18834 }, - { url = "https://files.pythonhosted.org/packages/a3/0a/8b38d1d2ce1866ad6236d26762cc9ad75191381f151d917a8ec14de3c6c1/pyobjc_framework_gamecenter-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e2307e623f97228e3880c8315e9f5b536fbc0f78bba36197888e56c1286c7dc", size = 18829 }, - { url = "https://files.pythonhosted.org/packages/33/78/d363c9865329e66022b7cd97f965b3785008e13ec6a7ef075c4a56499c97/pyobjc_framework_gamecenter-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ba76966392c0e29168cdd651fce17b64d356718f5630feae028c702db5d8139a", size = 18872 }, - { url = "https://files.pythonhosted.org/packages/07/47/2c589fd453099d326bc077e7dff19ca41e9b68fc006ebe289a0724cd4dc8/pyobjc_framework_gamecenter-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:74633c2460344f44e88adff0e1c46a76622ea6b957dcd6959f2b930a99cd72ef", size = 18876 }, - { url = "https://files.pythonhosted.org/packages/1b/de/c21fc23b087dc399546dc82fd6cc0492eeb51990e7a4ff58bc65cfa1231c/pyobjc_framework_gamecenter-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d2091f1ba0703b2119163853e490d9c90c014194510155be58ea3eab8629473c", size = 19166 }, - { url = "https://files.pythonhosted.org/packages/50/5b/02252fcba11bcf20e4c772d60c2500a2f432c3bb1019f37a56152e438e16/pyobjc_framework_gamecenter-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a1375778604896b13d9b84ae93053db2cf052376ad9c63fc16431ef2211150d1", size = 18932 }, - { url = "https://files.pythonhosted.org/packages/f6/ea/fda2bc1a852688cb4866dc82d88532d28dc648182c3943c6c2f0654164f9/pyobjc_framework_gamecenter-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7f4c5073d52fe6d2ccf2a7ef5d39b283cd33c2f9357fc5d463abac66b77c3ac0", size = 19221 }, -] - -[[package]] -name = "pyobjc-framework-gamecenter" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d2/f8/b5fd86f6b722d4259228922e125b50e0a6975120a1c4d957e990fb84e42c/pyobjc_framework_gamecenter-12.1.tar.gz", hash = "sha256:de4118f14c9cf93eb0316d49da410faded3609ce9cd63425e9ef878cebb7ea72", size = 31473 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/e4/6a8223224d58e68ffef3809f6d6cf6bbabff89d373b27df9e56454f911b7/pyobjc_framework_gamecenter-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25f6a403352aaf8755a3874477fb70b1107ca28769e585541b52727ec50834be", size = 18827 }, - { url = "https://files.pythonhosted.org/packages/ca/17/6491f9e96664e05ec00af7942a6c2f69217771522c9d1180524273cac7cb/pyobjc_framework_gamecenter-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:30943512f2aa8cb129f8e1abf951bf06922ca20b868e918b26c19202f4ee5cc4", size = 18824 }, - { url = "https://files.pythonhosted.org/packages/16/ee/b496cc4248c5b901e159d6d9a437da9b86a3105fc3999a66744ba2b2c884/pyobjc_framework_gamecenter-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e8d6d10b868be7c00c2d5a0944cc79315945735dcf17eaa3fec1a7986d26be9b", size = 18868 }, - { url = "https://files.pythonhosted.org/packages/cd/b4/d89eaeae9057e5fc6264ad47247739160650dfd02b1e85a84d45036f25f9/pyobjc_framework_gamecenter-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c885eae6ad29abb8d3ad17a9068c920f778622bff5401df31842fdbcebdd84", size = 18873 }, - { url = "https://files.pythonhosted.org/packages/20/17/e5fe5a8f80288e61d70b6f9ccf05cffe6f1809736c11f172570af24216f6/pyobjc_framework_gamecenter-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9112d7aa8807d4b18a3f7190f310d60380640faaf405a1d0a9fd066c6420ae5b", size = 19154 }, - { url = "https://files.pythonhosted.org/packages/7c/fb/5b4f1bd82e324f2fb598d3131f626744b6fbc9f87feda894bc854058de66/pyobjc_framework_gamecenter-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c452f65aaa102c11196193f44d41061ce33a66be2e9cf79d890d8eb611f84aa9", size = 18923 }, - { url = "https://files.pythonhosted.org/packages/22/93/96305e0e96610a489604d15746a14f648b70dad44a8a7ca8a89ec31e12f4/pyobjc_framework_gamecenter-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:55352b0b4cf6803b3489a9dc63b6c177df462fbc4fee7902a4576af067e41714", size = 19214 }, -] - -[[package]] -name = "pyobjc-framework-gamecontroller" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4d/f2/f2496dbe861fff298f6f7d40f2aff085d04704afd87320fcf11227397efd/pyobjc_framework_gamecontroller-12.0.tar.gz", hash = "sha256:d01ede48c35ae62b27db500218a7c83b80a876c0ec2ac42c365f9b8e711fc8e2", size = 54982 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/9d/57fd6b9931e0aaa6d3823c89fc5570e8c25caef3401d52ce92f29e67ab5a/pyobjc_framework_gamecontroller-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:667367d5c5e8b2ecb7ff0d82ff701da6c01f513ebe899b0a5860aeb193b3e002", size = 20920 }, - { url = "https://files.pythonhosted.org/packages/1b/06/5023f57029180f625c2f7c837c826a61a49a9aa0088e154f343e64a3a957/pyobjc_framework_gamecontroller-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c1eadf51b2cfd9aed746d90e8d2d4eded32d3f6a06f5459daa4a1fd65ebd96fa", size = 20918 }, - { url = "https://files.pythonhosted.org/packages/dd/c3/de3bf0e6f2ad7a25cbb6cac65d7f9b21cc0369c2761204d17a97b8535a77/pyobjc_framework_gamecontroller-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2c09715ca3d4cf8f6ff51f7f9d98c22c790368d3c5cfbe6461fd0b393ccf73d4", size = 20954 }, - { url = "https://files.pythonhosted.org/packages/39/30/0d7e4c08e2f43c3c5a741619d3c3101c977e30a31fe4e1ce759c38711eeb/pyobjc_framework_gamecontroller-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:39f5381980247367b659f2d468df63223b11c8d9f43d11231a291d86b8a3aea9", size = 20963 }, - { url = "https://files.pythonhosted.org/packages/c7/54/5069dbbb9b84e88254a6ac28b6ed9e43e1df4319909375730dc9838652b2/pyobjc_framework_gamecontroller-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:163ecc202b1a43e4e4331a23eff3a5404834b6415cd4380fc5f8288daae00d4e", size = 21232 }, - { url = "https://files.pythonhosted.org/packages/af/3a/18c8bd006aad3b67ae822cb66370fbb0268b58127777190016a2bdb3196b/pyobjc_framework_gamecontroller-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2108d420e876cf324270f179d27df58b116cc22a95afee9975ad5fe589a2ea77", size = 21010 }, - { url = "https://files.pythonhosted.org/packages/bc/c1/d70e32b6add228de574e03fa9477bddac8706329b319a8d3e8b45e6400a6/pyobjc_framework_gamecontroller-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7ee5b5bfaf9f8a4ae7357902b04e2aa8c1fdc6f66cb867464dfc4d06a64a1de1", size = 21278 }, -] - -[[package]] -name = "pyobjc-framework-gamecontroller" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/14/353bb1fe448cd833839fd199ab26426c0248088753e63c22fe19dc07530f/pyobjc_framework_gamecontroller-12.1.tar.gz", hash = "sha256:64ed3cc4844b67f1faeb540c7cc8d512c84f70b3a4bafdb33d4663a2b2a2b1d8", size = 54554 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/50/20/998ad37fe6640b1ccb91bb9bb99e9baefd95238d8b2de43d4a0e07d5b80a/pyobjc_framework_gamecontroller-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:38b290dfb8f5999c599b883fd13d3cade78f26111d010bc003b19ee400182aa5", size = 20916 }, - { url = "https://files.pythonhosted.org/packages/e4/dc/1d8bd4845a46cb5a5c1f860d85394e64729b2447bbe149bb33301bc99056/pyobjc_framework_gamecontroller-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2633c2703fb30ce068b2f5ce145edbd10fd574d2670b5cdee77a9a126f154fec", size = 20913 }, - { url = "https://files.pythonhosted.org/packages/06/28/9f03d0ef7c78340441f78b19fb2d2c952af04a240da5ed30c7cf2d0d0f4e/pyobjc_framework_gamecontroller-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:878aa6590c1510e91bfc8710d6c880e7a8f3656a7b7b6f4f3af487a6f677ccd5", size = 20949 }, - { url = "https://files.pythonhosted.org/packages/9d/7c/4553f7c37eedef4cd2e6f0d9b6c63da556ed2fbe7dd2a79735654e082932/pyobjc_framework_gamecontroller-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2105b4309222e538b9bccf906d24f083c3cbf1cd1c18b3ae6876e842e84d2163", size = 20956 }, - { url = "https://files.pythonhosted.org/packages/ad/ed/19e27404ce87256642431a60914ef2cb0578142727981714d494970e21c3/pyobjc_framework_gamecontroller-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a772cc9fbe09bcc601abcc36855a70cbad4640bd3349c1d611c09fcc7e45b73b", size = 21226 }, - { url = "https://files.pythonhosted.org/packages/38/0a/4386a2436b7ae4df62c30b8a96d89be15c6c9e302b89fc7e7cd19ba3429c/pyobjc_framework_gamecontroller-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3404a6488bb498989304aa87ce6217c973505a627b6eb9ae7884fd804569b8e4", size = 21005 }, - { url = "https://files.pythonhosted.org/packages/c1/94/7e45309ddb873b7ea4ac172e947021a9ecdb7dc0b58415d1574abcd87cce/pyobjc_framework_gamecontroller-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f4a16cd469aec142ec8e199d52a797f771441b3ea7198d21f6d75c2cc218b4e6", size = 21266 }, -] - -[[package]] -name = "pyobjc-framework-gamekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ad/aa/2734bdd000970d8884a77714c5adebba684c982821f9293205e2cb71b429/pyobjc_framework_gamekit-12.0.tar.gz", hash = "sha256:381724769aa57428eefdb11f1fae9cf6933061723a5806ac41dc63553850f18c", size = 64236 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/5b/b62cc7c7a8294e5bfbf74384629c638274c84af98d8337b30e727c5b736f/pyobjc_framework_gamekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf12e6f5274e442a67d3c238c812f8fc8edf3587ce2e06c6f7d846aa4a66d2c6", size = 22466 }, - { url = "https://files.pythonhosted.org/packages/82/b1/6c5a4a147605bb6563c35487fa08bdb9ce9fa6223ed8bfe6df9af277c973/pyobjc_framework_gamekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:21f13014588ff9f1e9c680ff602d50f021a25017825e6101a53be15ea27a547e", size = 22468 }, - { url = "https://files.pythonhosted.org/packages/ff/03/7e0571f56c394e148207af9b1e1e158927f42095b189cd7b231948178206/pyobjc_framework_gamekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:981b7009964949076b64aeb2c467127c789cfa0377a5637352431188613f0a15", size = 22496 }, - { url = "https://files.pythonhosted.org/packages/42/07/f442ace3c1bee84e5f317f57d375f101b59e5d932033272320b8e4a725ac/pyobjc_framework_gamekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4f4a4b58ebf5986c941a98c828431cad9495f5483041605dd5f114c628212519", size = 22513 }, - { url = "https://files.pythonhosted.org/packages/fe/ae/6b2901d9c360648c5ad61b72d74eda8b512d6da77226fa87c5a62af3168b/pyobjc_framework_gamekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:28fdb8992ec926f67159700637495cca0271519c278e22f410fb65260404df6c", size = 22805 }, - { url = "https://files.pythonhosted.org/packages/3c/d2/5d413a8cccd68cb5aa8a10f461aa426f3d93dfb39204e632063f71ba66c5/pyobjc_framework_gamekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:08414996660aa25f86fe4583649f702769a9600ba5bd5c37152e1bee36904df5", size = 22545 }, - { url = "https://files.pythonhosted.org/packages/04/f8/58b74fd7b4f321d6d028754fc50effa90b9b2161af2a26d3641fb9b192f5/pyobjc_framework_gamekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:604ca75774845f99b0781290319b642db6e95810275423cc7f1bb1bfbef72295", size = 22859 }, -] - -[[package]] -name = "pyobjc-framework-gamekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/52/7b/d625c0937557f7e2e64200fdbeb867d2f6f86b2f148b8d6bfe085e32d872/pyobjc_framework_gamekit-12.1.tar.gz", hash = "sha256:014d032c3484093f1409f8f631ba8a0fd2ff7a3ae23fd9d14235340889854c16", size = 63833 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/dc/0cd33dcfc9730a8ba22e848d431a7212a7aa0b4559101c389ae9bab77c7e/pyobjc_framework_gamekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b15492801dafcbb569dee8c58d26e16ce06b33912872e85dfd50cf39b8f98f1e", size = 22457 }, - { url = "https://files.pythonhosted.org/packages/06/47/d3b78cf57bc2d62dc1408aaad226b776d167832063bbaa0c7cc7a9a6fa12/pyobjc_framework_gamekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb263e90a6af3d7294bc1b1ea5907f8e33bb77d62fb806696f8df7e14806ccad", size = 22463 }, - { url = "https://files.pythonhosted.org/packages/c4/05/1c49e1030dc9f2812fa8049442158be76c32f271075f4571f94e4389ea86/pyobjc_framework_gamekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2eee796d5781157f2c5684f7ef4c2a7ace9d9b408a26a9e7e92e8adf5a3f63d7", size = 22493 }, - { url = "https://files.pythonhosted.org/packages/8a/7d/65b16b18dc15283d6f56df5ebf30ae765eaf1f8e67e6eb30539581fe9749/pyobjc_framework_gamekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ad14393ac496a4cb8008b6172d536f5c07fc11bb7b00fb541b044681cf9e4a34", size = 22505 }, - { url = "https://files.pythonhosted.org/packages/98/19/433595ff873684e0df73067b32aba6fc4b360d3ed552444115285a5d969a/pyobjc_framework_gamekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:97e41b4800be30cb3e6a88007b6f741cb18935467d1631537ac23b918659900e", size = 22798 }, - { url = "https://files.pythonhosted.org/packages/05/39/4a9a51cae1ced9d0f74ca6c68e7304b9b1c2d184fed11b736947535ba59f/pyobjc_framework_gamekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:14080fdea98ec01c3e06260f1f5b31aaf59c78c2872fe8b843e17fd0ce151fa4", size = 22536 }, - { url = "https://files.pythonhosted.org/packages/0e/0f/282f10f5ebd427ec1774ef639a467e5b26c5174f473e8da24ac084139a7c/pyobjc_framework_gamekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9867991539dfc70b52f0ee8ce19bc661d0706c7f64c35417e97ca7c90e3158c0", size = 22845 }, -] - -[[package]] -name = "pyobjc-framework-gameplaykit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-spritekit", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/09/d9/d506dde3818c09295f11af52176cf3a6a5d00333cea19069ff44c44a4a89/pyobjc_framework_gameplaykit-12.0.tar.gz", hash = "sha256:e0ff1cac933f5686b62c06766fca7e740932d93fb7e1367e18ab3be082a810dc", size = 41918 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/63/e843d3aab223d9eef0af41d4912bf1f1d568c3580125829b7016d600acac/pyobjc_framework_gameplaykit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:600df7abff76e18f1fdee79ab76acf89b9d631f7bbbe77a931c04d7eef11da9f", size = 13137 }, - { url = "https://files.pythonhosted.org/packages/3b/31/03e40bc9896c367f08cf220f740e47225beaeca35d4845abe98e67cb5b12/pyobjc_framework_gameplaykit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ca24ed4b4f791751799c25b8288b498c2702e9b2d38ee8884ef10f9da96d2f0", size = 13136 }, - { url = "https://files.pythonhosted.org/packages/fb/83/37bcc458ec68c0ea36e8151f0f2859f936fe7b4bbd201c44434d7c52cdff/pyobjc_framework_gameplaykit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:35d08927d06f135f2d3149a5944095c0853624d27e011d52b318409b8ff0c080", size = 13161 }, - { url = "https://files.pythonhosted.org/packages/33/88/3f4fa760b3acb2680bd3e165a68b130f447e9458f2ba9f75fd9aa7ab2023/pyobjc_framework_gameplaykit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:41b865b484fa885dc5fe26621c599f9a81ab36a8076a23955c73ca2d1a912b15", size = 13174 }, - { url = "https://files.pythonhosted.org/packages/93/66/1fcbc04b3e48d3843fcbd53486a9fe072da7560c7b3089c48cc35a1bd97a/pyobjc_framework_gameplaykit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2d4a3fb37cb4393f7bda1e9ced78f7a83962b49c846c3357b768cad7a111b841", size = 13389 }, - { url = "https://files.pythonhosted.org/packages/42/30/ab2f6c35603b01f4ef7409c6f850d13cd6323d2c24e87e73c60320f922cd/pyobjc_framework_gameplaykit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:74fdd8a02deefbbb000ed614a859b153df45245c35d4a27e7e8194f2c7532501", size = 13179 }, - { url = "https://files.pythonhosted.org/packages/53/7c/e2753b7dbf88249f3147b8b14da9aac335b0d93ea12015b1b2f10a9490ba/pyobjc_framework_gameplaykit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9515b9fc5f58d0e9331ec9c4df10e9ab2374556bf9957bf1fdba4d553cf8715d", size = 13375 }, -] - -[[package]] -name = "pyobjc-framework-gameplaykit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-spritekit", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e2/11/c310bbc2526f95cce662cc1f1359bb11e2458eab0689737b4850d0f6acb7/pyobjc_framework_gameplaykit-12.1.tar.gz", hash = "sha256:935ebd806d802888969357946245d35a304c530c86f1ffe584e2cf21f0a608a8", size = 41511 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/0f/9ff71cf1871603d12f19a11b6287c2d6dff9d250efff5e40453003bac796/pyobjc_framework_gameplaykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1af3963897c1ff2dfbcc6782ff162d6bf34488f6736e60cfc73411fdfaba2b31", size = 13129 }, - { url = "https://files.pythonhosted.org/packages/3b/84/7a4a2c358770f5ffdb6bdabb74dcefdfa248b17c250a7c0f9d16d3b8d987/pyobjc_framework_gameplaykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b2fb27f9f48c3279937e938a0456a5231b5c89e53e3199b9d54009a0bbd1228a", size = 13125 }, - { url = "https://files.pythonhosted.org/packages/35/1f/e5fe404f92ec0f9c8c37b00d6cb3ba96ee396c7f91b0a41a39b64bfc2743/pyobjc_framework_gameplaykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:309b0d7479f702830c9be92dbe5855ac2557a9d23f05f063caf9d9fdb85ff5f0", size = 13150 }, - { url = "https://files.pythonhosted.org/packages/08/c9/d90505bed51b487d7a8eff54a51dda0d9b8e2d76740a99924b5067b58062/pyobjc_framework_gameplaykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:947911902e0caf1d82dedae8842025891d57e91504714a7732dc7c4f80d486a1", size = 13164 }, - { url = "https://files.pythonhosted.org/packages/ad/42/9d5ac9a4398f1d1566ce83f16f68aeaa174137de78bec4515ed927c24530/pyobjc_framework_gameplaykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3218de7a56ac63a47ab7c50ce30592d626759196c937d20426a0ea74091e0614", size = 13383 }, - { url = "https://files.pythonhosted.org/packages/38/a5/e10365b7287eb4a8e83275f04942d085f8e87da0a65c375df14a78df23c8/pyobjc_framework_gameplaykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:786036bdf266faf196b29b23e123faf76df5f3e90f113e2a7cdd4d04af071dc2", size = 13170 }, - { url = "https://files.pythonhosted.org/packages/a3/65/eb00ab56a00f048d1638bb819f61d3e8221d72088947070ac9367bc17efa/pyobjc_framework_gameplaykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d58c0cc671ac8b80a4bf702efabbb9c0a42020999b87efed162b71830db005a9", size = 13363 }, -] - -[[package]] -name = "pyobjc-framework-gamesave" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/b6/de69ddc08ea89a6e2dc3cb64b0ba468996b43b6d91e65463d66530f1cef6/pyobjc_framework_gamesave-12.0.tar.gz", hash = "sha256:2412a243b7a06afa08c46003bbe75790d8cfae2761f55187dd54b082da7ca62f", size = 12714 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/84/27dab140da6102f23f1666630d876446152e1d28b35920e65797496d4222/pyobjc_framework_gamesave-12.0-py2.py3-none-any.whl", hash = "sha256:a5be943b5969848b44d2132e33ed88720aa4c389916e41f909e3a7a144ea71cf", size = 3697 }, -] - -[[package]] -name = "pyobjc-framework-gamesave" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1b/1f/8d05585c844535e75dbc242dd6bdfecfc613d074dcb700362d1c908fb403/pyobjc_framework_gamesave-12.1.tar.gz", hash = "sha256:eb731c97aa644e78a87838ed56d0e5bdbaae125bdc8854a7772394877312cc2e", size = 12654 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/59/ec/93d48cb048a1b35cea559cc9261b07f0d410078b3af029121302faa410d0/pyobjc_framework_gamesave-12.1-py2.py3-none-any.whl", hash = "sha256:432e69f8404be9290d42c89caba241a3156ed52013947978ac54f0f032a14ffd", size = 3689 }, -] - -[[package]] -name = "pyobjc-framework-healthkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/24/8c/12fa3d73598d80f2ce77bc0ab1a344e89fd8b5db93a36c74e1c925cf632a/pyobjc_framework_healthkit-12.0.tar.gz", hash = "sha256:4e47b84ed39f322e90a45d39eb91ddcde9fffbf76c75b6e700b80258db3ec58b", size = 92173 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/03/458ee1847f4f131217c3dede1bf06002c702d72cbefc5942cf42168f1e35/pyobjc_framework_healthkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:10aaac63f6c8b338e7741e276e6757142675b1b11d5ab49c315b7f28b232e86b", size = 20795 }, - { url = "https://files.pythonhosted.org/packages/5a/c0/915497d4e19c07ac14d36fb9ca333b79dc7f7309bac056e143defdeaee35/pyobjc_framework_healthkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b16f091a36a4606023e7f69758406bb08c2c66d8157ae04f011e3e054d0d4ea", size = 20797 }, - { url = "https://files.pythonhosted.org/packages/96/4e/d2a43c2d09cda2e514ee0837ff0cd86caaa876cfd9ee6afd03ba180ecd4d/pyobjc_framework_healthkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eb437fcbde6d622cca1c6735acdf10922e0098aa7266487e1504bb93225992ba", size = 20804 }, - { url = "https://files.pythonhosted.org/packages/7f/bd/369f2a1adad473cbe15942f81d829a21fee04af69a21aa23937405c10173/pyobjc_framework_healthkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:75d1aa170b3d2b0d6f0ad91f8fa9426765a86a7a747d4cdf4aec7714cce90c3e", size = 20822 }, - { url = "https://files.pythonhosted.org/packages/75/45/fba110652b41849cd96080b35f94482be4b232236c6f309125a77dadc6ac/pyobjc_framework_healthkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c8f59013b88da01ea677cce7e58d5885bf6663397f531ec18693466b968403a7", size = 20991 }, - { url = "https://files.pythonhosted.org/packages/49/8f/6810a866a73d92163dd998c1a2dd67b76df54ff943c1a138137815e36c6f/pyobjc_framework_healthkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:078563e7fc5a4f492ea972b1d86b5b10ec20484bfb798e18c92c7c6ef252697d", size = 20878 }, - { url = "https://files.pythonhosted.org/packages/9a/5c/fdb299a61f6bad7b2d0b73197c2f9ff9fc5f4e6544ab445dee4b823debae/pyobjc_framework_healthkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4680698a20a3baa869bb2a96a14a5588453518ffa83abf67c72a404ff91e94ee", size = 21055 }, -] - -[[package]] -name = "pyobjc-framework-healthkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/af/67/436630d00ba1028ea33cc9df2fc28e081481433e5075600f2ea1ff00f45e/pyobjc_framework_healthkit-12.1.tar.gz", hash = "sha256:29c5e5de54b41080b7a4b0207698ac6f600dcb9149becc9c6b3a69957e200e5c", size = 91802 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/d9/2bbcb7816a46ede9bc99239208ec4787188ed522a7a2983483dd8b72acea/pyobjc_framework_healthkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1850c4f079374aaa3e91f22ab22b83817872460cc3a9c5310fe18c6140dc307", size = 20791 }, - { url = "https://files.pythonhosted.org/packages/1e/37/b23d3c04ee37cbb94ff92caedc3669cd259be0344fcf6bdf1ff75ff0a078/pyobjc_framework_healthkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e67bce41f8f63c11000394c6ce1dc694655d9ff0458771340d2c782f9eafcc6e", size = 20785 }, - { url = "https://files.pythonhosted.org/packages/65/87/bb1c438de51c4fa733a99ce4d3301e585f14d7efd94031a97707c0be2b46/pyobjc_framework_healthkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:15b6fc958ff5de42888b18dffdec839cb36d2dd8b82076ed2f21a51db5271109", size = 20799 }, - { url = "https://files.pythonhosted.org/packages/40/f8/4bbaf71a11a99649a4aa9f4ac28d94a2bf357cd4c88fba91439000301cf0/pyobjc_framework_healthkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c57ba8e3cce620665236d9f6b77482c9cfb16fe3372c8b6bbabc50222fb1b790", size = 20812 }, - { url = "https://files.pythonhosted.org/packages/e9/ef/4461f34f42e8f78b941161df7045d27e48d73d203847a21921b5a36ffe68/pyobjc_framework_healthkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b2a0890d920015b40afe8ecda6c541840d20b4ae6c7f2daaa9efbaafae8cc1bc", size = 20980 }, - { url = "https://files.pythonhosted.org/packages/f2/6f/99933449e0cb8d6424de8e709fe423427efc634f75930885a723debcce11/pyobjc_framework_healthkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1f10a3abf6d5a326192e96343e7e1d9d16efa0cf4b39266335e385455680bc69", size = 20867 }, - { url = "https://files.pythonhosted.org/packages/63/ad/7ea9a3bc54c092efb5dbf9b571dd6a1a064712ce434e80c42e2830f88bb5/pyobjc_framework_healthkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:54f02b673b2ea8ec8cfa17cac0c377435cbf89a15d5539d4699fa8b12abc42de", size = 21039 }, -] - -[[package]] -name = "pyobjc-framework-imagecapturecore" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/a7/52fa4a0092feaa2c0b72256b3593e03028a8e491344e64c074bdbf33d926/pyobjc_framework_imagecapturecore-12.0.tar.gz", hash = "sha256:36d12a818660de257635b338f286083d09a5b34e4ebd3bc6aae4b979028585cd", size = 46807 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/be/8f/df8b8a520c8a216d48db8206f389f5f4126025fba32adb10cc6fea295b85/pyobjc_framework_imagecapturecore-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3f38d6fa29fbfd9776274e9d00e6eeb805710e5b608fdb7457d6a7ead1dd9622", size = 15993 }, - { url = "https://files.pythonhosted.org/packages/8d/0d/8fc4d7fe9f2bb48748355c7ab87a2e12acfbc715f6a9fadec57ed1e854aa/pyobjc_framework_imagecapturecore-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:42610501ebd9671c11a2dddbb06501fe2c79b35536c90d0854eb543568d4f259", size = 15993 }, - { url = "https://files.pythonhosted.org/packages/1b/55/5984ba8122f3b703d1460b4a73e4aba0c6997b82bfc160458c62a88e1015/pyobjc_framework_imagecapturecore-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:26483df9fdb63d156642471c9031d75720cae654efbb4f264ebe96f532913290", size = 16020 }, - { url = "https://files.pythonhosted.org/packages/51/94/acb74f94acf23ea16ff28b7d55e1872b4ae0c15b105bc49785c67caf5cac/pyobjc_framework_imagecapturecore-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f4889fbcc17948335e2be5dcaf40d171c6f7ea514bb9994dbb3519a4d6a0de5d", size = 16032 }, - { url = "https://files.pythonhosted.org/packages/f5/83/51feaf4fd51624c3800d235fd70e791b245867296090d4b6d4675923e9a6/pyobjc_framework_imagecapturecore-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bd8d7db7a7acb97fa363e800fd47cf0d026db17fc635ff6c2306a0ba855ae6db", size = 16222 }, - { url = "https://files.pythonhosted.org/packages/12/80/e4d7f1ef9664e8f01af06b0c025b77c7362ab319d8b20cf33a2700598b34/pyobjc_framework_imagecapturecore-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c94f3514bc9ed4288b0568f05b18cbc2138b7656c51e18316a7334f29a472b97", size = 16029 }, - { url = "https://files.pythonhosted.org/packages/e3/0a/13ffde2aa24224f93ed7cba6381b58fb7312475c6e871ee5cdf393be3541/pyobjc_framework_imagecapturecore-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e04142bec0c3b042c12efafe8948458ff22ef63cd8622cdb13fa84912ac99e2b", size = 16218 }, -] - -[[package]] -name = "pyobjc-framework-imagecapturecore" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6d/a1/39347381fc7d3cd5ab942d86af347b25c73f0ddf6f5227d8b4d8f5328016/pyobjc_framework_imagecapturecore-12.1.tar.gz", hash = "sha256:c4776c59f4db57727389d17e1ffd9c567b854b8db52198b3ccc11281711074e5", size = 46397 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/f0/249b7897425f3dbcde1df6c3e0b23112966ff026125747030e3e66e1ba2d/pyobjc_framework_imagecapturecore-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7cb050fcbfc3cd20cf0427523f080939f6d815cd85f58a2ebcac930567764384", size = 15986 }, - { url = "https://files.pythonhosted.org/packages/b4/6b/b34d5c9041e90b8a82d87025a1854b60a8ec2d88d9ef9e715f3a40109ed5/pyobjc_framework_imagecapturecore-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:64d1eb677fe5b658a6b6ed734b7120998ea738ca038ec18c4f9c776e90bd9402", size = 15983 }, - { url = "https://files.pythonhosted.org/packages/50/13/632957b284dec3743d73fb30dbdf03793b3cf1b4c62e61e6484d870f3879/pyobjc_framework_imagecapturecore-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a2777e17ff71fb5a327a897e48c5c7b5a561723a80f990d26e6ed5a1b8748816", size = 16012 }, - { url = "https://files.pythonhosted.org/packages/f9/32/2d936320147f299d83c14af4eb8e28821d226f2920d2df3f7a3b3daf61dc/pyobjc_framework_imagecapturecore-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ae57b54e7b92e2efb40b7346e12d7767f42ed2bcf8f050cd9a88a9926a1e387", size = 16025 }, - { url = "https://files.pythonhosted.org/packages/09/5a/7bfa64b0561c7eb858dac9b2e0e3a50000e9dc50416451e8ae40b316eb8f/pyobjc_framework_imagecapturecore-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:08f8ed5434ee5cc7605e71227c284c0c3fa0a32a6d83e1862e7870543a65a630", size = 16213 }, - { url = "https://files.pythonhosted.org/packages/50/fc/feb035f2866050737f8315958e31cfe2bf5d6d4d046a7268d28b94cd8155/pyobjc_framework_imagecapturecore-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b7a7feeb0b53f5b0e0305c5c41f6b722d5f8cfca506c49678902244cd339ac10", size = 16028 }, - { url = "https://files.pythonhosted.org/packages/38/58/58c3d369d90077eff896c234755ac6814b3fa9f00caeca2ec391555b1a22/pyobjc_framework_imagecapturecore-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fcfcc907673331cc4be3ea63fce6e1346620ac74661a19566dfcdf855bb8eee", size = 16207 }, -] - -[[package]] -name = "pyobjc-framework-inputmethodkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/49/c58dc9dd9dfce812cadcafb1da8bed88af88fe6f10978a0522ab4b96ceb5/pyobjc_framework_inputmethodkit-12.0.tar.gz", hash = "sha256:a5c16a003f0a08e7ac005a6c4d43074bb5e4cf587d5e57a4f11c47232349962d", size = 23449 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/16/30/212bc1e6226b498baac1de5407d1abb1c696da2115a8d2290bf5d86b5a33/pyobjc_framework_inputmethodkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f50348910a3828d8d5a253318aa2e0f92223e5327ddac8964d8d1ca8a2765650", size = 9507 }, - { url = "https://files.pythonhosted.org/packages/d5/36/7b8be5c8202cb3e184542dd72dcee00cf446ecc14327851630cd4cf30db3/pyobjc_framework_inputmethodkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:95194c1df58d683cf677eb160c134140e93e398c43b9c0d03b0e764f9cf79544", size = 9512 }, - { url = "https://files.pythonhosted.org/packages/87/76/4e53c1f2519dda7b9ecc06c3dfb31711a07e08a4c543fccf51bbb82c842a/pyobjc_framework_inputmethodkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:171b6dcf88065cc50d7615f18ec90a9c3ade4298ec829c0cd64229b5d7674a2d", size = 9521 }, - { url = "https://files.pythonhosted.org/packages/08/fd/c6237dbc593158edfa7993a51341009bdc3a0daa1c2d2fd191d6e9fbaad6/pyobjc_framework_inputmethodkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fff98e1ba95f5f4ef69d59e791820497498f72a53ef1abf561c819d933273bd7", size = 9533 }, - { url = "https://files.pythonhosted.org/packages/da/81/c4c2237988738a19015637053a288cc07eca452065e8430f0456f63c4047/pyobjc_framework_inputmethodkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5648177af6040ac5b9c1c12c35862b4a3ab8b7819b609b9543644deb6f7a7d62", size = 9700 }, - { url = "https://files.pythonhosted.org/packages/6e/65/ff921650fa5647bb36cf5281f6c6b16fd3da1f0564360481f9b5a79a7516/pyobjc_framework_inputmethodkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:44f5dec871e2555fa82901d56506b200ec80556acbf7041588dfa8fdad5adfce", size = 9585 }, - { url = "https://files.pythonhosted.org/packages/7e/89/87cf9de076846929f55f779333967987755c3d7d1caa15fa04f464032ff6/pyobjc_framework_inputmethodkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a8b8c3b00c07109923ac48e495ae610c970d7a9c6698b71c3697a5b47d42e985", size = 9757 }, -] - -[[package]] -name = "pyobjc-framework-inputmethodkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5d/b8/d33dd8b7306029bbbd80525bf833fc547e6a223c494bf69a534487283a28/pyobjc_framework_inputmethodkit-12.1.tar.gz", hash = "sha256:f63b6fe2fa7f1412eae63baea1e120e7865e3b68ccfb7d8b0a4aadb309f2b278", size = 23054 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/8a/16b91f6744fcb6e978bb2eb9dd9c6da55c55e677087dcc426f34b1460795/pyobjc_framework_inputmethodkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e655947e314e6fe743ce225fc3170466003030b0186b8a7db161b54e87ee5c0e", size = 9500 }, - { url = "https://files.pythonhosted.org/packages/a7/04/1315f84dba5704a4976ea0185f877f0f33f28781473a817010cee209a8f0/pyobjc_framework_inputmethodkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4e02f49816799a31d558866492048d69e8086178770b76f4c511295610e02ab", size = 9502 }, - { url = "https://files.pythonhosted.org/packages/01/c2/59bea66405784b25f5d4e821467ba534a0b92dfc98e07257c971e2a8ed73/pyobjc_framework_inputmethodkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0b7d813d46a060572fc0c14ef832e4fe538ebf64e5cab80ee955191792ce0110", size = 9506 }, - { url = "https://files.pythonhosted.org/packages/9e/ec/502019d314729e7e82a7fa187dd52b6f99a6097ac0ab6dc675ccd60b5677/pyobjc_framework_inputmethodkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b5c7458082e3f7e8bb115ed10074ad862cc6566da7357540205d3cd1e24e2b9f", size = 9523 }, - { url = "https://files.pythonhosted.org/packages/47/68/76a75461de5b9c195a6b5081179578fef7136f19ffc4990f6591cabae591/pyobjc_framework_inputmethodkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a4e782edd8e59b1ea81ea688d27edbf98cc5c8262e081cb772cf8c36c74733df", size = 9694 }, - { url = "https://files.pythonhosted.org/packages/76/f8/6915cc42826e1178c18cc9232edda15ef5d1f57950eef8fd6f8752853b9c/pyobjc_framework_inputmethodkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3b27c166574ad08d196129c979c5eec891cd630d249c75a970e26f3949578cb9", size = 9574 }, - { url = "https://files.pythonhosted.org/packages/97/36/6d3debe09cf1fbcb40b15cc29e7cdc04b07a2f14815d0ffcdcb4a3823ead/pyobjc_framework_inputmethodkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1f065cb44041821a1812861e13ee1eca4aee37b57c8de0ce7ffd7e55f7af8907", size = 9746 }, -] - -[[package]] -name = "pyobjc-framework-installerplugins" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fd/65/403d3d6244f8e85201b232b37aacde4d6e80895b7d709047ce71b3f5e830/pyobjc_framework_installerplugins-12.0.tar.gz", hash = "sha256:fbd5824e282f95999ae14b0128ad7bc3dad4b44a067016a8e3750f0252f4d6b7", size = 25313 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/d5/be8217352ebb3d78b600bd85fe274f44f642fd8268b3bca4335caaa7da85/pyobjc_framework_installerplugins-12.0-py2.py3-none-any.whl", hash = "sha256:60950cc9dd4fd0f5e4e8d4cbcf3197765f20b390a8fbfd91478c955e6d90ba11", size = 4826 }, -] - -[[package]] -name = "pyobjc-framework-installerplugins" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e7/60/ca4ab04eafa388a97a521db7d60a812e2f81a3c21c2372587872e6b074f9/pyobjc_framework_installerplugins-12.1.tar.gz", hash = "sha256:1329a193bd2e92a2320a981a9a421a9b99749bade3e5914358923e94fe995795", size = 25277 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/99/1f/31dca45db3342882a628aa1b27707a283d4dc7ef558fddd2533175a0661a/pyobjc_framework_installerplugins-12.1-py2.py3-none-any.whl", hash = "sha256:d2201c81b05bdbe0abf0af25db58dc230802573463bea322f8b2863e37b511d5", size = 4813 }, -] - -[[package]] -name = "pyobjc-framework-instantmessage" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/30/e4/fe583666b7f99aa14d8656600823668d008f52ccce0476c0c9ab2d2ada46/pyobjc_framework_instantmessage-12.0.tar.gz", hash = "sha256:8a9fa19a03c6c56a4e366422259d46a5462ddee23acdb44e74f71e3f923e1aa5", size = 31255 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/0e/0e768739befaffe849d1b3aaf2b7078c04d6b2b3e14fb37c53b44c09a291/pyobjc_framework_instantmessage-12.0-py2.py3-none-any.whl", hash = "sha256:9b0068f669e735f59b5d5ccb44861275530cb4bc4aca5e1fd7179828a23f500d", size = 5446 }, -] - -[[package]] -name = "pyobjc-framework-instantmessage" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d4/67/66754e0d26320ba24a33608ca94d3f38e60ee6b2d2e094cb6269b346fdd4/pyobjc_framework_instantmessage-12.1.tar.gz", hash = "sha256:f453118d5693dc3c94554791bd2aaafe32a8b03b0e3d8ec3934b44b7fdd1f7e7", size = 31217 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/38/6ae95b5c87d887c075bd5f4f7cca3d21dafd0a77cfdde870e87ca17579eb/pyobjc_framework_instantmessage-12.1-py2.py3-none-any.whl", hash = "sha256:cd91d38e8f356afd726b6ea8c235699316ea90edfd3472965c251efbf4150bc9", size = 5436 }, -] - -[[package]] -name = "pyobjc-framework-intents" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e1/b6/d2692a8710a9c2c605f8449c90d38cb454ec5e4d35731a97beceed1051f2/pyobjc_framework_intents-12.0.tar.gz", hash = "sha256:77e778574911fe4db80256094260f959c60ad9d67f9cd3d34c136fc37700bba2", size = 132672 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/47/eb/4820fd4691328845e2a7c1ca9c1f75836bcc4ef8322443d8c5ab979199a0/pyobjc_framework_intents-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b969eca213ef30206867727d01d4e97913381986db09166600301c57982f21c5", size = 32140 }, - { url = "https://files.pythonhosted.org/packages/c8/4e/dcdcdfd8a09c9fa6cd2574ccc1475eedce832c7bfe2981d2c8a8e0eb7e09/pyobjc_framework_intents-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a2b97a3bbf9dd987a0441028e58a0ba6a95772c41a72347f0c27ebd857e20225", size = 32144 }, - { url = "https://files.pythonhosted.org/packages/88/c6/c705055cb7429adf418718722f051d407d702648eede2fcc85ed125e2994/pyobjc_framework_intents-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7cb3fb5f0877c6562cfd5189323c0eb2d7378bd8d67da01fc24b04e00a47bbea", size = 32166 }, - { url = "https://files.pythonhosted.org/packages/0a/d5/e1561117512c7a29d98120362b9769aff4d1747f809053fa2c4973042257/pyobjc_framework_intents-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b5da926124f9e4171438bd19ce80caee6a53fd3cccfd6c1d61874bf24871558a", size = 32177 }, - { url = "https://files.pythonhosted.org/packages/04/eb/467619274e835a8c0bcd39293f2bcfcf44bb34c35b9773669a37ababad0d/pyobjc_framework_intents-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7fc800d5055eed336d772bc3ddda92f50db6c9b11fe2c8225d1c1e35ca0d7f27", size = 32419 }, - { url = "https://files.pythonhosted.org/packages/68/74/09f806440a5164ad2506b3acd6bf799d5a66ed2a09c4d808b8f980670588/pyobjc_framework_intents-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9c42a92611daad86ff5b1bce44d37f072ddabe06fc5e6084b676a5d380c501a6", size = 32200 }, - { url = "https://files.pythonhosted.org/packages/93/0c/edbdd9d3b4f1160c95d4ef0fa27ecd3e87afb81748e1e84a7f2b0626815d/pyobjc_framework_intents-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:43093cab2ad5482314dde83c2ee88a90fccbc8a21942b0884ff18a6f4ce2bd6d", size = 32484 }, -] - -[[package]] -name = "pyobjc-framework-intents" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f1/a1/3bab6139e94b97eca098e1562f5d6840e3ff10ea1f7fd704a17111a97d5b/pyobjc_framework_intents-12.1.tar.gz", hash = "sha256:bd688c3ab34a18412f56e459e9dae29e1f4152d3c2048fcacdef5fc49dfb9765", size = 132262 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/4d/6ce09716747342e5833fb7b1b428017566d9e1633481159688ea955ab578/pyobjc_framework_intents-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4dcca96da5b302583e3f8792f697e1d60a86f62b16ee07e9db11ce4186ca243c", size = 32137 }, - { url = "https://files.pythonhosted.org/packages/d0/25/648db47b9c3879fa50c65ab7cc5fbe0dd400cc97141ac2658ef2e196c0b6/pyobjc_framework_intents-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dc68dc49f1f8d9f8d2ffbc0f57ad25caac35312ddc444899707461e596024fec", size = 32134 }, - { url = "https://files.pythonhosted.org/packages/7a/90/e9489492ae90b4c1ffd02c1221c0432b8768d475787e7887f79032c2487a/pyobjc_framework_intents-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ea9f3e79bf4baf6c7b0fd2d2797184ed51a372bf7f32974b4424f9bd067ef50", size = 32156 }, - { url = "https://files.pythonhosted.org/packages/74/83/6b03ac6d5663be41d76ab69412a21f94eff69c67ffa13516a91e4b946890/pyobjc_framework_intents-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1da8d1501c8c85198dfbc4623ea18db96077f9947f6e1fe5ffa2ed06935e8a3b", size = 32168 }, - { url = "https://files.pythonhosted.org/packages/d9/f8/1fd0a75de415d335a1aa43e9c86e468960b3a4d969a87aa4a70084452277/pyobjc_framework_intents-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:50ab244f2a9ad4c94bbc1dd81421f8553f59121d4e0ad0c894a927a878319843", size = 32413 }, - { url = "https://files.pythonhosted.org/packages/42/8a/d319b1a014dcf52cd46c2c956bed0e66f7c80253acaebd1ec5920b01bf41/pyobjc_framework_intents-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5c50c336418a3ba8fdfa5b5d12e46dca290e4321fb9844245af4a32b11cf6563", size = 32191 }, - { url = "https://files.pythonhosted.org/packages/38/cd/b5ce5d389a3ca767b3d0ce70daf35c52cb35775e4a285ed4bedaa89ab75e/pyobjc_framework_intents-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:03cbccec0380a431bc291725af0fcbaf61ea1bb1301a70cb267c8ecf2d04d608", size = 32481 }, -] - -[[package]] -name = "pyobjc-framework-intentsui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-intents", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/98/1c/ac36510c5697d930e5922ae70c141c34b0bd9185e1ca71f8de0a8a9025da/pyobjc_framework_intentsui-12.0.tar.gz", hash = "sha256:cb53f34abef6a96f1df12b34c682088578fbc3e1f63d0ee02e09f41f16fb54a8", size = 20142 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/fb/d81c60c1aad3013183297ed4869ac123062f7add292e86f1a88ff7d5a865/pyobjc_framework_intentsui-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1cf204dd9f05a6e8b878bfbc5c0393103a643ef0ca1dc3c3abc077081a3729aa", size = 8971 }, - { url = "https://files.pythonhosted.org/packages/73/ea/cfd64403776dca3fa53ea268dc80a4840c83bc517a01cb4a9f29f6bea816/pyobjc_framework_intentsui-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3f25724f442cb5f8113d7e4db15e612c27b8c6a7c68b0db8f2a27f16ac6ea04", size = 8971 }, - { url = "https://files.pythonhosted.org/packages/0b/40/c6da25755b54cd86d2c01ae02235a2806f077ef1eaf2ebf6d783fdcaa3d3/pyobjc_framework_intentsui-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:43937d3f7b9acc8bd23b039bfe5c30e6d7ce5cb365603deb8b47dbccc18bb421", size = 8990 }, - { url = "https://files.pythonhosted.org/packages/82/ee/f93c685c993c58c17d45a3dad9f57b0507756641a858d009c73f47865371/pyobjc_framework_intentsui-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e9e57aac35b9cd4b5e95fa9715a8a4a753c53f1747fe08f32c3701b270fc0d05", size = 9014 }, - { url = "https://files.pythonhosted.org/packages/0c/b4/59ad5706c4f40f26a912a587bccd82ed94e9a22da4c76fe7fc040058af2c/pyobjc_framework_intentsui-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d7b3d7b5609a2c605b5b80038af18a6cb042ba39a394d200ffbc3a3fe78e7473", size = 9184 }, - { url = "https://files.pythonhosted.org/packages/56/5f/7b8035431b2bec046dc4ac672d9960c1cc23bc14dfbd01ad88c98a2891e6/pyobjc_framework_intentsui-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5e1e5ed95f76135dd9662f7509aaac51b273e54d75a17dbc10e9872758cc1d8b", size = 9071 }, - { url = "https://files.pythonhosted.org/packages/0d/e5/e3ebdd7a4666482a26754fa7e4b5987d773af14a5aacc096dd6aaaaa5c6f/pyobjc_framework_intentsui-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f9a339d68a276513f5545a2a4446095921451193bb81157f00bc564e65392981", size = 9259 }, -] - -[[package]] -name = "pyobjc-framework-intentsui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-intents", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/cf/f0e385b9cfbf153d68efe8d19e5ae672b59acbbfc1f9b58faaefc5ec8c9e/pyobjc_framework_intentsui-12.1.tar.gz", hash = "sha256:16bdf4b7b91c0d1ec9d5513a1182861f1b5b7af95d4f4218ff7cf03032d57f99", size = 19784 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/c1/f7bc2d220354740dcbc2e8d2b416f7ab84e0664d1ef45321341726390a01/pyobjc_framework_intentsui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:631baf74bc8ca65ebab6ed8914a116d12af8323dfa89b156a9f64f55a7fdde5b", size = 8959 }, - { url = "https://files.pythonhosted.org/packages/84/cc/7678f901cbf5bca8ccace568ae85ee7baddcd93d78754ac43a3bb5e5a7ac/pyobjc_framework_intentsui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a877555e313d74ac3b10f7b4e738647eea9f744c00a227d1238935ac3f9d7968", size = 8961 }, - { url = "https://files.pythonhosted.org/packages/f1/17/06812542a9028f5b2dcce56f52f25633c08b638faacd43bad862aad1b41d/pyobjc_framework_intentsui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb894fcc4c9ea613a424dcf6fb48142d51174559b82cfdafac8cb47555c842cf", size = 8983 }, - { url = "https://files.pythonhosted.org/packages/57/af/4dc8b6f714ba1bd9cf0218da98c49ece5dcee4e0593b59196ec5aa85e07c/pyobjc_framework_intentsui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:369a88db1ff3647e4d8cf38d315f1e9b381fc7732d765b08994036f9d330f57d", size = 9004 }, - { url = "https://files.pythonhosted.org/packages/18/ab/794ed92dcf955dc2d0a0dcfbc384e087864f2dacd330d59d1185f8403353/pyobjc_framework_intentsui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8742e9237ef2df8dbb1566cdc77e4d747b2693202f438d49435e0c3c91eaa709", size = 9177 }, - { url = "https://files.pythonhosted.org/packages/68/07/61dc855f6eeaf75d274ad4b66006e05b0bef2138a6a559c60f0bc59d32ea/pyobjc_framework_intentsui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d01222760005421324c3892b6b98c5b4295828a6b157a1fc410f63eb336b2d97", size = 9054 }, - { url = "https://files.pythonhosted.org/packages/76/fa/d6dabff68951b66f2d7d8c8aa651f2a139a1ca0be556e1e64c6bdd7be18b/pyobjc_framework_intentsui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:547aef7233b6c7495b3c679aa779f01368fc992883732ade065523235f07fa3b", size = 9248 }, -] - -[[package]] -name = "pyobjc-framework-iobluetooth" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7f/a2/639dd9503842ec12ecd2712b58baf47df96ca170651828a7dc8e7a721a9e/pyobjc_framework_iobluetooth-12.0.tar.gz", hash = "sha256:44eb58bab83172f0bba41928a5831a8aa852151485dc87252229f0542cecd7c8", size = 155642 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/73/ecfdc880a3e59c8eebfd1d0d07d31731c605e32d34e4b6b823c1cb904c90/pyobjc_framework_iobluetooth-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b93abd2ee45868675551ee96e3ed4b8c52701ca6333cab20827680ed514995d", size = 40419 }, - { url = "https://files.pythonhosted.org/packages/5a/68/086ee6f5a4a0b6c59d9b2e2775252c6ba18853ecfc726e6f3095ddf285b8/pyobjc_framework_iobluetooth-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:921ae54acf5d823678686eb4945f6875f98146ebcdc4cb6a115468a73bb7864d", size = 40419 }, - { url = "https://files.pythonhosted.org/packages/61/96/34547e64f74d381b9ee5f8840f81a3fc47884479cc0208b700e3ee09a0c1/pyobjc_framework_iobluetooth-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5239949754c2156f8bbc93f05a73639c514f9f5b3e72466886fda3de3b0fdb97", size = 40449 }, - { url = "https://files.pythonhosted.org/packages/71/94/744b0dc6e0bd1e08dfa73e73966569f0a69300c0d9c6f9cdb7a4c21d96dd/pyobjc_framework_iobluetooth-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:78591a41a9621e52c718c6b150058076a407099f9ba3092c8214c3b097cb2833", size = 40462 }, - { url = "https://files.pythonhosted.org/packages/08/54/e64dc86f1582f347a9b20e1a2a468ee694a90ec84fb0758ea5b0dc21a807/pyobjc_framework_iobluetooth-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b42aedf60074b36b3d99cad743e45e070091d305880f4d14e87023a8a190a57c", size = 40674 }, - { url = "https://files.pythonhosted.org/packages/49/b6/d6a5bf68337b8301ce1ed8bed3bee1c39f1c224a56728d02cd780b894041/pyobjc_framework_iobluetooth-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:91e5b230c1f0ffe803362c9b1512b5669b26838d31ff839b27e63e7ad0b76bc6", size = 40451 }, - { url = "https://files.pythonhosted.org/packages/47/d0/6c80e57378fec38c0747c65ab5315d7d7f8d18ae2941d79b0ba57f9b58e9/pyobjc_framework_iobluetooth-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d0f666e9f9053c9cea55d64707c0365dbb4a05829656bbde5ccc9ff1d0e6356f", size = 40654 }, -] - -[[package]] -name = "pyobjc-framework-iobluetooth" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/aa/ca3944bbdfead4201b4ae6b51510942c5a7d8e5e2dc3139a071c74061fdf/pyobjc_framework_iobluetooth-12.1.tar.gz", hash = "sha256:8a434118812f4c01dfc64339d41fe8229516864a59d2803e9094ee4cbe2b7edd", size = 155241 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/92/1bd6d76a005f0eb54e15608534cb7ce73f5d37afdcf82dc86e2ab54314e2/pyobjc_framework_iobluetooth-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8963d7115fdcd753598f0757f36b19267d01d00ac84cf617c02d38889c3a40fd", size = 40409 }, - { url = "https://files.pythonhosted.org/packages/f6/ab/ad6b36f574c3d52b5e935b1d57ab0f14f4e4cd328cc922d2b6ba6428c12d/pyobjc_framework_iobluetooth-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:77959f2ecf379aa41eb0848fdb25da7c322f9f4a82429965c87c4bc147137953", size = 40415 }, - { url = "https://files.pythonhosted.org/packages/0b/b6/933b56afb5e84c3c35c074c9e30d7b701c6038989d4867867bdaa7ab618b/pyobjc_framework_iobluetooth-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:111a6e54be9e9dcf77fa2bf84fdac09fae339aa33087d8647ea7ffbd34765d4c", size = 40439 }, - { url = "https://files.pythonhosted.org/packages/15/6f/5e165daaf3b637d37fee50f42beda62ab3d5e6e99b1d84c4af4700d39d01/pyobjc_framework_iobluetooth-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ee0d4fdddf871fb89c49033495ae49973cc8b0e8de50c2e60c92355ce3bea86", size = 40452 }, - { url = "https://files.pythonhosted.org/packages/37/bd/7cc5f01fbf573112059766c94535ae3f9c044d6e0cf49c599e490224db58/pyobjc_framework_iobluetooth-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0cd2ea9384e93913703bf40641196a930af83c2f6f62f59f8606b7162fe1caa3", size = 40659 }, - { url = "https://files.pythonhosted.org/packages/ef/58/4553d846513840622cd56ef715543f922d7d5ddfbe38316dbc7e43f23832/pyobjc_framework_iobluetooth-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a14506046ad9403ea95c75c1dd248167f41aef4aed62f50b567bf2482056ebf5", size = 40443 }, - { url = "https://files.pythonhosted.org/packages/8a/da/4846a76bd9cb73fb1e562d1fb7044bd3df15a289ab986bcaf053a65dbb88/pyobjc_framework_iobluetooth-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:42ec9a40e7234a00f434489c8b18458bc5deb6ea6938daba50b9527100e21f0c", size = 40649 }, -] - -[[package]] -name = "pyobjc-framework-iobluetoothui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-iobluetooth", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/74/95/22588965d90ce13e9ac65d46b9c97379a9400336052663c3b8066f5b2c70/pyobjc_framework_iobluetoothui-12.0.tar.gz", hash = "sha256:a768e16ce112b3a01fbc324e9cb5976a1d908069df8aa0d2b77f0f6f56cd4ad6", size = 16536 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/af/b6df402c5a82da4f1a6d1b97cf251a6b5c687256e7007201f42caeaa00f1/pyobjc_framework_iobluetoothui-12.0-py2.py3-none-any.whl", hash = "sha256:2bfb0bf3589db9b4a06132503d2998490d5f2ad56e2259fb066c05f19b71754a", size = 4056 }, -] - -[[package]] -name = "pyobjc-framework-iobluetoothui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-iobluetooth", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8f/39/31d9a4e8565a4b1ec0a9ad81480dc0879f3df28799eae3bc22d1dd53705d/pyobjc_framework_iobluetoothui-12.1.tar.gz", hash = "sha256:81f8158bdfb2966a574b6988eb346114d6a4c277300c8c0a978c272018184e6f", size = 16495 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/c9/69aeda0cdb5d25d30dc4596a1c5b464fc81b5c0c4e28efc54b7e11bde51c/pyobjc_framework_iobluetoothui-12.1-py2.py3-none-any.whl", hash = "sha256:a6d8ab98efa3029130577a57ee96b183c35c39b0f1c53a7534f8838260fab993", size = 4045 }, -] - -[[package]] -name = "pyobjc-framework-iosurface" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6e/8f/b4767fbf4ba4219d92d7c2ac2e48425342442f9ecea7adb351da6bc65da1/pyobjc_framework_iosurface-12.0.tar.gz", hash = "sha256:456a706e73e698494aec539e713341f6b1bd4c870c95a0e554fe0b8d32dfda06", size = 17739 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/9c/e65b489d448ec26bf3567228788fb36931412719447c8e87002375de42b4/pyobjc_framework_iosurface-12.0-py2.py3-none-any.whl", hash = "sha256:734543a79f6bceb0ade88138f83657c23422c33f2b83f732d09581f54c486ae3", size = 4913 }, -] - -[[package]] -name = "pyobjc-framework-iosurface" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/61/0f12ad67a72d434e1c84b229ec760b5be71f53671ee9018593961c8bfeb7/pyobjc_framework_iosurface-12.1.tar.gz", hash = "sha256:4b9d0c66431aa296f3ca7c4f84c00dc5fc961194830ad7682fdbbc358fa0db55", size = 17690 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ad/793d98a7ed9b775dc8cce54144cdab0df1808a1960ee017e46189291a8f3/pyobjc_framework_iosurface-12.1-py2.py3-none-any.whl", hash = "sha256:e784e248397cfebef4655d2c0025766d3eaa4a70474e363d084fc5ce2a4f2a3f", size = 4902 }, -] - -[[package]] -name = "pyobjc-framework-ituneslibrary" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d1/94/d7f8ac73777323c01859136bf50ba6cfc674fc8c5eedb0aa45ad3fa6b4cd/pyobjc_framework_ituneslibrary-12.0.tar.gz", hash = "sha256:f859806281d7604e71ddbf2323daa853ccb83a3295f631cab106e93900383d57", size = 23745 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/97/20/b5a88ab437898ba43be98634a3aa8418b8990c045821059fb199dbf6c550/pyobjc_framework_ituneslibrary-12.0-py2.py3-none-any.whl", hash = "sha256:7274a34ef8e3d51754c571af3a49d49a3c946abf30562e9f647f53626dbea5e2", size = 5220 }, -] - -[[package]] -name = "pyobjc-framework-ituneslibrary" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f5/46/d9bcec88675bf4ee887b9707bd245e2a793e7cb916cf310f286741d54b1f/pyobjc_framework_ituneslibrary-12.1.tar.gz", hash = "sha256:7f3aa76c4d05f6fa6015056b88986cacbda107c3f29520dd35ef0936c7367a6e", size = 23730 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/92/b598694a1713ee46f45c4bfb1a0425082253cbd2b1caf9f8fd50f292b017/pyobjc_framework_ituneslibrary-12.1-py2.py3-none-any.whl", hash = "sha256:fb678d7c3ff14c81672e09c015e25880dac278aa819971f4d5f75d46465932ef", size = 5205 }, -] - -[[package]] -name = "pyobjc-framework-kernelmanagement" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9d/d8/54cdf0e439b71e11dd081dfbdc0c23fd9122a90deab2a819a9ef08b6abab/pyobjc_framework_kernelmanagement-12.0.tar.gz", hash = "sha256:f7fa54676777f525eda77c261a6f2120256855f28531fd18fd0081be869d003d", size = 11836 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/26/57122ddbe123b20b02b3c0510fc80719507ac849e311479d47225c13f7c2/pyobjc_framework_kernelmanagement-12.0-py2.py3-none-any.whl", hash = "sha256:a7cc70a131dbd3eb8b0b22c5283baf9b6c52ecbf26a5c689c254984719b17049", size = 3712 }, -] - -[[package]] -name = "pyobjc-framework-kernelmanagement" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0a/7e/ecbac119866e8ac2cce700d7a48a4297946412ac7cbc243a7084a6582fb1/pyobjc_framework_kernelmanagement-12.1.tar.gz", hash = "sha256:488062893ac2074e0c8178667bf864a21f7909c11111de2f6a10d9bc579df59d", size = 11773 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/32/04325a20f39d88d6d712437e536961a9e6a4ec19f204f241de6ed54d1d84/pyobjc_framework_kernelmanagement-12.1-py2.py3-none-any.whl", hash = "sha256:926381bfbfbc985c3e6dfcb7004af21bb16ff66ecbc08912b925989a705944ff", size = 3704 }, -] - -[[package]] -name = "pyobjc-framework-latentsemanticmapping" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/61/67/40a1c7d581a258f8dc436e3768f137d9c3885346f6f8aabcd35d9a472147/pyobjc_framework_latentsemanticmapping-12.0.tar.gz", hash = "sha256:737f2ceb84c85ab5352ad361f674c66be7602a5d2d68fbcfbe28400cf04fb1fa", size = 15564 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/57/bc9764affff2e6b3cea4c3e8bf527fc70b2bba600f1f4d079a3ecfd2b090/pyobjc_framework_latentsemanticmapping-12.0-py2.py3-none-any.whl", hash = "sha256:de98fb922e209f16cbacdaf60c186893b384fda9077293dd74257ea118502780", size = 5483 }, -] - -[[package]] -name = "pyobjc-framework-latentsemanticmapping" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/88/3c/b621dac54ae8e77ac25ee75dd93e310e2d6e0faaf15b8da13513258d6657/pyobjc_framework_latentsemanticmapping-12.1.tar.gz", hash = "sha256:f0b1fa823313eefecbf1539b4ed4b32461534b7a35826c2cd9f6024411dc9284", size = 15526 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/8e/74a7eb29b545f294485cd3cf70557b4a35616555fe63021edbb3e0ea4c20/pyobjc_framework_latentsemanticmapping-12.1-py2.py3-none-any.whl", hash = "sha256:7d760213b42bc8b1bc1472e1873c0f78ee80f987225978837b1fecdceddbdbf4", size = 5471 }, -] - -[[package]] -name = "pyobjc-framework-launchservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/91/a8/c93919c0e249f3453ea2e2732ea1b69e959ac50bf63d8bf87017a8def36c/pyobjc_framework_launchservices-12.0.tar.gz", hash = "sha256:8c162e7f021b8428a35989fb86bc6dfb251456ec18b6e7570a83b3c32a683438", size = 20500 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/17/51/f249292cb459f25c3ea09cdee7b8faaeb9cd06d62a02e453f450c5015879/pyobjc_framework_launchservices-12.0-py2.py3-none-any.whl", hash = "sha256:e95d30f2f21eadfd815806f2183735d8c93ed960251ef9123850dcb1b62c9384", size = 3912 }, -] - -[[package]] -name = "pyobjc-framework-launchservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/37/d0/24673625922b0ad21546be5cf49e5ec1afaa4553ae92f222adacdc915907/pyobjc_framework_launchservices-12.1.tar.gz", hash = "sha256:4d2d34c9bd6fb7f77566155b539a2c70283d1f0326e1695da234a93ef48352dc", size = 20470 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/af/9a0aebaab4c15632dc8fcb3669c68fa541a3278d99541d9c5f966fbc0909/pyobjc_framework_launchservices-12.1-py2.py3-none-any.whl", hash = "sha256:e63e78fceeed4d4dc807f9dabd5cf90407e4f552fab6a0d75a8d0af63094ad3c", size = 3905 }, -] - -[[package]] -name = "pyobjc-framework-libdispatch" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/7e/251ea268ce5a341586c963de758c7ff6dea681c98a1fb6da87f6d0004bd3/pyobjc_framework_libdispatch-12.0.tar.gz", hash = "sha256:2ef31c02670c377d9e2875e74053087b1d96b240d2fc8721cc4c665c05394b3a", size = 38599 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/97/b5/7a0ec5e990f77f74ac22594076b2c5918e2af95a4ff68b115ae544126213/pyobjc_framework_libdispatch-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8bebd8599909f2aabbeebd5d2a9a394b636a3b887b64ec8025b4d3bcfb15703f", size = 20472 }, - { url = "https://files.pythonhosted.org/packages/da/c2/7aff056399d9743a8c66af1ef575cf1741ce4c67c13c02d6510f0bd6151e/pyobjc_framework_libdispatch-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ea093cd250105726aff61df189daa893e6f7bd43f8865bb6e612deeec233d374", size = 20472 }, - { url = "https://files.pythonhosted.org/packages/50/4b/1bc4b4fef8beeb77eedf0c8d1e643330bcce42a4839e37f54105bcfc02a5/pyobjc_framework_libdispatch-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:631db409f99302f58aa97bb395f2220bd6b2676d6ef4621802f7abd7c23786e8", size = 15660 }, - { url = "https://files.pythonhosted.org/packages/d6/b3/e61f3b08e0145918a3e2a2f4450b4d3f3ac6eb251f923d0850a85a984053/pyobjc_framework_libdispatch-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:006d492b469b2a1fe3da7df9687f2638d832ef76333e5f7c6ab023bf25703fbf", size = 15681 }, - { url = "https://files.pythonhosted.org/packages/64/e3/7befaf176f09ba2648bcf4506a458ca67379d0c61cdfd00d0cd0690ed394/pyobjc_framework_libdispatch-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bb73f193fab434bd89b4d92d062a645b0068f6a3af50e00df3bc789f94927db6", size = 15948 }, - { url = "https://files.pythonhosted.org/packages/a1/33/6db320381e215a1a772d3ed2d094680c1797faa22cec799e5086cb850e02/pyobjc_framework_libdispatch-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ce51a4e729c3d549b512721bef502f5a5bdb2cc61902a4046ec8e1807064e5bb", size = 15704 }, - { url = "https://files.pythonhosted.org/packages/d1/d0/71bc50c6d57e3a55216ebd618b67eeb9d568239809382c7dfd870e906c67/pyobjc_framework_libdispatch-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:cf3b4befc34a143969db6a0dfcfebaea484c8c3ec527cd73676880b06b5348fc", size = 15986 }, -] - -[[package]] -name = "pyobjc-framework-libdispatch" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/26/e8/75b6b9b3c88b37723c237e5a7600384ea2d84874548671139db02e76652b/pyobjc_framework_libdispatch-12.1.tar.gz", hash = "sha256:4035535b4fae1b5e976f3e0e38b6e3442ffea1b8aa178d0ca89faa9b8ecdea41", size = 38277 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/76/9936d97586dbae4d7d10f3958d899ee7a763930af69b5ad03d4516178c7c/pyobjc_framework_libdispatch-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:50a81a29506f0e35b4dc313f97a9d469f7b668dae3ba597bb67bbab94de446bd", size = 20471 }, - { url = "https://files.pythonhosted.org/packages/1f/75/c4aeab6ce7268373d4ceabbc5c406c4bbf557038649784384910932985f8/pyobjc_framework_libdispatch-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:954cc2d817b71383bd267cc5cd27d83536c5f879539122353ca59f1c945ac706", size = 20463 }, - { url = "https://files.pythonhosted.org/packages/83/6f/96e15c7b2f7b51fc53252216cd0bed0c3541bc0f0aeb32756fefd31bed7d/pyobjc_framework_libdispatch-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0e9570d7a9a3136f54b0b834683bf3f206acd5df0e421c30f8fd4f8b9b556789", size = 15650 }, - { url = "https://files.pythonhosted.org/packages/38/3a/d85a74606c89b6b293782adfb18711026ff79159db20fc543740f2ac0bc7/pyobjc_framework_libdispatch-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:58ffce5e6bcd7456b4311009480b195b9f22107b7682fb0835d4908af5a68ad0", size = 15668 }, - { url = "https://files.pythonhosted.org/packages/cc/40/49b1c1702114ee972678597393320d7b33f477e9d24f2a62f93d77f23dfb/pyobjc_framework_libdispatch-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e9f49517e253716e40a0009412151f527005eec0b9a2311ac63ecac1bdf02332", size = 15938 }, - { url = "https://files.pythonhosted.org/packages/59/d8/7d60a70fc1a546c6cb482fe0595cb4bd1368d75c48d49e76d0bc6c0a2d0f/pyobjc_framework_libdispatch-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0ebfd9e4446ab6528126bff25cfb09e4213ddf992b3208978911cfd3152e45f5", size = 15693 }, - { url = "https://files.pythonhosted.org/packages/99/32/15e08a0c4bb536303e1568e2ba5cae1ce39a2e026a03aea46173af4c7a2d/pyobjc_framework_libdispatch-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:23fc9915cba328216b6a736c7a48438a16213f16dfb467f69506300b95938cc7", size = 15976 }, -] - -[[package]] -name = "pyobjc-framework-libxpc" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/d3/e03390b44ff0c7c4542f5626e808f80f794e93a34a883377339cc1a18b0b/pyobjc_framework_libxpc-12.0.tar.gz", hash = "sha256:bf29f76f743a2af6cc5e294b34d671155257ef3f9751f92b821ecae75a9e7e52", size = 35557 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/7b/bc3177ad9dd489636ed00fac842343156519bcbf4bf7369c18ea2e1073f6/pyobjc_framework_libxpc-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf3a842f924fb325779b01a942dca954ced5d7dc2b596e6e87c0570c9aa652e3", size = 19625 }, - { url = "https://files.pythonhosted.org/packages/cd/74/8fbdea024ce3863bd598c96c3d614e331125ba17814fd84c3a3957712469/pyobjc_framework_libxpc-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:97285c0c8c61230e13b78e0e4a12adcaca25123c2210ea6f36372c17c70ccc5d", size = 19627 }, - { url = "https://files.pythonhosted.org/packages/e8/06/9c7274fe458b66a8fe562a370e3a6523904d88c6057dc2f2eccd978cd474/pyobjc_framework_libxpc-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ba7eee4e91161c04055ffb94986afb558c6e5a43ecda175b345c7297c312f756", size = 19736 }, - { url = "https://files.pythonhosted.org/packages/c2/f8/6e800bf2b25da4ead85a4a5c8ee866f02a2f1747ee2b4fe5c7d11df0b624/pyobjc_framework_libxpc-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:edb8f63b3ab39b22bfa4db028c45bb953115b7cadbeadaef8f558e2e58ee2752", size = 19737 }, - { url = "https://files.pythonhosted.org/packages/21/07/4001b087b3151c9674ab2c63c2d173e3ce0bed6dd91ca899665aee424a55/pyobjc_framework_libxpc-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ca57eca41b50a4216a1eab550e6abcd865fc40f948b2df9822a589155f041501", size = 20316 }, - { url = "https://files.pythonhosted.org/packages/01/c8/09ef28d6e55f59afbf964f7915b41a6e13fdff666578dc542fc87b1f9b58/pyobjc_framework_libxpc-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:05037c18d24816c70c8c8e3af6ad4655674914ac53cb00beadceadd269f1dd50", size = 19460 }, - { url = "https://files.pythonhosted.org/packages/d6/a1/8c7a1e8721179d5fba091ad2db650cc3d41050cf4a3bd4c46ebfad367274/pyobjc_framework_libxpc-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1ef89e6892305c412d7e0d892ca0faf404b7b19b403a599cdda88f27287f7ce0", size = 20030 }, -] - -[[package]] -name = "pyobjc-framework-libxpc" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/16/e4/364db7dc26f235e3d7eaab2f92057f460b39800bffdec3128f113388ac9f/pyobjc_framework_libxpc-12.1.tar.gz", hash = "sha256:e46363a735f3ecc9a2f91637750623f90ee74f9938a4e7c833e01233174af44d", size = 35186 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/f1/95af3a601744e1bc9b08d889f0bf0032b0d0ae8725976654e0d5fbe9a5f8/pyobjc_framework_libxpc-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f135b9734ee461c30dc692e58ce4b58c84c9a455738afe9ac70040c893625f4f", size = 19616 }, - { url = "https://files.pythonhosted.org/packages/7c/c9/701630d025407497b7af50a795ddb6202c184da7f12b46aa683dae3d3552/pyobjc_framework_libxpc-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8d7201db995e5dcd38775fd103641d8fb69b8577d8e6a405c5562e6c0bb72fd1", size = 19620 }, - { url = "https://files.pythonhosted.org/packages/82/7f/fdec72430f90921b154517a6f9bbeefa7bacfb16b91320742eb16a5955c5/pyobjc_framework_libxpc-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ba93e91e9ca79603dd265382e9f80e9bd32309cd09c8ac3e6489fc5b233676c8", size = 19730 }, - { url = "https://files.pythonhosted.org/packages/0a/64/c4e2f9a4f92f4d2b84c0e213b4a9410968b5f181f15a764eeb43f92c4eb2/pyobjc_framework_libxpc-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:635520187a6456ad259e40dd04829caeef08561d0a1a0cfd09787ebd281d47b3", size = 19729 }, - { url = "https://files.pythonhosted.org/packages/51/c2/654dd2a22b6f505ff706a66117c522029df9449a9a19ca4827af0d16b5b3/pyobjc_framework_libxpc-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1c36e3e109a95275f90b319161265a7f6a5e0e674938ce49babdf3a64d9fc892", size = 20309 }, - { url = "https://files.pythonhosted.org/packages/fc/9d/d66559d9183dae383962c79ca67eaabf7fe9f8bb9f65cf5a4369fbdcdd0e/pyobjc_framework_libxpc-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:bc5eaed7871fab8971631e99151ea0271f64d4059790c9f41a30ae4841f4fd89", size = 19451 }, - { url = "https://files.pythonhosted.org/packages/6b/f6/cb5d5e6f83d94cff706dff533423fdf676249ee392dc9ae4acdd0e02d451/pyobjc_framework_libxpc-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c862ed4f79c82e7a246fe49a8fae9e9684a7163512265f1c01790899dc730551", size = 20022 }, -] - -[[package]] -name = "pyobjc-framework-linkpresentation" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f8/35/63a070df5478caa26b5babe80002f4cca6fe2324061dd11a9b6c564c829b/pyobjc_framework_linkpresentation-12.0.tar.gz", hash = "sha256:e98d035cbe943720dbb28873b510916c168a27e80614cf34b65c619c372e8d98", size = 13373 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/0a/43ef70f68840ebaff950052b23be84ef3f9620ca628a56501a287f8bfec7/pyobjc_framework_linkpresentation-12.0-py2.py3-none-any.whl", hash = "sha256:d895cada661657c3d43525372ab38294352cceba7a007ee8464af5ce822153c7", size = 3876 }, -] - -[[package]] -name = "pyobjc-framework-linkpresentation" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e3/58/c0c5919d883485ccdb6dccd8ecfe50271d2f6e6ab7c9b624789235ccec5a/pyobjc_framework_linkpresentation-12.1.tar.gz", hash = "sha256:84df6779591bb93217aa8bd82c10e16643441678547d2d73ba895475a02ade94", size = 13330 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/51/226eb45f196f3bf93374713571aae6c8a4760389e1d9435c4a4cc3f38ea4/pyobjc_framework_linkpresentation-12.1-py2.py3-none-any.whl", hash = "sha256:853a84c7b525b77b114a7a8d798aef83f528ed3a6803bda12184fe5af4e79a47", size = 3865 }, -] - -[[package]] -name = "pyobjc-framework-localauthentication" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-security", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/08/20/6744b25940d9462e0410cadd6da2e25ea3c01e6067a1234d8092ae0a40fa/pyobjc_framework_localauthentication-12.0.tar.gz", hash = "sha256:6287b671d4e418419d8d5b2244616d72f346f6b8a8bc18d9a6bccb93a291091c", size = 30327 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/9f/a3bc2759cca5e3ee6b8b84ef51c8bca4e5ead80701ce7bba5b6cc16272ed/pyobjc_framework_localauthentication-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4a97706302b9fc4141b78db10eec213175655c1caa11b0ca46527c2e4ff4b2f4", size = 10773 }, - { url = "https://files.pythonhosted.org/packages/39/44/d5df20bd83f83cf789278df5a3efc6054c72eddb42dd85c7d5ed3baf98dd/pyobjc_framework_localauthentication-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1bb42a6866972676b63afd53cc96be4e720a48929eebfa18fdd5c3ef763270a8", size = 10768 }, - { url = "https://files.pythonhosted.org/packages/9c/01/f1af23b0c97ec7ecb9b88fe28104adc2fdd10c08f25a12935e75ceae70c1/pyobjc_framework_localauthentication-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:491e99d903930edbcffc27ee1f84902509bdd0b9d951464214603dc348f0e438", size = 10782 }, - { url = "https://files.pythonhosted.org/packages/25/90/5304a84dc35d432c5189e7f1cc971a2da339ef32208364829808decc5679/pyobjc_framework_localauthentication-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:44c895e8bceea74532f01c5d45e57230c37f80c4dd3b5a4928deffe674a27a77", size = 10786 }, - { url = "https://files.pythonhosted.org/packages/d7/a8/b408b2a2eb0c7e2846dd6f6e5efad0db78d5628b7d82f5040d2ddf32b4bf/pyobjc_framework_localauthentication-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c6ab5aee535981e699c3248692eb02b52216dbe1ee7d5f0fe148be3672eaa5b8", size = 10938 }, - { url = "https://files.pythonhosted.org/packages/1b/08/74582ce5f66598c45f9f64ad6389a00ef2408663450dd604e568a3bdbf14/pyobjc_framework_localauthentication-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4357e9f741cdbe59edb5bc151b34d25ad3637074339e3c689322b72a367af800", size = 10851 }, - { url = "https://files.pythonhosted.org/packages/ec/72/dcaa61b77513cea50843390dc4faf970d76bbd7f4b299349393151a928e9/pyobjc_framework_localauthentication-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:032dc56c09f863df593ed8c4dc0a4b605e0dd5db25715f4f6d61e88d594db794", size = 10989 }, -] - -[[package]] -name = "pyobjc-framework-localauthentication" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-security", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8d/0e/7e5d9a58bb3d5b79a75d925557ef68084171526191b1c0929a887a553d4f/pyobjc_framework_localauthentication-12.1.tar.gz", hash = "sha256:2284f587d8e1206166e4495b33f420c1de486c36c28c4921d09eec858a699d05", size = 29947 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/bd/f5b5b2bdce4340b917dedbd95cca90ea74dc549fa33235315a3013871fbb/pyobjc_framework_localauthentication-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b1b24c9b453c3b3eb862a78a3a7387f357a90b99ec61cd1950b38e1cf08307ec", size = 10762 }, - { url = "https://files.pythonhosted.org/packages/6e/cb/cf9d13943e13dc868a68844448a7714c16f4ee6ecac384d21aaa5ac43796/pyobjc_framework_localauthentication-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2d7e1b3f987dc387361517525c2c38550dc44dfb3ba42dec3a9fbf35015831a6", size = 10762 }, - { url = "https://files.pythonhosted.org/packages/05/93/91761ad4e5fa1c3ec25819865d1ccfbee033987147087bff4fcce67a4dc4/pyobjc_framework_localauthentication-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3af1acd287d830cc7f912f46cde0dab054952bde0adaf66c8e8524311a68d279", size = 10773 }, - { url = "https://files.pythonhosted.org/packages/e4/f5/a12c76525e4839c7fc902c6b0f0c441414a4dd9bc9a2d89ae697f6cd8850/pyobjc_framework_localauthentication-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e26e746717f4774cce0568debec711f1d8effc430559ad634ff6b06fefd0a0bf", size = 10792 }, - { url = "https://files.pythonhosted.org/packages/5c/ed/2714934b027afc6a99d0d817e42bf482d08c711422795fe777e3cd9ad8be/pyobjc_framework_localauthentication-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02357cddc979aa169782bf09f380aab1c3af475c9eb6ffb07c77084ed10f6a6a", size = 10931 }, - { url = "https://files.pythonhosted.org/packages/e6/58/6dfb304103b4cdaee44acd7f5093c07f3053df0cc9648c87876f1e5fc690/pyobjc_framework_localauthentication-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f8d525ed2ad5cd56e420436187b534454d1f7d1fae6e585df82397d6d92c6e54", size = 10841 }, - { url = "https://files.pythonhosted.org/packages/17/af/1c7ce26b46cc978852895017212cf3637d5334274213265234149e0937d4/pyobjc_framework_localauthentication-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:93c5470a9d60b53afa0faf31d95dc8d6fc3a7ff85c425ab157ea491b6dc3af39", size = 10975 }, -] - -[[package]] -name = "pyobjc-framework-localauthenticationembeddedui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-localauthentication", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4b/b9/b0ebb005d1a96733463e811f60b0cc254bef3bb8792769e22621d1af80cb/pyobjc_framework_localauthenticationembeddedui-12.0.tar.gz", hash = "sha256:6f54afb2380a190c0a3fb54f26cd1492ccc0eb9ce040cd20c2702c305dd866da", size = 13643 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/80/cfa1df39d32329350c9eec7b84a4cb966fe62679c463277bcfb75e8a03e0/pyobjc_framework_localauthenticationembeddedui-12.0-py2.py3-none-any.whl", hash = "sha256:0e78a1b41a47ca28310b4bece72bd52ba744a7f3386b8558d1b57129161a44bc", size = 3998 }, -] - -[[package]] -name = "pyobjc-framework-localauthenticationembeddedui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-localauthentication", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/31/20/83ab4180e29b9a4a44d735c7f88909296c6adbe6250e8e00a156aff753e1/pyobjc_framework_localauthenticationembeddedui-12.1.tar.gz", hash = "sha256:a15ec44bf2769c872e86c6b550b6dd4f58d4eda40ad9ff00272a67d279d1d4e9", size = 13611 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/30/7d/0d46639c7a26b6af928ab4c822cd28b733791e02ac28cc84c3014bcf7dc7/pyobjc_framework_localauthenticationembeddedui-12.1-py2.py3-none-any.whl", hash = "sha256:a7ce7b56346597b9f4768be61938cbc8fc5b1292137225b6c7f631b9cde97cd7", size = 3991 }, -] - -[[package]] -name = "pyobjc-framework-mailkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/f0/f702efc9fe2a0c0dbb44728e7fd1edd75dd022edc54d51f2cb0fa001aaf0/pyobjc_framework_mailkit-12.0.tar.gz", hash = "sha256:98c45662428cfd4f672c170e2cc6c820bc1d625739a11603e3c267bebd18c6d8", size = 21015 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/4a/d5a86176153459264339d4c440dbc827e6f262788218534ce15c50ce37ab/pyobjc_framework_mailkit-12.0-py2.py3-none-any.whl", hash = "sha256:ef1241515f486a91ef6d5c548043ceb0de54103e76232d6c14d3082c0e99fe2e", size = 4880 }, -] - -[[package]] -name = "pyobjc-framework-mailkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2a/98/3d9028620c1cd32ff4fb031155aba3b5511e980cdd114dd51383be9cb51b/pyobjc_framework_mailkit-12.1.tar.gz", hash = "sha256:d5574b7259baec17096410efcaacf5d45c7bb5f893d4c25cbb7072369799b652", size = 20996 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/8d/3c968b736a3a8bd9d8e870b39b1c772a013eea1b81b89fc4efad9021a6cb/pyobjc_framework_mailkit-12.1-py2.py3-none-any.whl", hash = "sha256:536ac0c4ea3560364cd159a6512c3c18a744a12e4e0883c07df0f8a2ff21e3fe", size = 4871 }, -] - -[[package]] -name = "pyobjc-framework-mapkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-corelocation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/15/6d/6392039d550044b60fe2f716991c2543674b62837eed61254f356380a6f2/pyobjc_framework_mapkit-12.0.tar.gz", hash = "sha256:15b6078243797aea2fbf0eee003c2868fae735ce278db0b25b9aade01cf9564a", size = 63945 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/24/0bbc14860222525f12b5a24e924f0b36dba767b11ae7e4545f4c4bd83042/pyobjc_framework_mapkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1148f2d0b29f7ee7835536163410a7471b2c33caa35181bdc0229168ab40b66d", size = 22499 }, - { url = "https://files.pythonhosted.org/packages/76/0f/69c419cb574e8c873adbc37ddc69da241a7e6f1bb53d88b03eeb399fbde5/pyobjc_framework_mapkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f764a0fa8fc082400a3ad3cf2e2ac5fddabab26e932c25cae914a9c3626e4208", size = 22500 }, - { url = "https://files.pythonhosted.org/packages/63/10/135fdfc7dee64c03fc0acfeaa9f2d13c5053558a0bd532dec00f210049a2/pyobjc_framework_mapkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8e59fc3045205015a75fd6429324a16d4c7c00f5fa88b5d53c5d10d955768821", size = 22515 }, - { url = "https://files.pythonhosted.org/packages/85/08/83220d516eb0a95956569c4e4318951a8533f34cc38c7368c56247f5c428/pyobjc_framework_mapkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2c08689b82102767c71a81643181180e512a1316a774b99fcd1f8acc7b12d911", size = 22545 }, - { url = "https://files.pythonhosted.org/packages/ff/65/2d66304c0edb6b64d447f1ab35abcf5f3a59476aa08b5bf032aa5ba105fd/pyobjc_framework_mapkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1a4274ad4680887a39354f98b4c5cbabf4155d0a3277bd6b64417c3cd3a30748", size = 22722 }, - { url = "https://files.pythonhosted.org/packages/46/8f/6106799ec49d5ee8fbc3e821b0f6729594d90242785ebbccf4334aa41890/pyobjc_framework_mapkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:18f0596305c796cb4421b6b130903ac731a844dde6cd4c4955350c950ad7a78e", size = 22570 }, - { url = "https://files.pythonhosted.org/packages/f7/01/a683baad57f65e233b07568ca44fcfc2f5a584ddb4f16ee436671421d51f/pyobjc_framework_mapkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e5c6a91a75dfcc529376db0931ee0a029a5ad355a8fbddc4b6010155a1e716ea", size = 22785 }, -] - -[[package]] -name = "pyobjc-framework-mapkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-corelocation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/36/bb/2a668203c20e509a648c35e803d79d0c7f7816dacba74eb5ad8acb186790/pyobjc_framework_mapkit-12.1.tar.gz", hash = "sha256:dbc32dc48e821aaa9b4294402c240adbc1c6834e658a07677b7c19b7990533c5", size = 63520 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/54/d6cc71c8dd456c36367f198e9373948bb012b8c690c9fb0966d3adf03488/pyobjc_framework_mapkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48a5c9a95735d41a12929446fc45fd43913367faddedf852ab02e0452e06db4", size = 22492 }, - { url = "https://files.pythonhosted.org/packages/d0/8f/411067e5c5cd23b9fe4c5edfb02ed94417b94eefe56562d36e244edc70ff/pyobjc_framework_mapkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e8aa82d4aae81765c05dcd53fd362af615aa04159fc7a1df1d0eac9c252cb7d5", size = 22493 }, - { url = "https://files.pythonhosted.org/packages/11/00/a3de41cdf3e6cd7a144e38999fe1ea9777ad19e19d863f2da862e7affe7b/pyobjc_framework_mapkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:84ad7766271c114bdc423e4e2ff5433e5fc6771a3338b5f8e4b54d0340775800", size = 22518 }, - { url = "https://files.pythonhosted.org/packages/5e/f1/db2aa9fa44669b9c060a3ae02d5661052a05868ccba1674543565818fdaf/pyobjc_framework_mapkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ea210ba88bef2468adb5c8303071d86118d630bf37a29d28cf236c13c3bb85ad", size = 22539 }, - { url = "https://files.pythonhosted.org/packages/c1/e4/7dd9f7333eea7f4666274f568cac03e4687b442c9b20622f244497700177/pyobjc_framework_mapkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dfee615b73bb687101f08e7fd839eea2aa8b241563ad4cabbcb075d12f598266", size = 22712 }, - { url = "https://files.pythonhosted.org/packages/06/ef/f802b9f0a620039b277374ba36702a0e359fe54e8526dcd90d2b061d2594/pyobjc_framework_mapkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c2f47e813e81cb13e48343108ea3185a856c13bab1cb17e76d0d87568e18459b", size = 22562 }, - { url = "https://files.pythonhosted.org/packages/fd/6b/aae01ed3322326e034113140d41a6d7529d2a298d9da3ce1f89184fbeb95/pyobjc_framework_mapkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:59a746ac2d4bb32fca301325430b37cde7959213ce1b6c3e30fa40d6085bf75a", size = 22775 }, -] - -[[package]] -name = "pyobjc-framework-mediaaccessibility" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7b/34/8d90408cf4e864e4800fe0fc481389c11e09f43dbe63305a73b98591fa80/pyobjc_framework_mediaaccessibility-12.0.tar.gz", hash = "sha256:bc9f2ca30dea75b43e5aa6d15dfbd2ec357d4afad42eb34f95d0056180e75182", size = 16374 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/36/74b3970406cf5f831476f978513fc6614e8f40c1eb26f73e3a763e978547/pyobjc_framework_mediaaccessibility-12.0-py2.py3-none-any.whl", hash = "sha256:391244c646abe6489bd5886e4a5d11e7a3da5443f9a7a74bbd48520c19252082", size = 4809 }, -] - -[[package]] -name = "pyobjc-framework-mediaaccessibility" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e0/10/dc1007e56944ed2e981e69e7b2fed2b2202c79b0d5b742b29b1081d1cbdd/pyobjc_framework_mediaaccessibility-12.1.tar.gz", hash = "sha256:cc4e3b1d45e84133d240318d53424eff55968f5c6873c2c53267598853445a3f", size = 16325 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/0c/7fb5462561f59d739192c6d02ba0fd36ad7841efac5a8398a85a030ef7fc/pyobjc_framework_mediaaccessibility-12.1-py2.py3-none-any.whl", hash = "sha256:2ff8845c97dd52b0e5cf53990291e6d77c8a73a7aac0e9235d62d9a4256916d1", size = 4800 }, -] - -[[package]] -name = "pyobjc-framework-mediaextension" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9d/7b/8ecced95e3a4f5e8fc639202bbdebb1ffbe444341b63f42f732b718cad00/pyobjc_framework_mediaextension-12.0.tar.gz", hash = "sha256:af68dd3cc6a647990322e55f6b37b63da783ad400816c238a8bae6f2fea72a07", size = 39809 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/67/cf9ef7af0ea9eb6d4e2e1c33355437a651ad54576e6a30571e42b037eb1e/pyobjc_framework_mediaextension-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e9aebf4d38f3cace6dde7780cce09014b00b0eaeb31a3edbbdce94f147451b4b", size = 38971 }, - { url = "https://files.pythonhosted.org/packages/5b/44/01c205b2b9b98e040bef95aa0700259d18d611fc3f1e00be1a87318e8d99/pyobjc_framework_mediaextension-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:30f122f45bf0dc2d0d48de1869d1364e87b1d3ab3c66de302cd9c9a08203b00d", size = 38973 }, - { url = "https://files.pythonhosted.org/packages/8b/70/d3e62741d49559869fc4d606b325a5c3f60aeeef736409d559d0dc1e4ca4/pyobjc_framework_mediaextension-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6ebf5db7141c16e59bdc2f3482a182da7a3db4bfb72ca4e5fe11be3d09e03ba5", size = 38993 }, - { url = "https://files.pythonhosted.org/packages/be/79/13074763bd2e6f74f7fc348fae0d98e719c0ae3d60138176350cc0ef96ac/pyobjc_framework_mediaextension-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6aece94b2f169ea5d40f1a3d2aef1303bb5e60007b998256b02be7c186cd2417", size = 39004 }, - { url = "https://files.pythonhosted.org/packages/80/9b/cec1662e6c4b2cdc5ef1ad6efce6a4c29ee190a07deeaa91939ea811fe58/pyobjc_framework_mediaextension-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8dac2b40b58d23d4beaf48e816e9f40acf3460fe0e3e07a0b370540e3aa2b5b1", size = 39207 }, - { url = "https://files.pythonhosted.org/packages/2e/15/92bae64fd90f98bcaf9cf61b3e8d4ed38a5b1d10a68606edd237fdcbce51/pyobjc_framework_mediaextension-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fcc00c8f07c2c4317db230ac69dc5b7b1fc92e45ba7b1d7d22b733dd33055939", size = 38993 }, - { url = "https://files.pythonhosted.org/packages/aa/8a/fe2cae7146797c8b534f8c37699c5853c7492df59582074caef6120dcf6b/pyobjc_framework_mediaextension-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ba4c141613b908623b56af02ca6ebaea7d75679efbbe5dbf4865a3095e4544e4", size = 39199 }, -] - -[[package]] -name = "pyobjc-framework-mediaextension" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d6/aa/1e8015711df1cdb5e4a0aa0ed4721409d39971ae6e1e71915e3ab72423a3/pyobjc_framework_mediaextension-12.1.tar.gz", hash = "sha256:44409d63cc7d74e5724a68e3f9252cb62fd0fd3ccf0ca94c6a33e5c990149953", size = 39425 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/fa/8b3f2dc9cbf39ba7b647d70da464112bcaa7159118d688bdbdb64b062d5a/pyobjc_framework_mediaextension-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1aa7964ffa9e1d877a45c86692047928dbe2735188d89b52aad7d6e24b2fbcb9", size = 38961 }, - { url = "https://files.pythonhosted.org/packages/8e/6f/60b63edf5d27acf450e4937b7193c1a2bd6195fee18e15df6a5734dedb71/pyobjc_framework_mediaextension-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9555f937f2508bd2b6264cba088e2c2e516b2f94a6c804aee40e33fd89c2fb78", size = 38957 }, - { url = "https://files.pythonhosted.org/packages/2b/ed/99038bcf72ec68e452709af10a087c1377c2d595ba4e66d7a2b0775145d2/pyobjc_framework_mediaextension-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:442bc3a759efb5c154cb75d643a5e182297093533fcdd1c24be6f64f68b93371", size = 38973 }, - { url = "https://files.pythonhosted.org/packages/01/df/7ecdbac430d2d2844fb2145e26f3e87a8a7692fa669d0629d90f32575991/pyobjc_framework_mediaextension-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0f3bdca0eb11923efc1e3b95beb1e6e01c675fd7809ed7ef0b475334e3562931", size = 38991 }, - { url = "https://files.pythonhosted.org/packages/fc/98/88ac2edeb69bde3708ef3f7b6434f810ba89321d8375914ad642c9a575b0/pyobjc_framework_mediaextension-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0101b8495051bac9791a0488530386eefe9c722477a5239c5bd208967d0eaa67", size = 39198 }, - { url = "https://files.pythonhosted.org/packages/4a/f0/fcff5206bb1a7ce89b9923ceb3215af767fd3c91dafc9d176ba08d6a3f30/pyobjc_framework_mediaextension-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4f66719c97f508c619368377d768266c58cc783cf5fc51bd9d8e5e0cad0c824c", size = 38980 }, - { url = "https://files.pythonhosted.org/packages/26/30/bdea26fe2ca33260edcbd93f212e0141c6e145586d53c58fac4416e0135f/pyobjc_framework_mediaextension-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:eef6ab5104fdfb257e17a73c2e7c11b0db09a94ced24f2a4948e1d593ec6200e", size = 39191 }, -] - -[[package]] -name = "pyobjc-framework-medialibrary" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/27/731cc25ea86cce6d19f3db99b1bb14d350ec6842120f834d7cc6f0001bab/pyobjc_framework_medialibrary-12.0.tar.gz", hash = "sha256:783b4a01ba731e3b7a1d0c76db66bc2be7ef0d6482ad153a65da7c996f1329cc", size = 16068 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/57/5abdc5ef3ddd8a97bbcc0e9a375078f375d10f7e30222e1bef5348507fd2/pyobjc_framework_medialibrary-12.0-py2.py3-none-any.whl", hash = "sha256:f2a69aa959bf878bf6ce98d256e45d5ed19926f0d81d9ecbabd51ffdd2b54d18", size = 4372 }, -] - -[[package]] -name = "pyobjc-framework-medialibrary" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/34/e9/848ebd02456f8fdb41b42298ec585bfed5899dbd30306ea5b0a7e4c4b341/pyobjc_framework_medialibrary-12.1.tar.gz", hash = "sha256:690dcca09b62511df18f58e8566cb33d9652aae09fe63a83f594bd018b5edfcd", size = 15995 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/cd/eeaf8585a343fda5b8cf3b8f144c872d1057c845202098b9441a39b76cb0/pyobjc_framework_medialibrary-12.1-py2.py3-none-any.whl", hash = "sha256:1f03ad6802a5c6e19ee3208b065689d3ec79defe1052cb80e00f54e1eff5f2a0", size = 4361 }, -] - -[[package]] -name = "pyobjc-framework-mediaplayer" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/98/58/022b4daa464db3448be0481abefcf08634b2bc3f121641eb33dfb9e1ee03/pyobjc_framework_mediaplayer-12.0.tar.gz", hash = "sha256:800c5a7b6652be54cbeefb7c9b2de02a7eaec9b7fef7a91c354dfc16880664e7", size = 35440 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/2b/968ae22ef293c4b3f0373a28dd188156097b38494a7deadf30448b5666c7/pyobjc_framework_mediaplayer-12.0-py2.py3-none-any.whl", hash = "sha256:c754087dfdbd065bceb31cc224363e91b05305d530db4295cffbb0c3ae0613e4", size = 7131 }, -] - -[[package]] -name = "pyobjc-framework-mediaplayer" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e9/f0/851f6f47e11acbd62d5f5dcb8274afc969135e30018591f75bf3cbf6417f/pyobjc_framework_mediaplayer-12.1.tar.gz", hash = "sha256:5ef3f669bdf837d87cdb5a486ec34831542360d14bcba099c7c2e0383380794c", size = 35402 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/c0/038ee3efd286c0fbc89c1e0cb688f4670ed0e5803aa36e739e79ffc91331/pyobjc_framework_mediaplayer-12.1-py2.py3-none-any.whl", hash = "sha256:85d9baec131807bfdf0f4c24d4b943e83cce806ab31c95c7e19c78e3fb7eefc8", size = 7120 }, -] - -[[package]] -name = "pyobjc-framework-mediatoolbox" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/68/18/c7db54e9feafab8a201d05a668d4ffc5272ea65413c1032e1171f5bb98ca/pyobjc_framework_mediatoolbox-12.0.tar.gz", hash = "sha256:fcf0bd774860120203763e141a72f11aeeb2624c6ccd9beab4c79e24d31fb493", size = 22746 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/e2/fa1ed9d2af6c65c46e4533aca9285a78a2f27d5695c9e354f18266debda6/pyobjc_framework_mediatoolbox-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5456b7f21e13efdb6baad4c45147f34672a284af84ebb4940b778f3bfe3d8f63", size = 12656 }, - { url = "https://files.pythonhosted.org/packages/f7/6a/5a15a573fce30d1302db210759e4a3c89547c2078ff9dd9372a0339752ca/pyobjc_framework_mediatoolbox-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6f06e1c08b33eb5456fec6a7053053fddbe61e05abeac5d8465c295bd1fb19cd", size = 12667 }, - { url = "https://files.pythonhosted.org/packages/db/f2/553237e5116fd31f384d2cac449c93d8dbf66f856f5c39de967c60a829e0/pyobjc_framework_mediatoolbox-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8241e20199d6901156eac95e8b57588967f048ef2249165952d6a43323a24d5f", size = 12826 }, - { url = "https://files.pythonhosted.org/packages/0e/ea/a2e521193d4d8dda383567959ba268335bb923f172cfc4adf4c0ea2dd045/pyobjc_framework_mediatoolbox-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bc2c679aca82e5a058241da80198765713e247f824890cdeac6660003c9339af", size = 12837 }, - { url = "https://files.pythonhosted.org/packages/38/f2/039e5debaade9a90a2ae62a5bd8f74a3da4ab21be9dced0b4b41fb021b8e/pyobjc_framework_mediatoolbox-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:768267825941f0c61d124338aaa28cc5b37b321bc07a029959a03d4e745a13f6", size = 13432 }, - { url = "https://files.pythonhosted.org/packages/88/14/4eb75241eb1bf63f088463ba90927016f21dcc8d3c717be83e4c3a47a621/pyobjc_framework_mediatoolbox-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:859455a780b88a9102f808b64aeecb67ba2c9d1951b77edf5228fe5edf2f26a9", size = 12823 }, - { url = "https://files.pythonhosted.org/packages/10/81/850825ac65a6012fc13173113f898951fc8396f7d31a32c55f4712381fa8/pyobjc_framework_mediatoolbox-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2b1d568651cf7106962057e5aeeb49484141cf5c89efdd0bb01480a2a13e307b", size = 13425 }, -] - -[[package]] -name = "pyobjc-framework-mediatoolbox" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a3/71/be5879380a161f98212a336b432256f307d1dcbaaaeb8ec988aea2ada2cd/pyobjc_framework_mediatoolbox-12.1.tar.gz", hash = "sha256:385b48746a5f08756ee87afc14037e552954c427ed5745d7ece31a21a7bad5ab", size = 22305 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/91/f0/e567b73e1bf1740339114b71faf724859927e68b06ff6a5c6791e5b7d66a/pyobjc_framework_mediatoolbox-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91e039f988d2fd8cb852ee880e853a90902bb0fe9c337d1947241b79db145244", size = 12647 }, - { url = "https://files.pythonhosted.org/packages/8f/7a/f20ebd3c590b2cc85cde3e608e49309bfccf9312e4aca7b7ea60908d36d7/pyobjc_framework_mediatoolbox-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74de0cb2d5aaa77e81f8b97eab0f39cd2fab5bf6fa7c6fb5546740cbfb1f8c1f", size = 12656 }, - { url = "https://files.pythonhosted.org/packages/9c/94/d5ee221f2afbc64b2a7074efe25387cd8700e8116518904b28091ea6ad74/pyobjc_framework_mediatoolbox-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d7bcfeeff3fbf7e9e556ecafd8eaed2411df15c52baf134efa7480494e6faf6d", size = 12818 }, - { url = "https://files.pythonhosted.org/packages/ca/30/79aa0010b30f3c54c68673d00f06f45ef28f5093ff1e927d68b5376ea097/pyobjc_framework_mediatoolbox-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1529a754cdb5b32797d297c0bf6279c7c14a3f7088f2dfbded09edcbfda19838", size = 12830 }, - { url = "https://files.pythonhosted.org/packages/da/26/ae890f8ecce3fdda3e3a518426665467d36945c7c2729da1b073b1c44ff6/pyobjc_framework_mediatoolbox-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:13afec7d9f094ca5642e32b98680d1ee59aaa11a3d694cb1a6e454f72003f51c", size = 13420 }, - { url = "https://files.pythonhosted.org/packages/bb/42/f0354b949f1eda6a57722a7450c77ff6689e53f9b2a933c4911e4385c2c8/pyobjc_framework_mediatoolbox-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:59921d4155a88d4acd04e80497707ac0208af3ff41574acba68214376e9fca23", size = 12808 }, - { url = "https://files.pythonhosted.org/packages/74/1e/7d9ffccd2053cd540e45e24aec03b70ac3d93d8bd99c8005b468a260c8a2/pyobjc_framework_mediatoolbox-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d99bf31c46b382f466888d1d80f738309916cbb83be0b4f1ccab5200de8f06c9", size = 13411 }, -] - -[[package]] -name = "pyobjc-framework-metal" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/fe/529b6061e9d2012330fd5089fb9db3b56061557ca97762c961688eca41ad/pyobjc_framework_metal-12.0.tar.gz", hash = "sha256:1a4c08118089239986a3c4f7b19722e18986626933f0960be027c682a70d8758", size = 182133 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/7e/51f787e5e10492ef75a8710be8371fba91009c13c038f5219984e00ab4ca/pyobjc_framework_metal-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:57cf43192a765a89d17bade352d476077bcc15adb45fb6a563c60e6c8ab398d4", size = 75931 }, - { url = "https://files.pythonhosted.org/packages/99/b3/e364e20ca7929eb805d7bebb462cbb5d864ae2e874cf6488fdecaea165e5/pyobjc_framework_metal-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eed803a7a47586db394af967e3ad0b44dc25940525a08aa12fa790e2d5c8b092", size = 75931 }, - { url = "https://files.pythonhosted.org/packages/3f/90/3b5c7048f158a6c3aa2e0e04b3ec746e7862ac43c931e14337188e7550ae/pyobjc_framework_metal-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dae747eae25599d2e5a42f832b1e1e25afbecab78a4a193f8dccfc2add85afe3", size = 75852 }, - { url = "https://files.pythonhosted.org/packages/29/e2/640e8ca7c55b73c44e462ac6f80a34ee1fae1c45b945020dbf59b7909144/pyobjc_framework_metal-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8f902490f46203f2f97e8bba7980b608fa653103b0e2a5e3ab2f6099abb4723a", size = 75881 }, - { url = "https://files.pythonhosted.org/packages/2a/8b/275c9ad42814a31c7afe0d1c2147cfaf2ddf96354247167900141702f8c4/pyobjc_framework_metal-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e147b7138ca953bc32be546dc34d10932552f2eee6ac83e438df3d0cc6f25c50", size = 76428 }, - { url = "https://files.pythonhosted.org/packages/dd/6f/5c970d719f4ce23910d59bbe342ad621739ef81720cdd34976127fdd5869/pyobjc_framework_metal-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:877d4dc62d9086fe0e1007cd6a4c3d310fb8692311264a7908466f0f595f814b", size = 75876 }, - { url = "https://files.pythonhosted.org/packages/e6/7c/8fd303cae8afc6c8d748194c6eb6cf8684bf465c796b4c949f92d72ea156/pyobjc_framework_metal-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:85dc55e77bf36e3217b81c27f0c17398959fce45acda917db2af7096d8ca90ec", size = 76499 }, -] - -[[package]] -name = "pyobjc-framework-metal" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e7/06/a84f7eb8561d5631954b9458cfca04b690b80b5b85ce70642bc89335f52a/pyobjc_framework_metal-12.1.tar.gz", hash = "sha256:bb554877d5ee2bf3f340ad88e8fe1b85baab7b5ec4bd6ae0f4f7604147e3eae7", size = 181847 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/be/6edbdb4ef80fa1806562294bd7afe607d09f1b3e83291d9fa2f85c7a8457/pyobjc_framework_metal-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d563b540ef659176938f0eaa7d8353d5b7d4235aa76fc7fddb1beb00391c0905", size = 75919 }, - { url = "https://files.pythonhosted.org/packages/1d/cf/edbb8b6dd084df3d235b74dbeb1fc5daf4d063ee79d13fa3bc1cb1779177/pyobjc_framework_metal-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:59e10f9b36d2e409f80f42b6175457a07b18a21ca57ff268f4bc519cd30db202", size = 75920 }, - { url = "https://files.pythonhosted.org/packages/d0/48/9286d06e1b14c11b65d3fea1555edc0061d9ebe11898dff8a14089e3a4c9/pyobjc_framework_metal-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38ab566b5a2979a43e13593d3eb12000a45e574576fe76996a5e1eb75ad7ac78", size = 75841 }, - { url = "https://files.pythonhosted.org/packages/1c/aa/caa900c1fdb9a3b7e48946c5206171a7adcf3b5189bcdb535cf899220909/pyobjc_framework_metal-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2f04a1a687cc346d23f3baf1ec56e3f42206709b590058d9778b52d45ca1c8ab", size = 75871 }, - { url = "https://files.pythonhosted.org/packages/9c/a9/a42a173ea2d94071bc0f3112006a5d6ba7eaf0df9c48424f99b3e867e02d/pyobjc_framework_metal-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3f3aa0848f4da46773952408b4814a440b210dc3f67f5ec5cfc0156ca2c8c0b6", size = 76420 }, - { url = "https://files.pythonhosted.org/packages/88/8a/890dbc66bdae2ec839e28a15f16696ed1ab34b3cf32d58ed4dcd76183f25/pyobjc_framework_metal-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2440db9b7057b6bafbabe8a2c5dde044865569176058ee34a7d138df0fc96c8c", size = 75876 }, - { url = "https://files.pythonhosted.org/packages/4d/73/df12913fa33b52ff0e2c3cb7d578849a198b2a141d6e07e8930856a40851/pyobjc_framework_metal-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:476eeba3bebc2b3010e352b6bd28e3732432a3d5a8d5c3fb1cebd257dc7ea41e", size = 76483 }, -] - -[[package]] -name = "pyobjc-framework-metalfx" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e9/22/dae4a062b18093668ea6e4abd7d0a4b122ee2e67f8482804a93baa7539f0/pyobjc_framework_metalfx-12.0.tar.gz", hash = "sha256:179d1f1f3efa42cbd788e40d424bf5f0335d72282c766d9f79868b262904579b", size = 29852 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/bb/96aa1805e6f121d62f6589006bf50f5ab1d576ca1b382caf08280cd5e2c8/pyobjc_framework_metalfx-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4df182756408f60d3ba865fee6e96c87731cd37f5c562aa3c82666df9931f9f4", size = 15028 }, - { url = "https://files.pythonhosted.org/packages/31/fb/77f251307a6d92490a01a07815f1b25f32dd1bded15f1459035276088cc0/pyobjc_framework_metalfx-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:600e4b02b25d66e589bc5d3fbc91d55b0ac04cef582bac33a9f22435513dd49b", size = 15034 }, - { url = "https://files.pythonhosted.org/packages/fe/73/52660e5aa3ce662ffa8bd64441023dd38650519346a648376e96ac0a80e7/pyobjc_framework_metalfx-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:41b60f5309a6d3202a2d452ead86cfb3716e9f56382fd410b8f21402a752a427", size = 15064 }, - { url = "https://files.pythonhosted.org/packages/f1/79/2b9b4fba3820c6df6b9e2dd5802900edf5dcac1688fd5ef5490cfe1c7033/pyobjc_framework_metalfx-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:faf296274f00912bdcba4bf1986e608fcbf6c8f2ef3bd6b0a9e5f7bd35c4a8d8", size = 15079 }, - { url = "https://files.pythonhosted.org/packages/4c/69/d9a19e982b7d6a5d28cede0a9c251a2944aa09fcf24e42efb1a6228f7eb7/pyobjc_framework_metalfx-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1c61569bc4b95c4f6ca9bd878f3a231b216d13abbd999f55d77da2a20d8232de", size = 15298 }, - { url = "https://files.pythonhosted.org/packages/f6/bb/b636890598aa9dd2ca7a439e1ca9b62c2badfb9f0a2a3c675450c1348b59/pyobjc_framework_metalfx-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:241a2857509714dfe0e8e15dbcdd226d9540266151186f889fdca360d619477f", size = 16353 }, - { url = "https://files.pythonhosted.org/packages/f3/36/337d6fbf8b92ae38d1f38110462269e87841fb7b3f4f967e694020a639b7/pyobjc_framework_metalfx-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:951bc0176a5761100cbaa880977868797df4282ef7428f35210764e6cf7fc192", size = 16600 }, -] - -[[package]] -name = "pyobjc-framework-metalfx" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f1/09/ce5c74565677fde66de3b9d35389066b19e5d1bfef9d9a4ad80f0c858c0c/pyobjc_framework_metalfx-12.1.tar.gz", hash = "sha256:1551b686fb80083a97879ce0331bdb1d4c9b94557570b7ecc35ebf40ff65c90b", size = 29470 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/f6/c179930896e287ec9b4498154b00eeb3ecb9c9d4fe7e55a4e02f5532b7fa/pyobjc_framework_metalfx-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c28d875f8817cb80c44afaebdbc2960af66ea8eef63e0236fab3dde9be685d50", size = 15021 }, - { url = "https://files.pythonhosted.org/packages/8b/e5/5494639c927085bbba1a310e73662e0bda44b90cdff67fa03a4e1c24d4c4/pyobjc_framework_metalfx-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ec3f7ab036eae45e067fbf209676f98075892aa307d73bb9394304960746cd2", size = 15026 }, - { url = "https://files.pythonhosted.org/packages/2a/0b/508e3af499694f4eec74cc3ab0530e38db76e43a27db9ecb98c50c68f5f9/pyobjc_framework_metalfx-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a4418ae5c2eb77ec00695fa720a547638dc252dfd77ecb6feb88f713f5a948fd", size = 15062 }, - { url = "https://files.pythonhosted.org/packages/02/b6/baa6071a36962e11c8834d8d13833509ce7ecb63e5c79fe2718d153a8312/pyobjc_framework_metalfx-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d443b0ee06de1b21a3ec5adab315840e71d52a74f8585090200228ab2fa1e59d", size = 15073 }, - { url = "https://files.pythonhosted.org/packages/42/d1/b4ea7e6c0c66710db81f315c48dca0252ed81bbde4a41de21b8d54ff2241/pyobjc_framework_metalfx-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dcd334b42c5c50ec88e049f1b0bf43544b52e3ac09fd57b712fec8f63507190e", size = 15286 }, - { url = "https://files.pythonhosted.org/packages/ae/a6/fe7108290f798f79f2efbcf511fdb605b834f3616496fae8bec0c719ba65/pyobjc_framework_metalfx-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b5c4d81ebe71be69db838041ec93c12fb0458fe68a06f61f87a4d892135953dc", size = 16349 }, - { url = "https://files.pythonhosted.org/packages/cd/4b/2c782b429baed0cc545154c9b4f866eb86aa2d74977452e2c9c2157daef8/pyobjc_framework_metalfx-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:795f081c558312f51079de2d739412d286229f421282cfab36e195fef557f2ca", size = 16588 }, -] - -[[package]] -name = "pyobjc-framework-metalkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/75/e9/668136ba83197b2ff34c018710d55abebd8de0267a138f12df0dde17772d/pyobjc_framework_metalkit-12.0.tar.gz", hash = "sha256:e5c2c27fc5ecd7dd553524cb3ccce7cbd0fa62d39e58e532a06ce977069a7132", size = 25878 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/38/02/6736b71f9364cb1f29cd971bca136e7d77779f8151f9ed0e968a56d826e4/pyobjc_framework_metalkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d4924eecb409480699bca23a01e9b437418e732f490d9716b544556d4c3a1d45", size = 8742 }, - { url = "https://files.pythonhosted.org/packages/05/30/f9c05e635d58c87f8aaa7c87eeb6827b6caaf5809ef9e8da3ebd51de60a7/pyobjc_framework_metalkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35d7cf3f487d49f961058d54e84f07aead6d73137b7dd922e13ea8868b65415d", size = 8746 }, - { url = "https://files.pythonhosted.org/packages/72/3c/e16552347b21d27fc29cf455d28fb3f0e5710b63e1dffdb56f3495d382bf/pyobjc_framework_metalkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ad4e3184f18855bfe62ca9a7f41d4de8373098eaef03c2dbd041d5ffe0d38fa2", size = 8763 }, - { url = "https://files.pythonhosted.org/packages/1f/3b/a3cd18064ce891bb3d5bdf06d2674da0d7af02e20728cbe6532ca7b8b383/pyobjc_framework_metalkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2794b834d70821777e44e876740aa0254669749711d938759c0a63cf0056ea3b", size = 8780 }, - { url = "https://files.pythonhosted.org/packages/d9/26/31bc69b7e926415c8289b997a04fee7bc397919edddc22a97d0a31262c05/pyobjc_framework_metalkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f64a827edf6777ea0b4f93f035bac23042b7de6101e80306d37d0ea175aeb79a", size = 8931 }, - { url = "https://files.pythonhosted.org/packages/70/4b/4f9e1c46a5a790a2dc497b9c466e1b352a2e491c331f88db8a7638af9406/pyobjc_framework_metalkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d494e8e16d24174c957b67e35bee18fcaf8b43caf3d9f51d27c6454a9fb9529e", size = 8830 }, - { url = "https://files.pythonhosted.org/packages/5c/19/eac92586b4e87551c2d33c87356af0a03c5ddae6cd17f85d5f0b765e93cf/pyobjc_framework_metalkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8192274350db236a06504486bedbe06f9c857b619cd83e176e6d20c328320dac", size = 8981 }, -] - -[[package]] -name = "pyobjc-framework-metalkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/14/15/5091147aae12d4011a788b93971c3376aaaf9bf32aa935a2c9a06a71e18b/pyobjc_framework_metalkit-12.1.tar.gz", hash = "sha256:14cc5c256f0e3471b412a5b3582cb2a0d36d3d57401a8aa09e433252d1c34824", size = 25473 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/fa/aa992323c039a68afb211196200f6e2b7331c2a8e515986ba6bf4df48791/pyobjc_framework_metalkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8d2cfdf2dc4e8fc229dafe7c76787caa5430a0588d205bc9b61affd2d35d26a", size = 8734 }, - { url = "https://files.pythonhosted.org/packages/10/c5/f72cbc3a5e83211cbfa33b60611abcebbe893854d0f2b28ff6f444f97549/pyobjc_framework_metalkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:28636454f222d9b20cb61f6e8dc1ebd48237903feb4d0dbdf9d7904c542475e5", size = 8735 }, - { url = "https://files.pythonhosted.org/packages/bf/c0/c8b5b060895cd51493afe3f09909b7e34893b1161cf4d93bc8e3cd306129/pyobjc_framework_metalkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c4869076571d94788fe539fabfdd568a5c8e340936c7726d2551196640bd152", size = 8755 }, - { url = "https://files.pythonhosted.org/packages/2b/cd/f04e991f4db4512e64ea7611796141c316506e733d75c468512df0e8fda4/pyobjc_framework_metalkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4dec94431ee888682115fe88ae72fca8bffc5df0957e3c006777c1d8267f65c3", size = 8769 }, - { url = "https://files.pythonhosted.org/packages/b7/b8/6f2fc56b6f8aee222d584edbdef4cf300e90782813e315418eba6d395533/pyobjc_framework_metalkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d16958c0d4e2a75e1ea973de8951c775da1e39e378a7a7762fbce1837bf3179c", size = 8922 }, - { url = "https://files.pythonhosted.org/packages/d4/52/84c2829df343322025d3ad474153359c850c3189555c0819155044b8777d/pyobjc_framework_metalkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a1b8ac9582b65d2711836b56dd24ce450aa740b0c478da9ee0621cc4c64e64cb", size = 8824 }, - { url = "https://files.pythonhosted.org/packages/09/e9/ca6433dbdee520b8e3be3383b2b350692af4366f03842f6d79510a87c33c/pyobjc_framework_metalkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3d41ab59184d1a79981c5fb15d042750047a1a73574efa26179d7e174ddeaca6", size = 8972 }, -] - -[[package]] -name = "pyobjc-framework-metalperformanceshaders" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/5f/86c48d83cf90da2f626a3134a51c0531a739ad325d64f7cf3e92ddcab8bf/pyobjc_framework_metalperformanceshaders-12.0.tar.gz", hash = "sha256:a87af3d89122fd35de03157d787c207eebd17446e4532868b8d70f1723cc476f", size = 137694 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/80/f9353922c697d26df1ed6474f67d5bb4ca565a377765781a925b36a47fcf/pyobjc_framework_metalperformanceshaders-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b2f817cd7437f066033e0610eb0a0fdac00882d7ec56d1f68cc60d20c97d5bf0", size = 32992 }, - { url = "https://files.pythonhosted.org/packages/c3/6f/e5d994c0a162eb7e1fadb1e58faa02fffa61b6f68fdf50d3e414a80534bb/pyobjc_framework_metalperformanceshaders-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:90fbdceba581a047ffa97a20f873d2b298f4ee35052539628ece2397ccd4684b", size = 32991 }, - { url = "https://files.pythonhosted.org/packages/55/fe/d6f20bec6b508c5b5fe5980c82a36e12c21bdc3f066d51a17ed39b5c8fbd/pyobjc_framework_metalperformanceshaders-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b7ab6a6ce766f0cc3d848f74cfb055d7d07084155298d7f0e4537cfb4a80f58c", size = 33246 }, - { url = "https://files.pythonhosted.org/packages/fa/d7/b82d26abfb909d850c91f23b8172ffe4e0931aeadf3a56d210767e79f887/pyobjc_framework_metalperformanceshaders-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b2dc5df8f8c27c468aa9795fa8960edb9e42ad3d5d5727a4ac04d9bf391f3d6c", size = 33268 }, - { url = "https://files.pythonhosted.org/packages/77/69/caaa23c8b20963180f188e9dd30f7663fee0a1ecef3abc0456506da5e725/pyobjc_framework_metalperformanceshaders-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2275c3b28d9c0f5cd53ec03145f3acda640ddda9c598582f4160e588c70f0cd1", size = 33464 }, - { url = "https://files.pythonhosted.org/packages/ae/14/5ac7db29658d21233fda1824d5b5f75ece202567d7125e66fdc6a7eeb345/pyobjc_framework_metalperformanceshaders-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:48c56fec469f70364171890b371808aa8aba24289aecae6aecf4c34a73b326eb", size = 33332 }, - { url = "https://files.pythonhosted.org/packages/3c/36/b357c4cacb231bd1691c7ea124dc984304b5b3cbf4258374f154e24a8b0c/pyobjc_framework_metalperformanceshaders-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:331e1d06a486be9a41f2c0b80386bbdf59a6f3518873016589daef5416439090", size = 33546 }, -] - -[[package]] -name = "pyobjc-framework-metalperformanceshaders" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metal", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c5/68/58da38e54aa0d8c19f0d3084d8c84e92d54cc8c9254041f07119d86aa073/pyobjc_framework_metalperformanceshaders-12.1.tar.gz", hash = "sha256:b198e755b95a1de1525e63c3b14327ae93ef1d88359e6be1ce554a3493755b50", size = 137301 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/52/8f/6bf7d8e5ce093463e70d73dfad1cc2d100a0dd8bd8cfd6a1c1d3365902d0/pyobjc_framework_metalperformanceshaders-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b7a3a0dbe2a26c2c579e28124ec6ddd0d664a9557cbf64029d48b766d5af0209", size = 32994 }, - { url = "https://files.pythonhosted.org/packages/00/0f/6dc06a08599a3bc211852a5e6dcb4ed65dfbf1066958feb367ba7702798a/pyobjc_framework_metalperformanceshaders-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0159a6f731dc0fd126481a26490683586864e9d47c678900049a8ffe0135f56", size = 32988 }, - { url = "https://files.pythonhosted.org/packages/62/84/d505496fca9341e0cb11258ace7640cd986fe3e831f8b4749035e9f82109/pyobjc_framework_metalperformanceshaders-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c00e786c352b3ff5d86cf0cf3a830dc9f6fc32a03ae1a7539d20d11324adb2e8", size = 33242 }, - { url = "https://files.pythonhosted.org/packages/e9/6c/8f3d81905ce6b0613fe364a6dd77bf4ed85a6350f867b40a5e99b69e8d07/pyobjc_framework_metalperformanceshaders-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:240321f2fad1555b5ede3aed938c9f37da40a57fc3e7e9c96a45658dc12c3771", size = 33269 }, - { url = "https://files.pythonhosted.org/packages/58/44/4813f8606a91a88f67a0b0c02ed9e2449cbfd5b701f7ca61cf9ce3fe0769/pyobjc_framework_metalperformanceshaders-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0aa287ee357fe5bd5660b3d0688f947a768cda8565dbbca3b876307b9876639e", size = 33457 }, - { url = "https://files.pythonhosted.org/packages/b4/d7/1177d8815549c90d8ddb0764b62c17bdaca6d6e03b8b54f3e7137167d8f3/pyobjc_framework_metalperformanceshaders-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5d5a0a5c859c5493d597842f3d011c59bf7c10d04a29852016298364fca9e16e", size = 33324 }, - { url = "https://files.pythonhosted.org/packages/4b/35/35302a62ae81e3b31c84bc1a2fc6fd0ad80a43b7edee9ef9bca482d55edd/pyobjc_framework_metalperformanceshaders-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c23b3a0f869c730e50851468a082014f1b0b3d4433d5d15ac28d6a736084026c", size = 33534 }, -] - -[[package]] -name = "pyobjc-framework-metalperformanceshadersgraph" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-metalperformanceshaders", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/89/e9/4a57eb83ecb167528e3ae3114ad1bf114c56216449da5c236ae41f8ad797/pyobjc_framework_metalperformanceshadersgraph-12.0.tar.gz", hash = "sha256:8323f119faa1d2a141e9ac895b7b796e016e891e70ef0af000863714af845a21", size = 43030 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/21/b4e0f21f013c54e0675b57a5523ee1c13b1bea73b34455a2450a92e9cc0e/pyobjc_framework_metalperformanceshadersgraph-12.0-py2.py3-none-any.whl", hash = "sha256:3e8f978d733e911fff61b212a27553142596edd53b80a630b20a0db06f59a601", size = 6491 }, -] - -[[package]] -name = "pyobjc-framework-metalperformanceshadersgraph" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-metalperformanceshaders", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/56/7ad0cd085532f7bdea9a8d4e9a2dfde376d26dd21e5eabdf1a366040eff8/pyobjc_framework_metalperformanceshadersgraph-12.1.tar.gz", hash = "sha256:b8fd017b47698037d7b172d41bed7a4835f4c4f2a288235819d200005f89ee35", size = 42992 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/c9/5e7fd0d4bc9bdf7b442f36e020677c721ba9b4c1dc1fa3180085f22a4ef9/pyobjc_framework_metalperformanceshadersgraph-12.1-py2.py3-none-any.whl", hash = "sha256:85a1c7a6114ada05c7924b3235a1a98c45359410d148097488f15aee5ebb6ab9", size = 6481 }, -] - -[[package]] -name = "pyobjc-framework-metrickit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ea/30/89f4731851814be85d100fd329fa1aa808648c73d702c9835b2ad9d0628f/pyobjc_framework_metrickit-12.0.tar.gz", hash = "sha256:ddfc464625433ab842a0ff86ea8663226f0dee8c75af4ac8f7e7478fef4fdddd", size = 28046 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/30/c8ce7d50546ed3960cae3780403cda614d91cbb604e5962d32f56aa50fb6/pyobjc_framework_metrickit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6ade2eebbaf5b12b848227c944efa550a680765f863c1b3731ae4017d94b40e", size = 8112 }, - { url = "https://files.pythonhosted.org/packages/e7/d1/a69b591cc5ab64ae84f0d34a7ed9b49f7e078ab8fb73c834bc34d81f2b38/pyobjc_framework_metrickit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b53cb8350fea3bc98702d984f1563c4e384773303153a76ecf2109cc89a5a9b", size = 8112 }, - { url = "https://files.pythonhosted.org/packages/8c/9e/e6e14983b629c418a2230d31ca1fd3870556e1b303a18aade1dd669f7927/pyobjc_framework_metrickit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8e48f4fd67300a276873676ed3defba58cec6eab235956cb8dcdf5e2f56b9614", size = 8131 }, - { url = "https://files.pythonhosted.org/packages/11/88/c176fcd66f8e3028605a0953b5d5c9200557e494f17a0728e9ab5f721cf3/pyobjc_framework_metrickit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bee6b2bf4add4171a7aa5444bcd7015202af9d993bc8b4efbbdedc35f5cd42c", size = 8144 }, - { url = "https://files.pythonhosted.org/packages/bd/a8/7d670440f8330d76b2b9a942598adf51d0b04347919c603fbf9f4f66c345/pyobjc_framework_metrickit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c03927f02b27c929d8883e829785c721a1031e9bd8a674a71f6dacc3ab8ffc4", size = 8282 }, - { url = "https://files.pythonhosted.org/packages/ba/4b/29976e2cd5396fae84abbd5d6b0bfa7159bdede5a6c7762b90583187cf17/pyobjc_framework_metrickit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3c0b3a7892991f4de6e828fc4075409a1962eafbd773a61e689ef120159d41fb", size = 8196 }, - { url = "https://files.pythonhosted.org/packages/a0/70/d261d5b36d6bc3f9fb25fe932633cf01a29cc870b94e37d4fc7d4da1a59d/pyobjc_framework_metrickit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:56cefe73b47a42e79acf8cbd1e453dba345afa7908b2d3efc355d394a7d74150", size = 8343 }, -] - -[[package]] -name = "pyobjc-framework-metrickit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/13/5576ddfbc0b174810a49171e2dbe610bdafd3b701011c6ecd9b3a461de8a/pyobjc_framework_metrickit-12.1.tar.gz", hash = "sha256:77841daf6b36ba0c19df88545fd910c0516acf279e6b7b4fa0a712a046eaa9f1", size = 27627 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/28/25/7396861f228697190b3bde09341761c75e4fcc96eba0456cf459286e7652/pyobjc_framework_metrickit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c074060cef54004451a1f919dfc6ef46b5479ead464ae791480f8d1d044a8dc", size = 8096 }, - { url = "https://files.pythonhosted.org/packages/5e/b0/e57c60af3e9214e05309dca201abb82e10e8cf91952d90d572b641d62027/pyobjc_framework_metrickit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da6650afd9523cf7a9cae177f4bbd1ad45cc122d97784785fa1482847485142c", size = 8102 }, - { url = "https://files.pythonhosted.org/packages/b7/04/8da5126e47306438c99750f1dfed430d7cc388f6b7f420ae748f3060ab96/pyobjc_framework_metrickit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3ec96e9ec7dc37fbce57dae277f0d89c66ffe1c3fa2feaca1b7125f8b2b29d87", size = 8120 }, - { url = "https://files.pythonhosted.org/packages/f1/e0/8b379325acb39e0966f818106b3c3c8e3966bf87a7ab5c2d0e89753b0d1f/pyobjc_framework_metrickit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:884afb6ec863883318975fda38db9d741b8da5f64a2b8c34bf8edc5ff56019d4", size = 8131 }, - { url = "https://files.pythonhosted.org/packages/86/67/dcd2b18a787d3fec89e372aadb83c01879dda24fe1ed2a333a5e1d388591/pyobjc_framework_metrickit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:37674b0e049035d8b32d0221d0afbfedd3f643e4a2ee74b9a0e4e6d1b94fcd69", size = 8273 }, - { url = "https://files.pythonhosted.org/packages/d6/8b/a97a1463fc4453e5b1c157816a8356d800c4d66d5624154dc6dbdd7f52c0/pyobjc_framework_metrickit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f6cde78ba1a401660fe0e3a945d1941efef255c1021a8772a838aceb31bd74e6", size = 8190 }, - { url = "https://files.pythonhosted.org/packages/ec/8b/a61b0fb889a2833b23fe2d4439d910a3d24a7eab83abc15c82f1fa1541a7/pyobjc_framework_metrickit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8f407172e1ecc8ee63afadda477a0f1c633c09be761edcadab8a9d1eebddd27c", size = 8333 }, -] - -[[package]] -name = "pyobjc-framework-mlcompute" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b8/b6/054839433183983c923d91e383cff027a8d6dc2f106d485869584fa4c030/pyobjc_framework_mlcompute-12.0.tar.gz", hash = "sha256:64bdaf38c564c583dbb242677acd8b4e0d2e100ea651953f61fecbb5ba94a844", size = 40717 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/5d/aa7eaa1a5a3d709f8df2955b2898048e666d54e25473e74854384ecf4c06/pyobjc_framework_mlcompute-12.0-py2.py3-none-any.whl", hash = "sha256:ba172ffd3b3544a3dccd305b91b538da10f80214c3d8ddd2a730a5caa75669c7", size = 6753 }, -] - -[[package]] -name = "pyobjc-framework-mlcompute" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/00/69/15f8ce96c14383aa783c8e4bc1e6d936a489343bb197b8e71abb3ddc1cb8/pyobjc_framework_mlcompute-12.1.tar.gz", hash = "sha256:3281db120273dcc56e97becffd5cedf9c62042788289f7be6ea067a863164f1e", size = 40698 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ac/f7/4614b9ccd0151795e328b9ed881fbcbb13e577a8ec4ae3507edb1a462731/pyobjc_framework_mlcompute-12.1-py2.py3-none-any.whl", hash = "sha256:4f0fc19551d710a03dfc4c7129299897544ff8ea76db6c7539ecc2f9b2571bde", size = 6744 }, -] - -[[package]] -name = "pyobjc-framework-modelio" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/a1/e4497a07fdbe81ef48fd33af1123ba2613d72a59f9affa6aeb0b302dc85f/pyobjc_framework_modelio-12.0.tar.gz", hash = "sha256:15341997259521e132b2010c0bea5928143e47de6772a447d4d1c834db0f7f01", size = 66906 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/e0/47d89335256e6f7fcb86ff3c33ccc87a947ed3486e35df1a676ed9f9f6a2/pyobjc_framework_modelio-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9234713255b3ff366196ca68dc63362860adb0577a213f7a9472cdf43fa2efec", size = 20188 }, - { url = "https://files.pythonhosted.org/packages/19/30/6b6c417fc491dea3370e8a74a3d9863f83dba59d1ae742b641fafeecb240/pyobjc_framework_modelio-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0792e2330a8362e5ebc1d42766abed2a22d735179a604432e0bb0d1ad7367dbe", size = 20187 }, - { url = "https://files.pythonhosted.org/packages/73/48/385ca68bcac6bda97facce67db86ee9a2fd1f723be2da492a2643f86aaf7/pyobjc_framework_modelio-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2943f5378a0f3494816e2ffad11ec02dfaf8a446b50863f1daaf5eb232a4cffb", size = 20203 }, - { url = "https://files.pythonhosted.org/packages/37/5b/8141ca4b2b014343c92b916eca8640b43b5f3a14aa6bbba6048907bc62d9/pyobjc_framework_modelio-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0df12e3251b180fa40a5f6328f5719839e6a1815a64d7cd10ab349d7777135cf", size = 20221 }, - { url = "https://files.pythonhosted.org/packages/9d/1c/3e9e303d88a0ad878fd6c23107836185da9f4b81b2777e327b5838fd2880/pyobjc_framework_modelio-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:de869883bc1c6d376ba5484fca7971a6c184c4e46e573d31a26f333ff1e86305", size = 20452 }, - { url = "https://files.pythonhosted.org/packages/ed/75/e71deca023d4159c76da3faae3dff49bc5fa87eae14dfada07a884e5498c/pyobjc_framework_modelio-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d89883d1b5ba79fbc49c6513eea88c7cc57a4cd23446bb24301b52d19288c45d", size = 20189 }, - { url = "https://files.pythonhosted.org/packages/73/df/ba2b49fb757075f67ba29ea6fdb519863753e140665edf4817a6e8c89f05/pyobjc_framework_modelio-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:38ee4a61cdaaed709c18a52dff285a678b179705b8105d3cc329d240fa085a00", size = 20436 }, -] - -[[package]] -name = "pyobjc-framework-modelio" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b4/11/32c358111b623b4a0af9e90470b198fffc068b45acac74e1ba711aee7199/pyobjc_framework_modelio-12.1.tar.gz", hash = "sha256:d041d7bca7c2a4526344d3e593347225b7a2e51a499b3aa548895ba516d1bdbb", size = 66482 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/84/76322f49840776f7255d7bdf9a548925fd8a6ba0efc50e4aef3e6d6f4667/pyobjc_framework_modelio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e25d153ab231ca95954e3d12082f48aea4ec72db48269421011679f926638d07", size = 20183 }, - { url = "https://files.pythonhosted.org/packages/35/c0/c67b806f3f2bb6264a4f7778a2aa82c7b0f50dfac40f6a60366ffc5afaf5/pyobjc_framework_modelio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1c2c99d47a7e4956a75ce19bddbe2d8ada7d7ce9e2f56ff53fc2898367187749", size = 20180 }, - { url = "https://files.pythonhosted.org/packages/f6/0e/b8331100f0d658ecb3e87e75c108e2ae8ac7c78b521fd5ad0205b60a2584/pyobjc_framework_modelio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:68d971917c289fdddf69094c74915d2ccb746b42b150e0bdc16d8161e6164022", size = 20193 }, - { url = "https://files.pythonhosted.org/packages/db/fa/f111717fd64015fc3906b7c36dcfca4dda1d31916251c9640a8c70ff611a/pyobjc_framework_modelio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dad6e914b6efe8ea3d2cd10029c4eb838f1ad6a12344787e8db70c4149df8cfc", size = 20208 }, - { url = "https://files.pythonhosted.org/packages/58/d3/6f3131a16694684f3dfa6b2845054941dfb69a63f18980eea02a25c06f6d/pyobjc_framework_modelio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f00b739f9333d611e7124acf95491bdf025dd32ba7c48b7521f6845b92e2dcce", size = 20448 }, - { url = "https://files.pythonhosted.org/packages/14/14/52b19e6ba86de2d38aed69a091c5d0c436c007ddf73441cbcc0a217db1d4/pyobjc_framework_modelio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5250e7f58cc71ca8928b33a00ac0dc56ca0eead97507f4bfcf777582a4b05e39", size = 20183 }, - { url = "https://files.pythonhosted.org/packages/e9/2c/13a22d22ffb1c175db9c23bea5f26dc3002c72056b68a362c04697778914/pyobjc_framework_modelio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:aa76942301b2115c8904bcb10c73b19d10d7731ea35e6155cbfd6934d7c91e4b", size = 20426 }, -] - -[[package]] -name = "pyobjc-framework-multipeerconnectivity" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/95/af/e1379399637fc292eae354e15a1a55037c9c198494f30f65c8a6cb3ad771/pyobjc_framework_multipeerconnectivity-12.0.tar.gz", hash = "sha256:91796d7a2b88ea2cc44c03474e6730e9f647a018406c324943c224c1f3ea1fc5", size = 23213 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/8f/1b1a231c773e1d6fbadefb990d9ef6e20ea9d359f6ddcc65ac3b76c068f2/pyobjc_framework_multipeerconnectivity-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:61013ccdf2d1d133541d0cdc10db58dcd955364690f3a102949277093483d076", size = 11991 }, - { url = "https://files.pythonhosted.org/packages/3a/84/4476ac81f33e897535fcb5975cfaf55c6e1bf7aa98a0d23f0882ab519869/pyobjc_framework_multipeerconnectivity-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dd2799edc92018080bf19acfe6e6d857365ce945003f7ff9afde55a28925ace5", size = 11993 }, - { url = "https://files.pythonhosted.org/packages/35/82/48ed4a1bddf346893d6c048ac3b9f8cb4fe766b9cb9d1cc53c75b72bc513/pyobjc_framework_multipeerconnectivity-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:98b1007f5437c69cc551333ca17cf6b210d515bd90ef36ccb1cc93a0d300b0d5", size = 12014 }, - { url = "https://files.pythonhosted.org/packages/01/ac/5ab35302e2c4ce1d65fef94b5b5238b175d355f4fdf13d9ce712d9cb1f54/pyobjc_framework_multipeerconnectivity-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:73b36e3d1b5c813586de1c2f05f93c86f625d60754258c0599cede7edd8b282f", size = 12028 }, - { url = "https://files.pythonhosted.org/packages/5c/9c/0ce837d6be1f1d641f4d4e83c6646a44872d8e4a3083bdd233df95fb259b/pyobjc_framework_multipeerconnectivity-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1ed9397cb0923d91307284b14f8a66779a3e9699f1d2e5a6c3b0abc3fefc322c", size = 12211 }, - { url = "https://files.pythonhosted.org/packages/f2/7f/ef8ae7925925c20eb191bb929082f12ceedbc7c7e1b07417556b09cbebd8/pyobjc_framework_multipeerconnectivity-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d345e777362c190bd80e61f2ad646dcea08956db6460d55542bfa363deadfeef", size = 12001 }, - { url = "https://files.pythonhosted.org/packages/e1/83/4751f168073fca6e94282495c18cbda0ac3f705998bebe7f49c81ee287df/pyobjc_framework_multipeerconnectivity-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7e4dca99ee378430a4be66b319c841e3e3bcdc0d0a35e82f611c294380dbc663", size = 12224 }, -] - -[[package]] -name = "pyobjc-framework-multipeerconnectivity" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/87/35/0d0bb6881004cb238cfd7bf74f4b2e42601a1accdf27b2189ec61cf3a2dc/pyobjc_framework_multipeerconnectivity-12.1.tar.gz", hash = "sha256:7123f734b7174cacbe92a51a62b4645cc9033f6b462ff945b504b62e1b9e6c1c", size = 22816 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/40/da/3f6ab6d80c1cf1deb23df34ccb16b3e94ff634454dd7b9cceecffa1cd57c/pyobjc_framework_multipeerconnectivity-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39eff9abbd40cb7306cfbc6119a95ce583074102081571c6c90569968e655787", size = 11978 }, - { url = "https://files.pythonhosted.org/packages/12/eb/e3e4ba158167696498f6491f91a8ac7e24f1ebbab5042cd34318e5d2035c/pyobjc_framework_multipeerconnectivity-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7372e505ed050286aeb83d7e158fda65ad379eae12e1526f32da0a260a8b7d06", size = 11981 }, - { url = "https://files.pythonhosted.org/packages/33/8d/0646ff7db36942829f0e84be18ba44bc5cd96d6a81651f8e7dc0974821c1/pyobjc_framework_multipeerconnectivity-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c3bd254a16debed321debf4858f9c9b7d41572ddf1058a4bacf6a5bcfedeeff", size = 12001 }, - { url = "https://files.pythonhosted.org/packages/93/65/589cf3abaec888878d9b86162e5e622d4d467fd88a5f55320f555484dd54/pyobjc_framework_multipeerconnectivity-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:25169a2fded90d13431db03787ac238b4ed551c44f7656996f8dfb6b6986b997", size = 12019 }, - { url = "https://files.pythonhosted.org/packages/0e/77/c184a36ba61d803d482029021410568b0a2155b5bf0dd2def4256ab58a1e/pyobjc_framework_multipeerconnectivity-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3a6c2d233ecda3127bd6b6ded289ef0d1fa6ddc3acbab7f8af996c96090f7bfc", size = 12194 }, - { url = "https://files.pythonhosted.org/packages/d6/64/fd5932ab32bec0e340b60ca87f57c07a9d963b56ab5f857787efcec236e4/pyobjc_framework_multipeerconnectivity-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:014f92d7e176154531c3173cf7113b6be374c041646c4b86d93afb84d2ea334c", size = 11989 }, - { url = "https://files.pythonhosted.org/packages/99/1d/a7d2d26a081d5b9328a99865424078d9f9981e35c8e38a71321252e529f5/pyobjc_framework_multipeerconnectivity-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6490651224d1403d96e52ca3aed041b79b5456e3261abd9cb225c1fbc1893a69", size = 12210 }, -] - -[[package]] -name = "pyobjc-framework-naturallanguage" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/91/785780967e0cf8f78ac2d69f3b7624d9fd52ec746bd655fb738fec584b39/pyobjc_framework_naturallanguage-12.0.tar.gz", hash = "sha256:a5fc834d9fe81cc2e45dd3749de3df0edfc9ab41b1c31efa4fcf0d00a51c9dfb", size = 23561 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/0c/bfe280f01e61a2ef43f6fc341a8f039ff1e7a20283f159fda05c24f5c1b2/pyobjc_framework_naturallanguage-12.0-py2.py3-none-any.whl", hash = "sha256:acfb624e438a14285aaaa2233b064d875fe3895a0fc0578f67dc15fdba85e33b", size = 5330 }, -] - -[[package]] -name = "pyobjc-framework-naturallanguage" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8a/d1/c81c0cdbb198d498edc9bc5fbb17e79b796450c17bb7541adbf502f9ad65/pyobjc_framework_naturallanguage-12.1.tar.gz", hash = "sha256:cb27a1e1e5b2913d308c49fcd2fd04ab5ea87cb60cac4a576a91ebf6a50e52f6", size = 23524 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/d8/715a11111f76c80769cb267a19ecf2a4ac76152a6410debb5a4790422256/pyobjc_framework_naturallanguage-12.1-py2.py3-none-any.whl", hash = "sha256:a02ef383ec88948ca28f03ab8995523726b3bc75c49f593b5c89c218bcbce7ce", size = 5320 }, -] - -[[package]] -name = "pyobjc-framework-netfs" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e2/fd/f7df2b99f900856b15ea9cd425577cff4b7e0399c01b48fc317036e8067c/pyobjc_framework_netfs-12.0.tar.gz", hash = "sha256:0bbd02e171ba634c44a357763d3204f743af60004fd0a2bd76fd2e6918602c52", size = 14859 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/66/bc/d17ecc6a17327d7a950af52b8a68c471d7b5689108d77b9c079ec2ccc884/pyobjc_framework_netfs-12.0-py2.py3-none-any.whl", hash = "sha256:a1251a56a4a0716ebb97569993c5406b3adaecd16c9042347e8bce14fa3a140f", size = 4169 }, -] - -[[package]] -name = "pyobjc-framework-netfs" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/46/68/4bf0e5b8cc0780cf7acf0aec54def58c8bcf8d733db0bd38f5a264d1af06/pyobjc_framework_netfs-12.1.tar.gz", hash = "sha256:e8d0c25f41d7d9ced1aa2483238d0a80536df21f4b588640a72e1bdb87e75c1e", size = 14799 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/6b/8c2f223879edd3e3f030d0a9c9ba812775519c6d0c257e3e7255785ca6e7/pyobjc_framework_netfs-12.1-py2.py3-none-any.whl", hash = "sha256:0021f8b141e693d3821524c170e9c645090eb320e80c2935ddb978a6e8b8da81", size = 4163 }, -] - -[[package]] -name = "pyobjc-framework-network" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/67/e0/a51caeb37e7e737392c53a45a21418fd14057b8abea7a427347fbd6a3d6b/pyobjc_framework_network-12.0.tar.gz", hash = "sha256:5524e449c22e3feda1938bf071e64cec149cea4f1459959f2e7de513a6c902ec", size = 57385 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/d9/219d01f6c649fa0ef39cd049bec2f98e4639b309433f97afde753781daf5/pyobjc_framework_network-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d9a52f67275dfd4b2092cdc6323782a924a385d572dd1ebdf693bb5629f0bd45", size = 19606 }, - { url = "https://files.pythonhosted.org/packages/65/c6/d83d5c4d7f4f63a6240ddec3dd52d6efe52f1b1edcd599f696845a3b6b66/pyobjc_framework_network-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:220be97a68eec81d4b2e9068c8936bf5ef7033916be034a0b93e5b932cf77a00", size = 19604 }, - { url = "https://files.pythonhosted.org/packages/a5/cc/3cecf0d2a4ba79f0f6f44a119a0c41e790a96b6310819664e819b1e900b5/pyobjc_framework_network-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:22ee38233ff09bd9a76e067dce5f979bdc65c56959ed82c913e93259803828d9", size = 19623 }, - { url = "https://files.pythonhosted.org/packages/00/88/d15c0414495d3cdb5305d560acd1dd510c5a8f301d3a0d2e7aa5e4416c4f/pyobjc_framework_network-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:168e331063b50c020b350c9426ff61d90f6400c5d953bb4e0ff6e23c76c5a96d", size = 19634 }, - { url = "https://files.pythonhosted.org/packages/06/b2/d4ccf7e04e213d2a11c0de573e16ed461933901c12f0d7fc8cb9eac607ad/pyobjc_framework_network-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d8783a4c83e7e4bc6c5e829e216e1e0f107bdbe51500a333dd2afe456bc2fabb", size = 19706 }, - { url = "https://files.pythonhosted.org/packages/c7/08/588cba7bca8877c27d0903ef686043bb974ada9cd53625495342b2f17759/pyobjc_framework_network-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0c19e64b1bc2164671fe6cabe2885154201995a282ee02b1f3bd2caba792f23f", size = 19369 }, - { url = "https://files.pythonhosted.org/packages/d5/9a/8fbfa8b7a930c83838110e194ed8c7bf4d7a94b4a78d7773d22d9a1114bf/pyobjc_framework_network-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1a9e47e4f2693ea773dcbe97f8c16ed5531b579a6b471656a5b003291a90a87", size = 19421 }, -] - -[[package]] -name = "pyobjc-framework-network" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/38/13/a71270a1b0a9ec979e68b8ec84b0f960e908b17b51cb3cac246a74d52b6b/pyobjc_framework_network-12.1.tar.gz", hash = "sha256:dbf736ff84d1caa41224e86ff84d34b4e9eb6918ae4e373a44d3cb597648a16a", size = 56990 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/b7/8c29d66920d026532b4acb4ed4e608fd1ee41db602217d6abf2c5f9ea14f/pyobjc_framework_network-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:07264f1dc5d7c437dfbbbf9302a60ead87bbce14692c4cc20b2a259a9fe20b3d", size = 19591 }, - { url = "https://files.pythonhosted.org/packages/e3/7c/4f9fc6b94be3e949b7579128cbb9171943e27d1d7841db12d66b76aeadc3/pyobjc_framework_network-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d1ad948b9b977f432bf05363381d7d85a7021246ebf9d50771b35bf8d4548d2b", size = 19593 }, - { url = "https://files.pythonhosted.org/packages/9d/ef/a53f04f43e93932817f2ea71689dcc8afe3b908d631c21d11ec30c7b2e87/pyobjc_framework_network-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5e53aad64eae2933fe12d49185d66aca62fb817abf8a46f86b01e436ce1b79e4", size = 19613 }, - { url = "https://files.pythonhosted.org/packages/d1/f5/612539c2c0c7ce1160bd348325747f3a94ea367901965b217af877a556a1/pyobjc_framework_network-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e341beb32c7f95ed3e38f00cfed0a9fe7f89b8d80679bf2bd97c1a8d2280180a", size = 19632 }, - { url = "https://files.pythonhosted.org/packages/c6/ff/6a1909206f6d840ebcf40c9ea5de9a9ee07e7bb1ffa4fe573da7f90fac12/pyobjc_framework_network-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8344e3b57afccc762983e4629ec5eff72a3d7292afa8169a3e2aada3348848a8", size = 19696 }, - { url = "https://files.pythonhosted.org/packages/e0/6d/a7fb29708f2797fa96bfa6ae740b8154ac719e150939393453073121b7c9/pyobjc_framework_network-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:25e20ec81e23699e1182808384b8e426cb3ae9adaf639684232fc205edb48183", size = 19361 }, - { url = "https://files.pythonhosted.org/packages/40/54/9cb89d6fac3e2e8d34107fa6de36ab7890844428b3d4fb4a9692f3cc4926/pyobjc_framework_network-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:39be2f25b13d2d530e893f06ddd3f277b83233020a0ab58413554fe8e0496624", size = 19406 }, -] - -[[package]] -name = "pyobjc-framework-networkextension" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ab/ab/27769fdb0af13c8ba781b052fa7e1b5c77944665bab3a85a39fbf9f08f50/pyobjc_framework_networkextension-12.0.tar.gz", hash = "sha256:fff9e747d2d5da8352649028abaabc610bc3fa2779573e70df216aff7c00cb44", size = 63197 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/a8/ae783d00250d4dbc1cc980e86b8dfd3afccae968ad0a41dc69ffef31824e/pyobjc_framework_networkextension-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:76db1789904887d89b06eae63c027a58234e5301a86223c95487bd44e37fb30a", size = 14371 }, - { url = "https://files.pythonhosted.org/packages/53/6d/b939daf7fdbceaa6a41d5ed594270675937744feb191140c423f6ee6c366/pyobjc_framework_networkextension-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:23205ca928a5af2dd7e0f7d723c0b7dde0eaec6b5a15d298bc22d4ff8e5ae8b6", size = 14372 }, - { url = "https://files.pythonhosted.org/packages/94/24/c460edf133f5b5d460cd5ae46c8e849a584a55cccacfe261a9b50b7303a4/pyobjc_framework_networkextension-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a4b5e9054b750bdd77725629cb886c76b1b40b600914da3e6e1a4f8edba98718", size = 14386 }, - { url = "https://files.pythonhosted.org/packages/36/b8/bdb501e1e0f32a1e4f20ceef81ef04c6e6584f928968a00dc1e3f17d27c3/pyobjc_framework_networkextension-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4738b8521873d1403fcbaa6c0282697a1104e53e229547232da2773bf37f096e", size = 14403 }, - { url = "https://files.pythonhosted.org/packages/e6/c9/0643087a70694ddc3c80c5cd44fd379b00dffe17532351eaf2f18ea24daa/pyobjc_framework_networkextension-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a5e7b8d5b1811480e6f00bc6b4a89c2d2c3c8298ef906689541f01214e866b3c", size = 14546 }, - { url = "https://files.pythonhosted.org/packages/cf/1e/1d2ebe00ffe2f4bd197534a1f8da80826b53bfd6312fe6bb6e76a3e46996/pyobjc_framework_networkextension-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:22efe55a39a8a36b5a3d68e3d527351a060b66fdf1c6c4e9c88bbe501e93684a", size = 14465 }, - { url = "https://files.pythonhosted.org/packages/e0/b7/47c4297f0d0cd08fb72c00f2d60d248ffe71801192d8f1c0c4a9ed23d5a6/pyobjc_framework_networkextension-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:930572f289ef6450521411834d55df207885cb2c81385d2256ca334a1f103869", size = 14599 }, -] - -[[package]] -name = "pyobjc-framework-networkextension" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bf/3e/ac51dbb2efa16903e6af01f3c1f5a854c558661a7a5375c3e8767ac668e8/pyobjc_framework_networkextension-12.1.tar.gz", hash = "sha256:36abc339a7f214ab6a05cb2384a9df912f247163710741e118662bd049acfa2e", size = 62796 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/2d/e67ba8031d4cd819e1c3a961da6602390f55111df3dcf1ba5b429d6594e8/pyobjc_framework_networkextension-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd96684be3a942a301eb38b5f46236091c87ec9830ed8d56be434e420af45387", size = 14365 }, - { url = "https://files.pythonhosted.org/packages/6e/4e/aa34fc983f001cdb1afbbb4d08b42fd019fc9816caca0bf0b166db1688c1/pyobjc_framework_networkextension-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c3082c29f94ca3a05cd1f3219999ca3af9b6dece1302ccf789f347e612bb9303", size = 14368 }, - { url = "https://files.pythonhosted.org/packages/f6/14/4934b10ade5ad0518001bfc25260d926816b9c7d08d85ef45e8a61fdef1b/pyobjc_framework_networkextension-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:adc9baacfc532944d67018e381c7645f66a9fa0064939a5a841476d81422cdcc", size = 14376 }, - { url = "https://files.pythonhosted.org/packages/cb/a8/5d847dd3ffea913597342982614eb17bad4c29c07fac3447b56c9c5136ab/pyobjc_framework_networkextension-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:63453b38e5a795f9ff950397e5a564071c2b4fd3360d79169ab017755bbb932a", size = 14399 }, - { url = "https://files.pythonhosted.org/packages/b4/a8/8d56c6ca7826633f856924256761338094eeab1ae40783c29c14b9746bc9/pyobjc_framework_networkextension-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e21d8ec762ded95afaff41b68425219df55ca8c3f777b810238441a4f7c221e3", size = 14539 }, - { url = "https://files.pythonhosted.org/packages/b6/00/460b9ef440663299153ac0c165a56916620016435d402e4cf4cfdc74b521/pyobjc_framework_networkextension-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21076ec44790023b579f21f6b88e13388d353de98658dbb50369df53e6a9c967", size = 14453 }, - { url = "https://files.pythonhosted.org/packages/4d/ee/c9ea9e426b169d3ae54ddcad46828a6236168cfadbab37abc892d07a75ce/pyobjc_framework_networkextension-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:06d78bab27d4a7c51c9787b1f4cfcfed4d85488fcd96d93bac400bb2690ddceb", size = 14589 }, -] - -[[package]] -name = "pyobjc-framework-notificationcenter" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/82/bd/76355e7ecdb558291c0699d825d962a1f53089645eee8e92dcc418aa13c8/pyobjc_framework_notificationcenter-12.0.tar.gz", hash = "sha256:ecec30ef99c440f7013eab2c147f413d9b87047eb3b4a6656ec58513f67fe61e", size = 21729 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/86/ad/2842a230c2d65f9aad1265f6b545e94be89be7d734ab59da0046e038d3f8/pyobjc_framework_notificationcenter-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:532fb340031b840096e1c08ea6d622cb2009f88837273df8b27be7f484f752f4", size = 9884 }, - { url = "https://files.pythonhosted.org/packages/0a/1d/756379b05a43ceeead1a20fbd355c420436dc6f90a61dcedcbffe31eff7d/pyobjc_framework_notificationcenter-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e13c69f1e1042a79d5d883df0b6e79fdd19c5bc149b2ffdcca36ef4a80a5fd5c", size = 9882 }, - { url = "https://files.pythonhosted.org/packages/d1/30/845b1a3e3d650f80e661eb7f960f80aaae7a8ce4d2578440f3f189c2cd9d/pyobjc_framework_notificationcenter-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156af0528623a79312cda912621bf05e4aecec27028cfd588f1a69240b38996a", size = 9908 }, - { url = "https://files.pythonhosted.org/packages/a3/69/fff76d3fac81ed3a74aee9c302897114d1273de17132155919e3031bdb80/pyobjc_framework_notificationcenter-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3aa8371456c57a7de65b6073ace39106310284394749ed72c0b0e47dd92169bc", size = 9928 }, - { url = "https://files.pythonhosted.org/packages/25/0c/62d484e4ca483446f777b5f1d2c43b62bc2da9c2e71fe6cc00ff24e1611e/pyobjc_framework_notificationcenter-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:367cda711515e60bf6259bf4e9f447c606a0f2a1a471b6a6d70a801ded653d2e", size = 10123 }, - { url = "https://files.pythonhosted.org/packages/eb/c7/2d71cf162b284f093d9784ecd08de38dbf8737f5a73c3760c92660afdfd5/pyobjc_framework_notificationcenter-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d8594430a18312c4c818696cf4c67d1054f2ced0304a2d17f16585b36a4fb76b", size = 9991 }, - { url = "https://files.pythonhosted.org/packages/60/7e/8058987767d48f134939b467af39a46398e308153a01ea8b6fd339b2f779/pyobjc_framework_notificationcenter-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fac468fb2a86c8fb886bf99b73046ea522503bc6123ea3636a42ec88d54f84f9", size = 10198 }, -] - -[[package]] -name = "pyobjc-framework-notificationcenter" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c6/12/ae0fe82fb1e02365c9fe9531c9de46322f7af09e3659882212c6bf24d75e/pyobjc_framework_notificationcenter-12.1.tar.gz", hash = "sha256:2d09f5ab9dc39770bae4fa0c7cfe961e6c440c8fc465191d403633dccc941094", size = 21282 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/fb/b2a9c66467ccd36137d77240939332308f847ffa7e2c00cade6da3604f9e/pyobjc_framework_notificationcenter-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f227d4b2e197f614b64302faea974f25434827da30f6d46b3a8d73cb3788cf69", size = 9874 }, - { url = "https://files.pythonhosted.org/packages/47/aa/03526fc0cc285c0f8cf31c74ce3a7a464011cc8fa82a35a1637d9878c788/pyobjc_framework_notificationcenter-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:84e254f2a56ff5372793dea938a2b2683dd0bc40c5107fede76f9c2c1f6641a2", size = 9871 }, - { url = "https://files.pythonhosted.org/packages/d8/05/3168637dd425257df5693c2ceafecf92d2e6833c0aaa6594d894a528d797/pyobjc_framework_notificationcenter-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82a735bd63f315f0a56abd206373917b7d09a0ae35fd99f1639a0fac4c525c0a", size = 9895 }, - { url = "https://files.pythonhosted.org/packages/44/9a/f2b627dd4631a0756ee3e99b57de1e78447081d11f10313ed198e7521a31/pyobjc_framework_notificationcenter-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:06470683f568803f55f1646accfbf5eaa3fda56d15f27fca31bdbff4eaa8796c", size = 9917 }, - { url = "https://files.pythonhosted.org/packages/f4/f5/5fff664571dc48eea9246d31530fc564c654af827bfca1ddab47b72dc344/pyobjc_framework_notificationcenter-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bdf87e5f027bec727b24bb1764a9933af9728862f6a0e9a7f4a1835061f283dd", size = 10110 }, - { url = "https://files.pythonhosted.org/packages/da/0a/621ed53aa7521d534275b8069c0f0d5e6517d772808a49add8476ad5c86d/pyobjc_framework_notificationcenter-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9495b1b0820a3e82bfcd0331b92bc29e4e4ca3a4e58d6ec0e1eda6c301ec4460", size = 9980 }, - { url = "https://files.pythonhosted.org/packages/78/1a/b427a2316fb783a7dc58b12ce4d58de3263927614a9ff04934aeb10d8b8a/pyobjc_framework_notificationcenter-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1aca78efbf3ceab878758ec11dacef0c85629f844eee9e21645319dd98fd3673", size = 10186 }, -] - -[[package]] -name = "pyobjc-framework-opendirectory" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f2/3b/da8e6c62df0b721683940737a12f324342ee25e321fe8d26457bc394523e/pyobjc_framework_opendirectory-12.0.tar.gz", hash = "sha256:1fdcd865486b984dd19aa6e1f6ac200d43d1fb12ca34b56b44978ad19ed0b2b7", size = 61060 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/44/e761c1bcf2516561d144668f85a0adcc60e2866475e6af56293b9a57c4ea/pyobjc_framework_opendirectory-12.0-py2.py3-none-any.whl", hash = "sha256:009de69034f254381786ee14cabacbc892d05204127caaeae8fe05d57172fffa", size = 11855 }, -] - -[[package]] -name = "pyobjc-framework-opendirectory" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/11/bc2f71d3077b3bd078dccad5c0c5c57ec807fefe3d90c97b97dd0ed3d04b/pyobjc_framework_opendirectory-12.1.tar.gz", hash = "sha256:2c63ce5dd179828ef2d8f9e3961da3bfa971a57db07a6c34eedc296548a928bb", size = 61049 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/e7/3c2dece9c5b28af28a44d72a27b35ea5ffac31fed7cbd8d696ea75dc4a81/pyobjc_framework_opendirectory-12.1-py2.py3-none-any.whl", hash = "sha256:b5b5a5cf3cc2fb25147b16b79f046b90e3982bf3ded1b210a993d8cfdba737c4", size = 11845 }, -] - -[[package]] -name = "pyobjc-framework-osakit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a5/f8/f861aaf97c03525d530e269f63132a5dad37db2766eb2c08c5db74e0121e/pyobjc_framework_osakit-12.0.tar.gz", hash = "sha256:1662e40c5e28a254ff611310ef226194c6e22f2b731d2e877930e22a715f2144", size = 17119 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/8a/2fabeb3f0e7be46ee64c31f7d17200fb8198139c82bca57db5344e11d1b9/pyobjc_framework_osakit-12.0-py2.py3-none-any.whl", hash = "sha256:807400db5845daaee55dbb6fbc63eadbfc120d12f4e62cb6135cf29929821f54", size = 4171 }, -] - -[[package]] -name = "pyobjc-framework-osakit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/b9/bf52c555c75a83aa45782122432fa06066bb76469047f13d06fb31e585c4/pyobjc_framework_osakit-12.1.tar.gz", hash = "sha256:36ea6acf03483dc1e4344a0cce7250a9656f44277d12bc265fa86d4cbde01f23", size = 17102 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/99/10/30a15d7b23e6fcfa63d41ca4c7356c39ff81300249de89c3ff28216a9790/pyobjc_framework_osakit-12.1-py2.py3-none-any.whl", hash = "sha256:c49165336856fd75113d2e264a98c6deb235f1bd033eae48f661d4d832d85e6b", size = 4162 }, -] - -[[package]] -name = "pyobjc-framework-oslog" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ad/81/45878bbf7814e5cb6723f1cfd21e5a9f61ef2db5ce71cc32c66db89f31d2/pyobjc_framework_oslog-12.0.tar.gz", hash = "sha256:635548ab6cfd0201f6785d7c572bc7515eb0c2fe569e1b37f8742c164ea4b2cb", size = 21589 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/a4/3b0e506a19c272aeee9e4096adc24b1ec8c3ec8a65a10bbb10f068ad9baf/pyobjc_framework_oslog-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:03bc9c050429477f4c456ed80d1c1cd1c24448f5b479a14bd8bff6fe9edc4249", size = 7807 }, - { url = "https://files.pythonhosted.org/packages/59/83/d1d60ef0006bcf7f187074da7a6fc9e57aa7b8a470a440a537c52696b637/pyobjc_framework_oslog-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e2571519ccf58405896b9e5d1d64cfa7163f4da69a52460435eab67f185ad06", size = 7805 }, - { url = "https://files.pythonhosted.org/packages/f8/d3/423d57d64471a6974eb158979878a374d3cbddb6bce905ed31e979067eb4/pyobjc_framework_oslog-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73f57b66efa716a664d99c1fbe93e9bc6b854fad5f8dc3d0ce86da443aab5fdf", size = 7825 }, - { url = "https://files.pythonhosted.org/packages/99/56/411424aed9a4ef9a50c89a4e0e8dcc29fa7f35ccfc3215bead7e1dc596ce/pyobjc_framework_oslog-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f33975c15f4d0c9a3eeb644034525220b8f53d633bbf5258ea4efb36139e0d89", size = 7840 }, - { url = "https://files.pythonhosted.org/packages/bc/27/c18fc593460113fed8e0c5c0d5ebd898621265281dcf750dedca9c8efbb9/pyobjc_framework_oslog-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fd279fbc4aebfd57fd301d68b269dd00b46649ac25de054a4ca8f4276e02a2ac", size = 8020 }, - { url = "https://files.pythonhosted.org/packages/4f/ad/c19b4c3b69c19ba7355e1d64eae0d9e670c17b9b323e977e6b2621ae3e45/pyobjc_framework_oslog-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0be22d5da3f8d45f09959b25872bac1dcccc3ed91cd2402785141f6fc40ce149", size = 7887 }, - { url = "https://files.pythonhosted.org/packages/e4/ca/9edd613d6db985e8a618418a4cc9b3769ab0533eded138f25416c8060fb9/pyobjc_framework_oslog-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:750c82d2374959dcf4abbf682a9bb1bce2cfe24333a5c38e6fc5239cabbdaea7", size = 8084 }, -] - -[[package]] -name = "pyobjc-framework-oslog" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/42/805c9b4ac6ad25deb4215989d8fc41533d01e07ffd23f31b65620bade546/pyobjc_framework_oslog-12.1.tar.gz", hash = "sha256:d0ec6f4e3d1689d5e4341bc1130c6f24cb4ad619939f6c14d11a7e80c0ac4553", size = 21193 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/ed/51e0dd2cfbd29b053d345e87965e5c15ff01d6925f5523a15d1fc9740b42/pyobjc_framework_oslog-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4bdcba214ca33563408b7703282f9a99ca61d04bcc34d5474abc68621fd44c48", size = 7795 }, - { url = "https://files.pythonhosted.org/packages/d9/d5/8d37c2e733bd8a9a16546ceca07809d14401a059f8433cdc13579cd6a41a/pyobjc_framework_oslog-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8dd03386331fbb6b39df8941d99071da0bfeda7d10f6434d1daa1c69f0e7bb14", size = 7802 }, - { url = "https://files.pythonhosted.org/packages/ee/60/0b742347d484068e9d6867cd95dedd1810c790b6aca45f6ef1d0f089f1f5/pyobjc_framework_oslog-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:072a41d36fcf780a070f13ac2569f8bafbb5ae4792fab4136b1a4d602dd9f5b4", size = 7813 }, - { url = "https://files.pythonhosted.org/packages/89/ad/719d65e7202623da7a3f22225e7f2b736f38cd6d3e0d87253b7f74f5b9c0/pyobjc_framework_oslog-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d26ce39be2394695cf4c4c699e47f9b85479cf1ccb0472614bb88027803a8986", size = 7834 }, - { url = "https://files.pythonhosted.org/packages/86/f0/a042b06f47d11bdad58d5c0cec9fe3dc4dc12ed9e476031cd4c0f08c6f18/pyobjc_framework_oslog-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6925e6764c6f293b69fbd4f5fd32a9810fca07d63e782c41cb4ebf05dc42977", size = 8016 }, - { url = "https://files.pythonhosted.org/packages/f4/c1/7a7742fc81708c53a0f736ce883069b3c1797440d691a7ed7b8e29e8dbbd/pyobjc_framework_oslog-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:16d98c49698da839b79904a2c63fee658fd4a8c4fa9223e5694270533127e8d4", size = 7875 }, - { url = "https://files.pythonhosted.org/packages/09/d2/c5703c03d6b57a3c729e211556c88e44ca4bfbe45bcbf5d6f4843095fdeb/pyobjc_framework_oslog-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:302956914b0d28dc9d8e27c2428d46c89cde8e2c64a426cda241d4b0c64315fd", size = 8075 }, -] - -[[package]] -name = "pyobjc-framework-passkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2d/ca/4cdac3a3461f46261e70cbfb551eb51d6b0eac51eb918c6e685bc5c39566/pyobjc_framework_passkit-12.0.tar.gz", hash = "sha256:6a206195385a62472b71384799f85fb5c6316e819d9bdedf905efa150ec82313", size = 54214 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/ca/754d9df0dedc2e7021973160e455900937d473c82fbccdad9982c07f4605/pyobjc_framework_passkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df84e038ccbd8b3237b2c88a5f9f24c9e15dbd74917cb1998cfd4da295b9257a", size = 14097 }, - { url = "https://files.pythonhosted.org/packages/98/b4/db0a86a3cb1ea7ec03510d88030c6281314df7ce892c9e67118c921721a5/pyobjc_framework_passkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1e746b10867418fd0b6b8805f2e586ac17a66c94b6f3d7d637f27abbb9653ec7", size = 14091 }, - { url = "https://files.pythonhosted.org/packages/a1/b6/05fdd024b20a4785fc03e12011ea4258296e1edbb3a1cc3a0432edc0befa/pyobjc_framework_passkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9fad8ecec6c16d4372fe18347106f1f451383fd19d7a80877e369d96e70e1703", size = 14110 }, - { url = "https://files.pythonhosted.org/packages/5e/95/6401621bf1c7d4ef39b529219ac03be8a85d9c52d7398ea430cc64d00720/pyobjc_framework_passkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7b6a42e5a5096570b7423f7b1b4b2a1f96ac3fd8187e39d702350b6ba5e0c960", size = 14126 }, - { url = "https://files.pythonhosted.org/packages/f7/b3/8155a5599f9eb7dd5532185298458b08cb552be5730316b4583859780d70/pyobjc_framework_passkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5c880d60b7d43d5180f1643b553b848ebff87188a01a2d6f4ccf509d4da28255", size = 14283 }, - { url = "https://files.pythonhosted.org/packages/63/cb/40ff8554c2d279a1da76f1980f9cac4b192525079b6eb9f0b58bb92b81c0/pyobjc_framework_passkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1f57f21badb615385ff0916cc40d6741684df430dd56b9472e4bb889fb10c285", size = 14135 }, - { url = "https://files.pythonhosted.org/packages/27/8e/359e25846b4d1809412941e295a92e0b445fc7c5532bce9d61c3b359d97b/pyobjc_framework_passkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3c599699efc44e674b0ab50dc35679ff03550e06b56aace9ff52ed3d374ab09a", size = 14288 }, -] - -[[package]] -name = "pyobjc-framework-passkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/d4/2afb59fb0f99eb2f03888850887e536f1ef64b303fd756283679471a5189/pyobjc_framework_passkit-12.1.tar.gz", hash = "sha256:d8c27c352e86a3549bf696504e6b25af5f2134b173d9dd60d66c6d3da53bb078", size = 53835 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/d5/0af77cf3af6ab475e5ea301afb4085902e4a09cf8c0b64793e8958170f22/pyobjc_framework_passkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b8383b36a99abea9f8d9fe05f89abca34e57d604664adc4964b1a8d6b9a0d04a", size = 14084 }, - { url = "https://files.pythonhosted.org/packages/25/e6/dabd6b99bdadc50aa0306495d8d0afe4b9b3475c2bafdad182721401a724/pyobjc_framework_passkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cb5c8f0fdc46db6b91c51ee1f41a2b81e9a482c96a0c91c096dcb78a012b740a", size = 14087 }, - { url = "https://files.pythonhosted.org/packages/d8/dc/9cb27e8b7b00649af5e802815ffa8928bd8a619f2984a1bea7dabd28f741/pyobjc_framework_passkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7e95a484ec529dbf1d44f5f7f1406502a77bda733511e117856e3dca9fa29c5c", size = 14102 }, - { url = "https://files.pythonhosted.org/packages/7c/e2/6135402be2151042b234ea241e89f4b8984f6494fd11d9f56b4a56a9d7d4/pyobjc_framework_passkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:64287e6dc54ab4c0aa8ba80a7a51762e36591602c77c6a803aee690e7464b6b2", size = 14110 }, - { url = "https://files.pythonhosted.org/packages/23/f3/ff6f81206eca1e1fb49c5a516d5eb15f143b38c5adee5b0c24076be02be9/pyobjc_framework_passkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a360e98b29eee8642f3e7d973c636284c24fb2ec2c3ee56022eeae6270943be", size = 14277 }, - { url = "https://files.pythonhosted.org/packages/dc/71/bde73bb39a836fb07c10fbdc60f38a3bd436c0aada1de0f4140737813930/pyobjc_framework_passkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e28dcf1074cddd82c2bd3ee5c3800952ac59850578b1135b38871ff584ea9d41", size = 14118 }, - { url = "https://files.pythonhosted.org/packages/c1/13/f2a4fe4fb6ce91689f16c577089fe19748b3be322a28099543a89ee6c0fb/pyobjc_framework_passkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a8782f31254016a9b152a9d1dc7ea18187729221f6ca175927be99a65b97640e", size = 14280 }, -] - -[[package]] -name = "pyobjc-framework-pencilkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e8/1d/c9ea9612680049a8b411acf817c77b18bae5180d8ad87753c172c9502b37/pyobjc_framework_pencilkit-12.0.tar.gz", hash = "sha256:efbead8c776bf9a24964586a70d937d54b087882b9b11a6e85478631e2a56f78", size = 17700 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/d4/03f54c700d0278f6696cd9b3e5f65ab99aba3e5d026367b980d8ae566489/pyobjc_framework_pencilkit-12.0-py2.py3-none-any.whl", hash = "sha256:94794222210081205aa49f16f6c19be50c6ca73b598cbd8d8a1849bb1bf88075", size = 4218 }, -] - -[[package]] -name = "pyobjc-framework-pencilkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7e/43/859068016bcbe7d80597d5c579de0b84b0da62c5c55cdf9cc940e9f9c0f8/pyobjc_framework_pencilkit-12.1.tar.gz", hash = "sha256:d404982d1f7a474369f3e7fea3fbd6290326143fa4138d64b6753005a6263dc4", size = 17664 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/26/daf47dcfced8f7326218dced5c68ed2f3b522ec113329218ce1305809535/pyobjc_framework_pencilkit-12.1-py2.py3-none-any.whl", hash = "sha256:33b88e5ed15724a12fd8bf27a68614b654ff739d227e81161298bc0d03acca4f", size = 4206 }, -] - -[[package]] -name = "pyobjc-framework-phase" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bb/a2/7de65c8a8c9eaead9f3435ef433c4cc36b6480fcaeb92799a331ffa9bcd9/pyobjc_framework_phase-12.0.tar.gz", hash = "sha256:f1c004cc26a136a6dd6a36097865f37d725bd4ba03c59c7d23859af2ce855ac7", size = 32756 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/a6/5845a8710f2087199b512e47129f07f6c6a80d6eb3aa195f2c6a50bfe23a/pyobjc_framework_phase-12.0-py2.py3-none-any.whl", hash = "sha256:a520e94ac9163bd4c586bfefdb8a129a15c5fbda59d728c4135835e3ce5c6031", size = 6913 }, -] - -[[package]] -name = "pyobjc-framework-phase" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-avfoundation", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/96/51/3b25eaf7ca85f38ceef892fdf066b7faa0fec716f35ea928c6ffec6ae311/pyobjc_framework_phase-12.1.tar.gz", hash = "sha256:3a69005c572f6fd777276a835115eb8359a33673d4a87e754209f99583534475", size = 32730 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/9f/1ae45db731e8d6dd3e0b408c3accd0cf3236849e671f95c7c8cf95687240/pyobjc_framework_phase-12.1-py2.py3-none-any.whl", hash = "sha256:99a1c1efc6644f5312cce3693117d4e4482538f65ad08fe59e41e2579b67ab17", size = 6902 }, -] - -[[package]] -name = "pyobjc-framework-photos" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/03/b6/db478ff16bf203a956a704de266c2f09e1a97cdbf386679724009d02dfce/pyobjc_framework_photos-12.0.tar.gz", hash = "sha256:3d910e0665e3b9ff9a72e43b82f2547cb33d4631e3b355e5d4cc3bae8089794b", size = 46460 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/c9/e60360967e8baf81b999009d89015e7c464cedf8e1b002c35d27edfaef2c/pyobjc_framework_photos-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1397a7ec76cbec89efebe458f90db5298afd7ce466abc3685d4678c19f643596", size = 12233 }, - { url = "https://files.pythonhosted.org/packages/67/52/4cf272abba9dea78eaf3db8f03436520812c8486d7e65fecc093203f45f2/pyobjc_framework_photos-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:840fa12246293bfe2ef2412b2646bb988b91dbdb4b3748b457fd44f4b2a1e280", size = 12238 }, - { url = "https://files.pythonhosted.org/packages/e4/db/693be9e255b04dc413b52b0c496df0297c67ee8bb6a89f02e780c4f7d079/pyobjc_framework_photos-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8eaa2ff3783f590d6906ce1b9b60f976c3473b17c805634f87927e07957b3888", size = 12268 }, - { url = "https://files.pythonhosted.org/packages/7b/c9/8296b98d4bc012d9666b350983b2e47e0b443466728c33977a8f1abe87c3/pyobjc_framework_photos-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3689fde092ef4439167abf62ed2457889de7047d2d5b3b716054220451f3c4eb", size = 12282 }, - { url = "https://files.pythonhosted.org/packages/50/59/2716769ef7dc1243f4548fd283d6c5fa6f06572b398f32ffa1e6852dd355/pyobjc_framework_photos-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cd71c1eed83941e572467bd84ffed173def01fd898249e879972f4619dc67e72", size = 12464 }, - { url = "https://files.pythonhosted.org/packages/ff/e6/5e23437570bbaa7ffb972ce09281e98d2ca3d3ec6df145b428bb9835354f/pyobjc_framework_photos-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:bb524ccf20752e3c6cc7f3953b0272cc961a7a3a7312467054986d95db3a4ece", size = 12333 }, - { url = "https://files.pythonhosted.org/packages/6a/d8/67148c57f3554d242a270323e33e161c3e74bf877c2b62c95e241bc8f369/pyobjc_framework_photos-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:426c8149610e264b81f498bfd7916294e6d427449297346047c3328aad693701", size = 12522 }, -] - -[[package]] -name = "pyobjc-framework-photos" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b8/53/f8a3dc7f711034d2283e289cd966fb7486028ea132a24260290ff32d3525/pyobjc_framework_photos-12.1.tar.gz", hash = "sha256:adb68aaa29e186832d3c36a0b60b0592a834e24c5263e9d78c956b2b77dce563", size = 47034 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/90/4b/7157ab4ed148aea40af5a8c02856672a576fe4ba471c0efa61f94d5ca21f/pyobjc_framework_photos-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ed6ca0ace0d12b469f68d35dddbede445350afd13b3c582e3297792fd08ad5f8", size = 12325 }, - { url = "https://files.pythonhosted.org/packages/e4/e0/8824f7cb167934a8aa1c088b7e6f1b5a9342b14694e76eda95fc736282b2/pyobjc_framework_photos-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f28db92602daac9d760067449fc9bf940594536e65ad542aec47d52b56f51959", size = 12319 }, - { url = "https://files.pythonhosted.org/packages/13/38/e6f25aec46a1a9d0a310795606cc43f9823d41c3e152114b814b597835a8/pyobjc_framework_photos-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eda8a584a851506a1ebbb2ee8de2cb1ed9e3431e6a642ef6a9543e32117d17b9", size = 12358 }, - { url = "https://files.pythonhosted.org/packages/71/5a/3c4e2af8d17e62ecf26e066fbb9209aacccfaf691f5faa42e3fd64b2b9f2/pyobjc_framework_photos-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bd7906d8662af29f91c71892ae0b0cab4682a3a7ef5be1a2277d881d7b8d37d3", size = 12367 }, - { url = "https://files.pythonhosted.org/packages/fb/24/566de3200d4aa05ca75b0150e5d031d2384a388f9126a4fef62a8f53818f/pyobjc_framework_photos-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c822d81c778dd2a789f15d0f329cee633391c5ad766482ffbaf40d3dc57584a3", size = 12552 }, - { url = "https://files.pythonhosted.org/packages/c2/5c/47b9e1f6ac61a80b6544091dffe42dc883217d6e670ddc188968988ba7f6/pyobjc_framework_photos-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:95d5036bdaf1c50559adfa60fd715b57c68577d2574241ed1890e359849f923f", size = 12422 }, - { url = "https://files.pythonhosted.org/packages/b4/33/48cc5ca364e62d08296de459e86daa538291b895b5d1abb670053263e0c4/pyobjc_framework_photos-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:77f181d3cb3fde9c04301c9a96693d02a139d478891e49ed76573dedf0437f49", size = 12607 }, -] - -[[package]] -name = "pyobjc-framework-photosui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d2/73/7a9adf5eda2a5de6e40527531beb9a84fc2ca897a103528317c5f14423a0/pyobjc_framework_photosui-12.0.tar.gz", hash = "sha256:59bc6a169129b8a63fc5e175923900df4957c469081686299e2ba384291972fc", size = 30235 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/ec/a959c1ae6f3a0c4f937fcbbd85a5a59408d2801feab9992d9bf72129f9d2/pyobjc_framework_photosui-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a83dd00f1309483dd1749dda5dd5576dce83568755100ca7346090b7c5d712e6", size = 11702 }, - { url = "https://files.pythonhosted.org/packages/0f/b6/abebb883165e8bc64bc3664fadca366c3aea2a88cf1b054192719eee1ca1/pyobjc_framework_photosui-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e56f6834cbe6a0c470dc1c9b4300253c77c2694728322e0031c425a8195f34c9", size = 11694 }, - { url = "https://files.pythonhosted.org/packages/b5/44/629979599411dc38fd3aae5f651e1726856ee903d641f7372008004f452f/pyobjc_framework_photosui-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:751e092ab34506d06657f22ee3c0db9c950ddc3435e8919b957f24529ef11dfc", size = 11726 }, - { url = "https://files.pythonhosted.org/packages/06/d9/c746e5ef3caf2c6ce2e0a97a8b08f9acc050d83d86843c6dc68fb8bef8c0/pyobjc_framework_photosui-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b82ac86cb22ddc9dc3b113d52d7aedee268750ce61fc9edc54f07f0ab3092db4", size = 11730 }, - { url = "https://files.pythonhosted.org/packages/18/e3/fc7404f5c14e948476ba24fc593130c4527dae16ab733998ca977fc6ddc8/pyobjc_framework_photosui-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5350e303bbfdba0ead32e3215d9aaf70ea627626d38d24088e7a99bea5403598", size = 11934 }, - { url = "https://files.pythonhosted.org/packages/5f/7a/7e82e472f8316fae6de43850a3a41dae9927404afe600399cf92dc5170b6/pyobjc_framework_photosui-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d3238e006d98d24c16bfd25583816f19ac4251841862e1b7e5aba53312497e83", size = 11733 }, - { url = "https://files.pythonhosted.org/packages/6b/f8/dd262e7daddaf97d90c00a992da820bb7a58c35e978e3db0a85f3351d63e/pyobjc_framework_photosui-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:33a83af5fe2864c83ff0ba76bed8cde6f4770fd71cb45f2abd3eb36d1eafec49", size = 11919 }, -] - -[[package]] -name = "pyobjc-framework-photosui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/40/a5/14c538828ed1a420e047388aedc4a2d7d9292030d81bf6b1ced2ec27b6e9/pyobjc_framework_photosui-12.1.tar.gz", hash = "sha256:9141234bb9d17687f1e8b66303158eccdd45132341fbe5e892174910035f029a", size = 29886 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/41/2b2e17bd4a07cd399a9031356a98390d403709b53a1e5f7f16b6b79cac43/pyobjc_framework_photosui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:14a088aeb67232a2e8f8658bd52fa0ccb896a2fe7c4e580299ec2da486c597fa", size = 11692 }, - { url = "https://files.pythonhosted.org/packages/64/6c/d678767bbeafa932b91c88bc8bb3a586a1b404b5564b0dc791702eb376c3/pyobjc_framework_photosui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:02ca941187b2a2dcbbd4964d7b2a05de869653ed8484dc059a51cc70f520cd07", size = 11688 }, - { url = "https://files.pythonhosted.org/packages/16/a2/b5afca8039b1a659a2a979bb1bdbdddfdf9b1d2724a2cc4633dca2573d5f/pyobjc_framework_photosui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:713e3bb25feb5ea891e67260c2c0769cab44a7f11b252023bfcf9f8c29dd1206", size = 11714 }, - { url = "https://files.pythonhosted.org/packages/d6/cd/204298e136ff22d3502f0b66cda1d36df89346fa2b20f4a3a681c2c96fee/pyobjc_framework_photosui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5fa3ca2bc4c8609dee46e3c8fb5f3fbfb615f39fa3d710a213febec38e227758", size = 11725 }, - { url = "https://files.pythonhosted.org/packages/f6/5e/492007c629844666e8334e535471c5492e93715965fdffe4f75227f47fac/pyobjc_framework_photosui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:713ec72b13d8399229d285ccd1e94e5ea2627cf88858977a2a91cc94d1affcd6", size = 11921 }, - { url = "https://files.pythonhosted.org/packages/33/4e/d45cae151b0b46ab4110b6ea7d689af9480a07ced3dbf5f0860b201a542a/pyobjc_framework_photosui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a8e0320908f497d1e548336569f435afd27ed964e65b2aefa3a2d2ea4c041da2", size = 11722 }, - { url = "https://files.pythonhosted.org/packages/5c/a3/c46998d5e96d38c04af9465808dba035fe3338d49092d8b887cc3f1c9f3d/pyobjc_framework_photosui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1b3e9226601533843d6764a7006c2f218123a9c22ac935345c6fb88691b9f78b", size = 11908 }, -] - -[[package]] -name = "pyobjc-framework-preferencepanes" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/34/de/efe94e0c44a893893b8bac388a4a31d141f1fafa6085999cb09fd9dd1326/pyobjc_framework_preferencepanes-12.0.tar.gz", hash = "sha256:4c5a8df26846cada6c2cc7c1739d6b9334863a85cba509c3a62d92f13c18b112", size = 24630 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/67/9ead9b61d31707d2c3ebcce7bbb019f2c469c1e069063d0dcaf76aa33a5b/pyobjc_framework_preferencepanes-12.0-py2.py3-none-any.whl", hash = "sha256:b9be4e2a69ad9809758b648b683438c3142f9803db6fab46a13e83ff31eff400", size = 4811 }, -] - -[[package]] -name = "pyobjc-framework-preferencepanes" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/bc/e87df041d4f7f6b7721bf7996fa02aa0255939fb0fac0ecb294229765f92/pyobjc_framework_preferencepanes-12.1.tar.gz", hash = "sha256:b2a02f9049f136bdeca7642b3307637b190850e5853b74b5c372bc7d88ef9744", size = 24543 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/36/7b/8ceec1ab0446224d685e243e2770c5a5c92285bcab0b9324dbe7a893ae5a/pyobjc_framework_preferencepanes-12.1-py2.py3-none-any.whl", hash = "sha256:1b3af9db9e0cfed8db28c260b2cf9a22c15fda5f0ff4c26157b17f99a0e29bbf", size = 4797 }, -] - -[[package]] -name = "pyobjc-framework-pushkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/08/0407f3752efde2913268b31dc40003a0175088683353134b437476a3bd80/pyobjc_framework_pushkit-12.0.tar.gz", hash = "sha256:202f95172bf35427eb5284c0005d72ef8a9dc5aa61f369bee371e1f1f76a2403", size = 19840 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/99/e5d1ec7613394290cdc45dbbcf0d3550b66ce14af28ddd74304d4f057cae/pyobjc_framework_pushkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0f62fa98d6433012903a5705472a1074a1a9cb3897d0ffd6df5b4c3db42eae9", size = 8169 }, - { url = "https://files.pythonhosted.org/packages/cb/54/0bcba819c1e0ed1ca215e493e6736a441b1f065e66180158cfcd03c7c7b8/pyobjc_framework_pushkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a93d7250c135d517c398158a8316bf357a74b8015331731ac31c72462d19fa89", size = 8170 }, - { url = "https://files.pythonhosted.org/packages/86/3e/1874e91099647791c56ecea1e6f23881e9c44058cd42d8bae0c4567879ce/pyobjc_framework_pushkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c0ff380dfc2b4cd67b7f84827cac4e2c947bb522624f385bde59945bf32c0782", size = 8189 }, - { url = "https://files.pythonhosted.org/packages/08/c8/44baad8b36987b12fb37f939701cc1ba03c17be7f926c58a1deda8e4c0ac/pyobjc_framework_pushkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bcc6ecba8687123432900d62fa169cee2597515a960666b54e1d2e03db51b457", size = 8201 }, - { url = "https://files.pythonhosted.org/packages/ac/06/213512593a6ed9432b626c3c24d88076e9cc713a0ac1518aa4d88ead6512/pyobjc_framework_pushkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:018caf2d8c19eb9d9bac771f97a854127eadae9752221f90f40f11067cebb739", size = 8348 }, - { url = "https://files.pythonhosted.org/packages/05/ed/2a4013d9b1f7f504cc9add94b18f2d3879628d137ead61e3d5d7b27a69ee/pyobjc_framework_pushkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:24533a577d6d39b6ad6d9bbb659232d3a8d50e29df12cfc0a36938c4caf617a9", size = 8268 }, - { url = "https://files.pythonhosted.org/packages/27/36/9c4651543ba426383d6aedcb8433d27d9285d176bd7b47fb42d77bd6b0a9/pyobjc_framework_pushkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4c32316ccb304c72be565ecb8c1befea774876cf8e4cb40cfc2926402a4fbea5", size = 8403 }, -] - -[[package]] -name = "pyobjc-framework-pushkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/45/de756b62709add6d0615f86e48291ee2bee40223e7dde7bbe68a952593f0/pyobjc_framework_pushkit-12.1.tar.gz", hash = "sha256:829a2fc8f4780e75fc2a41217290ee0ff92d4ade43c42def4d7e5af436d8ae82", size = 19465 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/a8/c46a22c2341724114dc19bb71485998c127c1c801ea449c2dadd7c7db0cc/pyobjc_framework_pushkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1d6cb54971c7ed73ce1d13b683d117d4aa34415563c9ca2437dcffefd489940", size = 8159 }, - { url = "https://files.pythonhosted.org/packages/a1/b2/d92045e0d4399feda83ee56a9fd685b5c5c175f7ac8423e2cd9b3d52a9da/pyobjc_framework_pushkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:03f41be8b27d06302ea487a6b250aaf811917a0e7d648cd4043fac759d027210", size = 8158 }, - { url = "https://files.pythonhosted.org/packages/b9/01/74cf1dd0764c590de05dc1e87d168031e424f834721940b7bb02c67fe821/pyobjc_framework_pushkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7bdf472a55ac65154e03f54ae0bcad64c4cf45e9b1acba62f15107f2bc994d69", size = 8177 }, - { url = "https://files.pythonhosted.org/packages/1b/79/00368a140fe4a14e92393da25ef5a3037a09bb0024d984d7813e7e3fa11c/pyobjc_framework_pushkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f3751276cb595a9f886ed6094e06004fd11932443e345760eade09119f8e0181", size = 8193 }, - { url = "https://files.pythonhosted.org/packages/57/29/dccede214ef1835662066c74138978629d92b6a9f723e28670cfb04f3ce7/pyobjc_framework_pushkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:64955af6441635449c2af6c6f468c9ba5e413e1494b87617bc1e9fbd8be7e5bf", size = 8339 }, - { url = "https://files.pythonhosted.org/packages/16/09/9ba944e1146308460bf7474cdc2a0844682862f9850576494035a7653f4a/pyobjc_framework_pushkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:de82e1f6e01444582ad2ca6a76aeee1524c23695f0e4f56596f9db3e9d635623", size = 8254 }, - { url = "https://files.pythonhosted.org/packages/79/be/9220099adb71ec5ae374d2b5b6c3b34e8c505e42fcd090c73e53035a414f/pyobjc_framework_pushkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:69c7a03a706bc7fb24ca69a9f79d030927be1e5166c0d2a5a9afc1c5d82a07ec", size = 8388 }, -] - -[[package]] -name = "pyobjc-framework-quartz" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/91/0b/3c34fc9de790daff5ca49d1f36cb8dcc353ac10e4e29b4759e397a3831f4/pyobjc_framework_quartz-12.0.tar.gz", hash = "sha256:5bcb9e78d671447e04d89e2e3c39f3135157892243facc5f8468aa333e40d67f", size = 3159509 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/26/2a12e5b2284fef853ee5ee9070a1111645f165f14ed42b84c2f79fb78fe7/pyobjc_framework_quartz-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e63226d67117d1e429fe938414435314e99dc15e369e198cf57bea93231d76dc", size = 217790 }, - { url = "https://files.pythonhosted.org/packages/b8/ed/13207ed99bd672a681cad3435512ab4e3217dd0cdc991c16a074ef6e7e95/pyobjc_framework_quartz-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6098bdb5db5837ecf6cf57f775efa9e5ce7c31f6452e4c4393de2198f5a3b06b", size = 217787 }, - { url = "https://files.pythonhosted.org/packages/1c/76/2d7e6b0e2eb42b9a17b65c92575693f9d364b832e069024123742b54caa5/pyobjc_framework_quartz-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb6818cbeea55e8b85c3347bb8acaf6f46ebb2c241ae4eb76ba1358c68f3ec5c", size = 218816 }, - { url = "https://files.pythonhosted.org/packages/60/d8/05f8fb5f27af69c0b5a9802f220a7c00bbe595c790e13edefa042603b957/pyobjc_framework_quartz-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ece7a05aa2bfc3aa215f1a7c8580e873f3867ba40d0006469618cc2ceb796578", size = 219201 }, - { url = "https://files.pythonhosted.org/packages/7e/3f/1228f86de266874e20c04f04736a5f11c5a29a1839efde594ba4097d0255/pyobjc_framework_quartz-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f1b2e34f6f0dd023f80a0e875af4dab0ad27fccac239da9ad3d311a2d2578e27", size = 224330 }, - { url = "https://files.pythonhosted.org/packages/8a/23/ec1804bd10c409fe98ba086329569914fd10b6814208ca6168e81ca0ec1a/pyobjc_framework_quartz-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2cde43ddc5d2a9ace13af38b4a9ee70dbd47d1707ec6b7185a1a3a1d48e54f9", size = 219581 }, - { url = "https://files.pythonhosted.org/packages/86/c2/cf89fda2e477c0c4e2a8aae86202c2891a83bead24e8a7fc733ff490dffc/pyobjc_framework_quartz-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9b928d551ec779141558d986684c19f8f5742251721f440d7087257e4e35b22b", size = 224613 }, -] - -[[package]] -name = "pyobjc-framework-quartz" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/94/18/cc59f3d4355c9456fc945eae7fe8797003c4da99212dd531ad1b0de8a0c6/pyobjc_framework_quartz-12.1.tar.gz", hash = "sha256:27f782f3513ac88ec9b6c82d9767eef95a5cf4175ce88a1e5a65875fee799608", size = 3159099 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/17/f4/50c42c84796886e4d360407fb629000bb68d843b2502c88318375441676f/pyobjc_framework_quartz-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c6f312ae79ef8b3019dcf4b3374c52035c7c7bc4a09a1748b61b041bb685a0ed", size = 217799 }, - { url = "https://files.pythonhosted.org/packages/b7/ef/dcd22b743e38b3c430fce4788176c2c5afa8bfb01085b8143b02d1e75201/pyobjc_framework_quartz-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:19f99ac49a0b15dd892e155644fe80242d741411a9ed9c119b18b7466048625a", size = 217795 }, - { url = "https://files.pythonhosted.org/packages/e9/9b/780f057e5962f690f23fdff1083a4cfda5a96d5b4d3bb49505cac4f624f2/pyobjc_framework_quartz-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7730cdce46c7e985535b5a42c31381af4aa6556e5642dc55b5e6597595e57a16", size = 218798 }, - { url = "https://files.pythonhosted.org/packages/ba/2d/e8f495328101898c16c32ac10e7b14b08ff2c443a756a76fd1271915f097/pyobjc_framework_quartz-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:629b7971b1b43a11617f1460cd218bd308dfea247cd4ee3842eb40ca6f588860", size = 219206 }, - { url = "https://files.pythonhosted.org/packages/67/43/b1f0ad3b842ab150a7e6b7d97f6257eab6af241b4c7d14cb8e7fde9214b8/pyobjc_framework_quartz-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:53b84e880c358ba1ddcd7e8d5ea0407d760eca58b96f0d344829162cda5f37b3", size = 224317 }, - { url = "https://files.pythonhosted.org/packages/4a/00/96249c5c7e5aaca5f688ca18b8d8ad05cd7886ebd639b3c71a6a4cadbe75/pyobjc_framework_quartz-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:42d306b07f05ae7d155984503e0fb1b701fecd31dcc5c79fe8ab9790ff7e0de0", size = 219558 }, - { url = "https://files.pythonhosted.org/packages/4d/a6/708a55f3ff7a18c403b30a29a11dccfed0410485a7548c60a4b6d4cc0676/pyobjc_framework_quartz-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0cc08fddb339b2760df60dea1057453557588908e42bdc62184b6396ce2d6e9a", size = 224580 }, -] - -[[package]] -name = "pyobjc-framework-quicklookthumbnailing" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/64/3861655637e4beee4746e3f85af3f61028091d43f8b91fdff702285052b7/pyobjc_framework_quicklookthumbnailing-12.0.tar.gz", hash = "sha256:6b5ab7f8f75809535258c5af1db134e9f3449b36c5a40228766197527291297f", size = 14805 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/16/da70d0c7aa6df70080e966e160fb0a545daa52a692c41a58cc659b6cdfe1/pyobjc_framework_quicklookthumbnailing-12.0-py2.py3-none-any.whl", hash = "sha256:6ff4dadb49e82319aa9391dbe759dc5d9fe3b7d30d87c6fb6efad22681c9426c", size = 4242 }, -] - -[[package]] -name = "pyobjc-framework-quicklookthumbnailing" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/97/1a/b90539500e9a27c2049c388d85a824fc0704009b11e33b05009f52a6dc67/pyobjc_framework_quicklookthumbnailing-12.1.tar.gz", hash = "sha256:4f7e09e873e9bda236dce6e2f238cab571baeb75eca2e0bc0961d5fcd85f3c8f", size = 14790 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/22/7bd07b5b44bf8540514a9f24bc46da68812c1fd6c63bb2d3496e5ea44bf0/pyobjc_framework_quicklookthumbnailing-12.1-py2.py3-none-any.whl", hash = "sha256:5efe50b0318188b3a4147681788b47fce64709f6fe0e1b5d020e408ef40ab08e", size = 4234 }, -] - -[[package]] -name = "pyobjc-framework-replaykit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/a5/c2875fb3a18da6a63a574b9628b052c93cf32884edd77e951b67b5c79e5b/pyobjc_framework_replaykit-12.0.tar.gz", hash = "sha256:9b04f20b04e78e9a6e4d0e85bd5e706a02ed939e9012f468b16dfb6fcc3ab03f", size = 23686 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/71/adcf1a9d62bfde2b00bf714183e27c7ebd257d4c1d901d7c9919e233dedd/pyobjc_framework_replaykit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f53d0ef55592621433ceac62b5f9b530fb2d9419d611e38c4dba7a24f05a68de", size = 10104 }, - { url = "https://files.pythonhosted.org/packages/2d/87/87a01c5cc5d515ac6dbd7db44f5906f905995b89ec9c1c7998898ddf3b4d/pyobjc_framework_replaykit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4137d25ae154c9c8f5ebbf16a8290b4505aebf32cf219a588d4d34e3ad24873f", size = 10102 }, - { url = "https://files.pythonhosted.org/packages/1f/eb/8cbb645113ad566115a5984ccbeb8e5a2a07eec3a44df2d05d6fc912c9e9/pyobjc_framework_replaykit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bb4e68fc6bf54974da65acc6e0ae2ee2d6e312fd5a8b47c882bb4f32de0a1b62", size = 10132 }, - { url = "https://files.pythonhosted.org/packages/06/1d/a45705a7ac6ca4aec0329335f1531232be1ab9562029efbebfeafbaf9a30/pyobjc_framework_replaykit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e8d7ea4fe9a4ab2bfe9d9d166e81d1a449313784e9afcd25fa0eb5152520840d", size = 10147 }, - { url = "https://files.pythonhosted.org/packages/73/36/3483a6780a7078b42aa8cb6967f80e386efc12e438749454cb8015f303b3/pyobjc_framework_replaykit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0409f253e632ab36edd86425737dfd695201078299172a40c662b3684b180021", size = 10329 }, - { url = "https://files.pythonhosted.org/packages/ba/30/e4f9f62a3e0570d9614b70b2247d9f7f39432157b3e75457e16331649d20/pyobjc_framework_replaykit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3cbd3cc587e4c2fa722c444ebb5457568c3d0a803cf17cec107c9b6316a7539b", size = 10203 }, - { url = "https://files.pythonhosted.org/packages/a7/b2/b90f7451a313ff1d8f6fbc0f4d8c19c740910a45ab516ab1aab8062c1267/pyobjc_framework_replaykit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1e1cd0c2bdee7bf0eae66201c546e9e1093cfb5c365595a6fe0e0fc3bab3422e", size = 10397 }, -] - -[[package]] -name = "pyobjc-framework-replaykit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/35/f8/b92af879734d91c1726227e7a03b9e68ab8d9d2bb1716d1a5c29254087f2/pyobjc_framework_replaykit-12.1.tar.gz", hash = "sha256:95801fd35c329d7302b2541f2754e6574bf36547ab869fbbf41e408dfa07268a", size = 23312 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/de/e8ebcbd80210e8be3b08d6a8404f6b102cb6ebd0c8434daf717f35442958/pyobjc_framework_replaykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05c8e4cbda2ff22cd5180bee4a892306a4004127365b15e18335ab39e577faa8", size = 10093 }, - { url = "https://files.pythonhosted.org/packages/10/b1/fab264c6a82a78cd050a773c61dec397c5df7e7969eba3c57e17c8964ea3/pyobjc_framework_replaykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3a2f9da6939d7695fa40de9c560c20948d31b0cc2f892fdd611fc566a6b83606", size = 10090 }, - { url = "https://files.pythonhosted.org/packages/6b/fc/c68d2111b2655148d88574959d3d8b21d3a003573013301d4d2a7254c1af/pyobjc_framework_replaykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b0528c2a6188440fdc2017f0924c0a0f15d0a2f6aa295f1d1c2d6b3894c22f1d", size = 10120 }, - { url = "https://files.pythonhosted.org/packages/22/f1/95d3cf08a5b747e15dfb45f4ad23aeae566e75e6c54f3c58caf59b99f4d9/pyobjc_framework_replaykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:18af5ab59574102978790ce9ccc89fe24be9fa57579f24ed8cfc2b44ea28d839", size = 10141 }, - { url = "https://files.pythonhosted.org/packages/4e/78/fac397700f62fdb73161e04affd608678883e9476553fd99e9d65db51f79/pyobjc_framework_replaykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:31c826a71b76cd7d12c3f30956c202116b0c985a19eb420e91fc1f51bedd2f72", size = 10319 }, - { url = "https://files.pythonhosted.org/packages/f7/e7/e3efd189fbaf349962a98db3d63b3ba30fd5f27e249cc933993478421ebc/pyobjc_framework_replaykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d6d8046825149f7f2627987a1b48ac7e4c9747a15e263054de0dfde1926a0f42", size = 10194 }, - { url = "https://files.pythonhosted.org/packages/2b/52/7564ac0133033853432f3a3abf30fb98f820461c147c904cc8ed6c779d85/pyobjc_framework_replaykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9f77dc914d5aabcd9273c39777a3372175aa839a3bd7f673a0ead4b7f2cf4211", size = 10383 }, -] - -[[package]] -name = "pyobjc-framework-safariservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2d/90/ada857aca483a83dacada061746badb0d9eb705311df4c43139909eb8c64/pyobjc_framework_safariservices-12.0.tar.gz", hash = "sha256:3fa9624285723cb9df282479bee315f0548ee91e1a277d9bd767c273fa7648fd", size = 25499 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/64/ea14931c9b9999d34c28909463e16435610a7398b774360965aba11d9927/pyobjc_framework_safariservices-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b40c347d143cc88dab904fa07d186993a294eb1874b6eeba0a859d7ff5f694f5", size = 7294 }, - { url = "https://files.pythonhosted.org/packages/98/29/727f14374e39a737d3f520cbe873e95b41ea9905e58516b41c0a0084dde9/pyobjc_framework_safariservices-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:54d4ef4f7dad2e60a051f84a1bebff3bdc8efa302bbf2b3ee093ae8d8eb4778b", size = 7295 }, - { url = "https://files.pythonhosted.org/packages/85/25/84aef5a0b1f28e769532759413b31bdbf02a0858c2c5d0834d93e7ec7a09/pyobjc_framework_safariservices-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ed9c9fefae246d282d81c71b068add82688a336b450e7981b970a27f684fbea", size = 7291 }, - { url = "https://files.pythonhosted.org/packages/db/23/2aac0cef66a560222cebbd9dd635b18292cb97c641415a590e248dbb58d7/pyobjc_framework_safariservices-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0a1700d2145fd5f1451cb18b7668eaef22fc2d099a5e5fd459e482c7b05cd0a4", size = 7310 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/79d907a700357fd9d87717f65812d5280d96823f589b85f37c7916aae7ca/pyobjc_framework_safariservices-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:50513325180c950896cb242ce33c991bef87765e253f65ed583a442b29dfd243", size = 7317 }, - { url = "https://files.pythonhosted.org/packages/b8/d9/6d25774ce2090349bf6eee3bac285992bc8e91d8cd02c34b9a2770a875c9/pyobjc_framework_safariservices-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b390264fa1c262560e92280ac1d5180209fa382350e04a5bb29ea9dff9e78576", size = 7342 }, - { url = "https://files.pythonhosted.org/packages/21/07/0ff0a95464871efa631ffd5a7155d5e4c7036c794df4618c99d493a898d4/pyobjc_framework_safariservices-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:792a6739a04cc71fc9a97ebd7c3df619320573ebd1e125a572302b592e7651ab", size = 7353 }, -] - -[[package]] -name = "pyobjc-framework-safariservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3e/4b/8f896bafbdbfa180a5ba1e21a6f5dc63150c09cba69d85f68708e02866ae/pyobjc_framework_safariservices-12.1.tar.gz", hash = "sha256:6a56f71c1e692bca1f48fe7c40e4c5a41e148b4e3c6cfb185fd80a4d4a951897", size = 25165 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/c4/f3076bf070f41712411afaca16c2ef545588521660c8524c1c278e151dec/pyobjc_framework_safariservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:571c3c65c30dd492e49d9e561f6ba847e0b847352aeb8db0317c5b9ef84f2c88", size = 7284 }, - { url = "https://files.pythonhosted.org/packages/f1/bb/da1059bfad021c417e090058c0a155419b735b4891a7eedc03177b376012/pyobjc_framework_safariservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae709cf7a72ac7b95d2f131349f852d5d7a1729a8d760ea3308883f8269a4c37", size = 7281 }, - { url = "https://files.pythonhosted.org/packages/67/3a/8c525562fd782c88bc44e8c07fc2c073919f98dead08fffd50f280ef1afa/pyobjc_framework_safariservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b475abc82504fc1c0801096a639562d6a6d37370193e8e4a406de9199a7cea13", size = 7281 }, - { url = "https://files.pythonhosted.org/packages/b6/e7/fc984cf2471597e71378b4f82be4a1923855a4c4a56486cc8d97fdaf1694/pyobjc_framework_safariservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:592cf5080a9e7f104d6a8d338ebf2523a961f38068f238f11783e86dc105f9c7", size = 7304 }, - { url = "https://files.pythonhosted.org/packages/6e/99/3d3062808a64422f39586519d38a52e73304ed60f45500b2c75b97fdd667/pyobjc_framework_safariservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:097a2166f79c60633e963913722a087a13b1c5849f3173655b24a8be47039ac4", size = 7308 }, - { url = "https://files.pythonhosted.org/packages/99/c3/766dd0e14d61ed05d416bccc4435a977169d5256828ab31ba5939b2f953d/pyobjc_framework_safariservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:090afa066820de497d2479a1c5bd4c8ed381eb36a615e4644e12e347ec9d9a3e", size = 7333 }, - { url = "https://files.pythonhosted.org/packages/80/8c/93bd8887d83c7f7f6d920495a185f2e4f7d2c41bad7b93652a664913b94d/pyobjc_framework_safariservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3fc553396c51a7fd60c0a2e2b1cdb3fecab135881115adf2f1bbaeb64f801863", size = 7340 }, -] - -[[package]] -name = "pyobjc-framework-safetykit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/39/ab/9038e5067650af29ffb491df5a02a3c45da0690e4a2efcf10640bde195a2/pyobjc_framework_safetykit-12.0.tar.gz", hash = "sha256:eec3d74db7a0cdc4265cd29def24b8f1af3fdace8e309640e68c58c935157296", size = 20450 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/69/6eaa5514900488f5f2c8b97e642e81144bdd2cce3f056c20b04668155502/pyobjc_framework_safetykit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ea514d004826f0294a5c2af78901397df6741d11338428fac5cbcec32d86d402", size = 8549 }, - { url = "https://files.pythonhosted.org/packages/da/74/4275190d09a06e006f985efa7145fa64038c78e1c1ac736b850364e983c1/pyobjc_framework_safetykit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fbebcda5d29f0ba20762678b295b83ba40d9f017596b06fffc7575760de2ef78", size = 8550 }, - { url = "https://files.pythonhosted.org/packages/6d/4d/f76dff03599c87bfe264156ac9b2e34e8957d9a63ea0e438007e0d17203c/pyobjc_framework_safetykit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d378e53949c403879b73d43bd39e1bd60bd59db22625477633080d76c4ca2298", size = 8561 }, - { url = "https://files.pythonhosted.org/packages/f9/d1/e399f2c71934d4a07025374ed372ef459b1ed899bccba83e7c7d0d1e6833/pyobjc_framework_safetykit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:eee259b78a66b4b45aa84c7c8af26fbf8d1649fd39f3d9cb86b706d7b0ccf244", size = 8572 }, - { url = "https://files.pythonhosted.org/packages/10/d2/9557ecb3fa41c2743eca6296139bdd4fdbcbee739ec83d629fe0fd0dd047/pyobjc_framework_safetykit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46e3c02c44cc0b7cd8398347b8a62761d6ba225201d0809228e2effbd512b7a5", size = 8730 }, - { url = "https://files.pythonhosted.org/packages/f5/5e/315677971eecc170c11beeb72735e5c6715c3975419417c0a3266153e0c2/pyobjc_framework_safetykit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8e2267cfbefdf123a44622dc0494b662d376bd3cb37629ada9f99aa83fdfc46b", size = 8626 }, - { url = "https://files.pythonhosted.org/packages/24/f6/736c756819f5820072ba694584ea0037f25a9aa28836d1f806a40c45c8ba/pyobjc_framework_safetykit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d7e0b6e39e7c9e424b1ca9f470f5320ffb1988859bb6935b2d5388e9f55bb352", size = 8790 }, -] - -[[package]] -name = "pyobjc-framework-safetykit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f4/bf/ad6bf60ceb61614c9c9f5758190971e9b90c45b1c7a244e45db64138b6c2/pyobjc_framework_safetykit-12.1.tar.gz", hash = "sha256:0cd4850659fb9b5632fd8ad21f2de6863e8303ff0d51c5cc9c0034aac5db08d8", size = 20086 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/88/00/6682d8b39b5e65188e3c5b560aa3dbd4322f400d2acbaad020edb6cef55c/pyobjc_framework_safetykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cbb7bcacc88aab1ab4d8dacedc9569be00e26bb7e761b7759dc4d4a2c2656586", size = 8537 }, - { url = "https://files.pythonhosted.org/packages/94/68/77f17fba082de7c65176e0d74aacbce5c9c9066d6d6edcde5a537c8c140a/pyobjc_framework_safetykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c63bcd5d571bba149e28c49c8db06073e54e073b08589e94b850b39a43e52b0", size = 8539 }, - { url = "https://files.pythonhosted.org/packages/b7/0c/08a20fb7516405186c0fe7299530edd4aa22c24f73290198312447f26c8c/pyobjc_framework_safetykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e4977f7069a23252053d1a42b1a053aefc19b85c960a5214b05daf3c037a6f16", size = 8550 }, - { url = "https://files.pythonhosted.org/packages/02/c5/0e8961e48a2e5942f3f4fad46be5a7b47e17792d89f4c2405b065c1241b5/pyobjc_framework_safetykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:20170b4869c4ee5485f750ad02bbfcb25c53bbfe86892e5328096dc3c6478b83", size = 8564 }, - { url = "https://files.pythonhosted.org/packages/48/3f/fdadc2b992cb3e08269fc75dec3128f8153dd833715b9fbfb975c193c4d2/pyobjc_framework_safetykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a935c55ae8e731a44c3cb74324da7517634bfc0eca678b6d4b2f9fe04ff53d8", size = 8720 }, - { url = "https://files.pythonhosted.org/packages/d9/ec/759117239a3edbd8994069f1f595e4fbc72fa60fa7ebb4aeb4fd47265e7c/pyobjc_framework_safetykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1b0e8761fd53e6a83a48dbd93961434b05fe17658478b9001c65627da46ba02b", size = 8616 }, - { url = "https://files.pythonhosted.org/packages/43/fd/72e9d6703a0281ffc086b3655c63ca2502ddaff52b3b82e9eb1c9a206493/pyobjc_framework_safetykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b3ea88d1de4be84f630e25856abb417f3b19c242038ac061cca85a9a9e3dc61b", size = 8778 }, -] - -[[package]] -name = "pyobjc-framework-scenekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/33/6e/d67322896c3f0f4ae940d1a7a2ed49bdcad139d8f7ab2eeff066d2a4ca8e/pyobjc_framework_scenekit-12.0.tar.gz", hash = "sha256:3c725a9fa2f5788d6451291d1c71db9b68f1cbb1969facaa514cd6e73a11d7c6", size = 101580 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/8e/2be285fa69f4899fb86f9b6160cdc8981178ebaea0619473b98935112570/pyobjc_framework_scenekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c2f4680a077c9bffeead973b7aae968e203a432f16006770c1d886c8132b6feb", size = 33536 }, - { url = "https://files.pythonhosted.org/packages/ce/fd/524df6d6ca6b7f6877fd60c0403e73505a06e62aec2fa38f9f1df3f8cd08/pyobjc_framework_scenekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:41277e2893a0cdd620addc5c48a396ff9f2e499728ee77c48678537e26f47b6b", size = 33540 }, - { url = "https://files.pythonhosted.org/packages/8e/78/b9505862a0a2ecb8bd07df489324cf6acc8f63b4a11ad6c3e1389e93ca94/pyobjc_framework_scenekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:25e756f8e6c6747153238a2c6a799c40f1266becf75badeffe1b5a991f96bd82", size = 33598 }, - { url = "https://files.pythonhosted.org/packages/e1/2e/081508eb23901b8a05a3ce435d20402ade5f289336ef99069f753e3ed94a/pyobjc_framework_scenekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:de17da992d7b17a3f2424ed05f2ef3bf745330cfc60a063bf3222ac734c5959c", size = 33622 }, - { url = "https://files.pythonhosted.org/packages/12/3c/0e7e73f6d543558b85197d8805bbe6ac7ec3606780a51582b0485a72b398/pyobjc_framework_scenekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b3cee34975b0bdcb87d1c14795ff5fa3a4c05d8332c9f35786a897e3610a2c85", size = 33937 }, - { url = "https://files.pythonhosted.org/packages/b0/fe/d206308a63106ea829e9baf6e369c66097801f36e9cf17eee60856cdd60d/pyobjc_framework_scenekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a5475e8508621749f957082a646761b8945391107d109c0bcbb13f4036d98c61", size = 33736 }, - { url = "https://files.pythonhosted.org/packages/92/a4/6d5a47deda44661f643a355967857c332c49d1e42bb3ddd44ae5d46f777f/pyobjc_framework_scenekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8cadd5d7ac9e3616845c4d5e9d5a0ac0117eb887e865d97babf5640f6971356e", size = 34018 }, -] - -[[package]] -name = "pyobjc-framework-scenekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/94/8c/1f4005cf0cb68f84dd98b93bbc0974ee7851bb33d976791c85e042dc2278/pyobjc_framework_scenekit-12.1.tar.gz", hash = "sha256:1bd5b866f31fd829f26feac52e807ed942254fd248115c7c742cfad41d949426", size = 101212 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/47/2aac42526e55f490855db6bddba25edbf1764e175437d60235860856b92a/pyobjc_framework_scenekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:269760fa2ab44df11be1a7898907d2f01eb05d1d98a8997ae876ed49803be75b", size = 33539 }, - { url = "https://files.pythonhosted.org/packages/a0/7f/eda261013dc41cc70f3157d1a750712dc29b64fc05be84232006b5cd57e5/pyobjc_framework_scenekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:01bf1336a7a8bdc96fabde8f3506aa7a7d1905e20a5c46030a57daf0ce2cbd16", size = 33542 }, - { url = "https://files.pythonhosted.org/packages/d2/f1/4986bd96e0ba0f60bff482a6b135b9d6db65d56578d535751f18f88190f0/pyobjc_framework_scenekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:40aea10098893f0b06191f1e79d7b25e12e36a9265549d324238bdb25c7e6df0", size = 33597 }, - { url = "https://files.pythonhosted.org/packages/4a/82/c728a025fd09cd259870d43b68ce8e7cffb639112033693ffa02d3d1eac0/pyobjc_framework_scenekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a032377a7374320131768b6c8bf84589e45819d9e0fe187bd3f8d985207016b9", size = 33623 }, - { url = "https://files.pythonhosted.org/packages/5e/ef/9cea4cc4ac7f43fa6fb60d0690d25b2da1d8e1cf42266316014d1bb43a11/pyobjc_framework_scenekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:633909adff9b505b49c34307f507f4bd926b88a1482d8143655d5703481cbbf5", size = 33934 }, - { url = "https://files.pythonhosted.org/packages/5a/0c/eb436dda11b6f950bff7f7d9af108970058f2fa9822a946a6982d74a64f8/pyobjc_framework_scenekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d4c8512c9186f12602ac19558072cdeec3a607d628c269317d5965341a14372c", size = 33728 }, - { url = "https://files.pythonhosted.org/packages/52/20/2adb296dd6ac1619bf4e2e8a878be7e13b8ed362d9d649c88734998a5cf7/pyobjc_framework_scenekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b99a99edf37c8fe4194a9c0ab2092f57e564e07adb1ad54ef82b7213184be668", size = 34009 }, -] - -[[package]] -name = "pyobjc-framework-screencapturekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4c/e5/6e1a3a5588d28eb7a80a2bd2feb8a76e32662ce169b309068121e94b0ea9/pyobjc_framework_screencapturekit-12.0.tar.gz", hash = "sha256:278743764adfbfc046b831bceaae2f0b4a42ea3b0b40e4ee349f9efcb62374e5", size = 32967 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/77/42/434a42ed2e6be1360ead2b294c6413647221993d7a5cbd9abcaac5818999/pyobjc_framework_screencapturekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9aa02480a504cad947a0fafad04aa9e9b5cf990039a709c980d638e736807189", size = 11485 }, - { url = "https://files.pythonhosted.org/packages/41/06/ce09c0a558596063b9d903b2bf1ca25ab598929fcb5dbd266a47c2d3e461/pyobjc_framework_screencapturekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cfb2f59776f80ae856b43a0dd3dc23dd79ea414f06106b249ece6f2fe37789bd", size = 11487 }, - { url = "https://files.pythonhosted.org/packages/9b/1f/c06b269839eaa9efb8f5be0585daa2c5cb056f30df9566c1b9a71be23346/pyobjc_framework_screencapturekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:07c1310f85bd661fb395895f13f1c69cdd5d83017e66c95e4daa122f97da11a8", size = 11512 }, - { url = "https://files.pythonhosted.org/packages/09/50/e3809266ba4dbdf233cf4570d25eb9931c34e96db6cbb506ca12ec58de1e/pyobjc_framework_screencapturekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c84a9051757706fff21d1f4b70a2255e53402c9b5d31f1708beac8c53237a9d8", size = 11531 }, - { url = "https://files.pythonhosted.org/packages/e6/55/3be7e77de7ae192d95e7e6aca39940457191c110cc4060b23bc328e69b62/pyobjc_framework_screencapturekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:78392b27825eebd4afdf31b18d60a4e8d4a2f494af7ce6188c193f76f4142067", size = 11709 }, - { url = "https://files.pythonhosted.org/packages/9e/39/ba12d780a0dc61985f00083f35ab3240c2f38feaf7a4854374fe2ec40ede/pyobjc_framework_screencapturekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1d95db1e63559ecb5472c4a90739c2282ac58694911a3c0d42ed22a0b381b322", size = 11587 }, - { url = "https://files.pythonhosted.org/packages/34/d5/45b0fff308ffeb122400d7e9df81f15784da348bf3c2b56f504a47e376e5/pyobjc_framework_screencapturekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:86bcc5c8d9243d16e675da7e8dd063f9afa18423f9b6c181754cf0624b84487d", size = 11792 }, -] - -[[package]] -name = "pyobjc-framework-screencapturekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2d/7f/73458db1361d2cb408f43821a1e3819318a0f81885f833d78d93bdc698e0/pyobjc_framework_screencapturekit-12.1.tar.gz", hash = "sha256:50992c6128b35ab45d9e336f0993ddd112f58b8c8c8f0892a9cb42d61bd1f4c9", size = 32573 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/01/df/5c2eee34ef88989da39830e83074028922a9150d601539217fd7ac6d3c06/pyobjc_framework_screencapturekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf13285180e9acf8a6d0eff494dd7fb63296c648d4838f628c67be72b1af4725", size = 11474 }, - { url = "https://files.pythonhosted.org/packages/79/92/fe66408f4bd74f6b6da75977d534a7091efe988301d13da4f009bf54ab71/pyobjc_framework_screencapturekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae412d397eedf189e763defe3497fcb8dffa5e0b54f62390cb33bf9b1cfb864a", size = 11473 }, - { url = "https://files.pythonhosted.org/packages/05/a8/533acdbf26e0a908ff640d3a445481f3c948682ca887be6711b5fcf82682/pyobjc_framework_screencapturekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:27df138ce2dfa9d4aae5106d4877e9ed694b5a174643c058f1c48678ffc7001a", size = 11504 }, - { url = "https://files.pythonhosted.org/packages/45/f9/ff713b8c4659f9ef1c4dbb8ca4b59c4b22d9df48471230979d620709e3b4/pyobjc_framework_screencapturekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:168125388fb35c6909bec93b259508156e89b9e30fec5748d4a04fd0157f0e0d", size = 11523 }, - { url = "https://files.pythonhosted.org/packages/f0/26/8bf1bacdb2892cf26d043c7f6e8788a613bbb2ccb313a5ea0634612cfc24/pyobjc_framework_screencapturekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4fc2fe72c1da5ac1b8898a7b2082ed69803e6d9c11f414bb5a5ec94422a5f74f", size = 11701 }, - { url = "https://files.pythonhosted.org/packages/be/b4/881e2ff0e11e7d705716f01f1bfd10232f7d21bda38d630c3fbe409b13a9/pyobjc_framework_screencapturekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:be210ea5df36c1392425c026c59c5e0797b0d6e07ee9551d032e40bed95d2833", size = 11581 }, - { url = "https://files.pythonhosted.org/packages/24/d0/69f295412d5dfacb6e6890ee128b9c80c8f4f584c20842c576ee154bfc0b/pyobjc_framework_screencapturekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:534f3a433edf6417c3dd58ac52a69360e5a19c924d1cb389495c4d6cc13a875d", size = 11783 }, -] - -[[package]] -name = "pyobjc-framework-screensaver" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/97/56/8262f65fddc0e86f52f589d7ac927b7c2ee6fb9b83c5906126a7544707b5/pyobjc_framework_screensaver-12.0.tar.gz", hash = "sha256:d1f875a89c511046d08304d801aba960e9ceef62808de104bb878d948696d29b", size = 22614 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/97/cff57d4564d7d005013de422a6867bfd538324227494d3a4a0e94e171147/pyobjc_framework_screensaver-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:87f944aa765cb1ef9bc753635e65adc5dd25ba54596b37ce95b73ee42c23158b", size = 8489 }, - { url = "https://files.pythonhosted.org/packages/83/db/ba6dc945e1d0ac1877888fe9d425db98d7f73c0f52beaa401d9b0a3ebc1a/pyobjc_framework_screensaver-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:724713c35f7ff2c1ed1f2ed6785e7872ff14de74a36538fbedfae5eb1ab1b761", size = 8496 }, - { url = "https://files.pythonhosted.org/packages/0d/d2/0d91b21eaa6f5d9d80ee960b3d6322b1c84d840bc152770ee6865734b020/pyobjc_framework_screensaver-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:176854fe9787bc431c7c5e6cfa7e6d6714fc49e189364cc2cd6ce27b8c24c21b", size = 8440 }, - { url = "https://files.pythonhosted.org/packages/d9/d6/4181e31c3b87ab480bc3ef44e456d1c20e7d53e15b1d00a686bb459150d6/pyobjc_framework_screensaver-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:87de6e035315b6b2304f20a1953b5c3c6c017f4ef73bc91a4fd23a1789f4cc2f", size = 8457 }, - { url = "https://files.pythonhosted.org/packages/9c/d8/80e00cfc6fa2766f324c2fac4a882e82a6f1ebbbfddf7c5bee6aca933d94/pyobjc_framework_screensaver-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7ae3fae60a3740f73c4267e1eb0e430d064d1ed56b84fc4e8aac7fe4b1fdbbe4", size = 8463 }, - { url = "https://files.pythonhosted.org/packages/8d/ae/c869b82f2a10985d9091581364c185a66cf770c0b923b6546b372981a54b/pyobjc_framework_screensaver-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:dac0a57ad4c39d6ff577c5a8e776f53654e29022096bbbbfffe73575c1d3fdf3", size = 8498 }, - { url = "https://files.pythonhosted.org/packages/2e/4e/0c90bf65c4166fb976cad68e18811aed9fbc8167bfce51cc4edc31233dc2/pyobjc_framework_screensaver-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:163621994011fd25b2d48bacbee45ffca8b0b2e4726bf8d7692ef969e2222545", size = 8511 }, -] - -[[package]] -name = "pyobjc-framework-screensaver" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/99/7cfbce880cea61253a44eed594dce66c2b2fbf29e37eaedcd40cffa949e9/pyobjc_framework_screensaver-12.1.tar.gz", hash = "sha256:c4ca111317c5a3883b7eace0a9e7dd72bc6ffaa2ca954bdec918c3ab7c65c96f", size = 22229 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/bc/3a0d0d3abda32e2f7dbad781b100e01f6fe2d40afc298d6d076478895bcb/pyobjc_framework_screensaver-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:58625f7d19d73b74521570ddd5b49bf5eeaf32bac6f2c39452594f020dda9b85", size = 8482 }, - { url = "https://files.pythonhosted.org/packages/2d/8d/87ca0fa0a9eda3097a0f4f2eef1544bf1d984697939fbef7cda7495fddb9/pyobjc_framework_screensaver-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5bd10809005fbe0d68fe651f32a393ce059e90da38e74b6b3cd055ed5b23eaa9", size = 8480 }, - { url = "https://files.pythonhosted.org/packages/5a/a4/2481711f2e9557b90bac74fa8bf821162cf7b65835732ae560fd52e9037e/pyobjc_framework_screensaver-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a3c90c2299eac6d01add81427ae2f90d7724f15d676261e838d7a7750f812322", size = 8422 }, - { url = "https://files.pythonhosted.org/packages/7e/8a/2e0cb958e872896b67ae6d5877070867f4a845ea1010984ff887ad418396/pyobjc_framework_screensaver-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a865b6dbb39fb92cdb67b13f68d594ab84d08a984cc3e9a39fab3386f431649", size = 8442 }, - { url = "https://files.pythonhosted.org/packages/35/45/3eb9984119be3dcd90f4628ecc3964c1a394b702a71034af6d932f98de3a/pyobjc_framework_screensaver-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c249dffcb95d55fc6be626bf17f70b477e320c33d94e234597bc0074e302cfcd", size = 8450 }, - { url = "https://files.pythonhosted.org/packages/c6/97/2fab7dfb449ccc49fb617ade97bfa35689572c71fff5885ea25705479a30/pyobjc_framework_screensaver-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4744a01043a9c6b464f6a2230948812bf88bdd68f084b6f05b475b93093c3ea9", size = 8477 }, - { url = "https://files.pythonhosted.org/packages/59/e1/605137cc679dbeddc08470397d05dfd7c20e4c626924d33030c3aa45c39a/pyobjc_framework_screensaver-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c02ec9dccf49463056a438b7f8a6374dc2416d4a0672003382d50603aed9ab5d", size = 8501 }, -] - -[[package]] -name = "pyobjc-framework-screentime" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/0a/369431b09cd9cfff0c6be01e256244d446ae8d37d95bcd8b79191078d5c3/pyobjc_framework_screentime-12.0.tar.gz", hash = "sha256:cf414fcb988b4ca408c82e1924f8ad9b52f3ff6d509a9dec5eb84983e1cd45bb", size = 13444 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/fc/974228e9a93ad848f585ba74be4b0632ef18e652aa7459553a1490ffd276/pyobjc_framework_screentime-12.0-py2.py3-none-any.whl", hash = "sha256:c8046559698a53b7dfb7e7515fcfe5df850ffa0f6c093b5d825b5446af7e8604", size = 3975 }, -] - -[[package]] -name = "pyobjc-framework-screentime" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/10/11/ba18f905321895715dac3cae2071c2789745ae13605b283b8114b41e0459/pyobjc_framework_screentime-12.1.tar.gz", hash = "sha256:583de46b365543bbbcf27cd70eedd375d397441d64a2cf43c65286fd9c91af55", size = 13413 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/06/904174de6170e11b53673cc5844e5f13394eeeed486e0bcdf5288c1b0853/pyobjc_framework_screentime-12.1-py2.py3-none-any.whl", hash = "sha256:d34a068ec8ba2704987fcd05c37c9a9392de61d92933e6e71c8e4eaa4dfce029", size = 3963 }, -] - -[[package]] -name = "pyobjc-framework-scriptingbridge" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/67/ff/478ce8ba77b61b9b48bf2f881f0aec7c6059eb9166e29c6ee60223b09cb3/pyobjc_framework_scriptingbridge-12.0.tar.gz", hash = "sha256:062f03132fbf2f4e71bcf80d7e78c27d63588a1985d465ab1e7fa07f806590b5", size = 20710 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/61/da/e2378b644afca64aee5b3b48cad820db7ddc0944c3ade493f5ded7673b96/pyobjc_framework_scriptingbridge-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c45253e7921ee3c8ff75ca1e923a09dd44b7941f119c6a05c9857a71235843a", size = 8349 }, - { url = "https://files.pythonhosted.org/packages/4a/10/02af88fd86af17661bdff02362fe4ba9b933a3dfd16344004298fb7ff6b6/pyobjc_framework_scriptingbridge-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f868ad91d15b6e016dfa636a8f16fd12a5ff99fbf7b84280400993b5b24cfe0f", size = 8343 }, - { url = "https://files.pythonhosted.org/packages/0e/49/06868e9cc7fad44fc16fdb5b36764628a0cd5afcf56fb10e37601ab4b34d/pyobjc_framework_scriptingbridge-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a1ef5b16ed385166927df61f66fab956453f0c08a82c9260cb0d0c54a7d2b63e", size = 8365 }, - { url = "https://files.pythonhosted.org/packages/4b/53/aac8e25857219614b173028d34ee0d2a816f3b9d81e9c93576ee39f79f94/pyobjc_framework_scriptingbridge-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:453ae60ac93a7e183853715b6b4ede6f4cd581e1c008011820db0216590d60e1", size = 8380 }, - { url = "https://files.pythonhosted.org/packages/2d/df/1cb8a408f7dd79696cb6cdce82e4e0f80179f975a56a15bf051d85c429c6/pyobjc_framework_scriptingbridge-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:74a8d2d009c075f47b38b88767c84626865fef29ddf94c5e01eac4b165358b27", size = 8529 }, - { url = "https://files.pythonhosted.org/packages/94/ce/ce8c048050770f416c7b385a69e24101b4d4ced53dee836fbbdcac24515d/pyobjc_framework_scriptingbridge-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d70baa98108d4165a4dad62ddc30174fe7811b1425d99ebd9267e4d2d13ab549", size = 8412 }, - { url = "https://files.pythonhosted.org/packages/3d/26/7395fd8bee832a665f94e4d97cb8c9dd679c1c4e4159a5f54c33c5c21cd3/pyobjc_framework_scriptingbridge-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f6b1d24381e445a815e6b2a7d4c00a343912aa549b8b781488652b072166f00f", size = 8572 }, -] - -[[package]] -name = "pyobjc-framework-scriptingbridge" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0c/cb/adc0a09e8c4755c2281bd12803a87f36e0832a8fc853a2d663433dbb72ce/pyobjc_framework_scriptingbridge-12.1.tar.gz", hash = "sha256:0e90f866a7e6a8aeaf723d04c826657dd528c8c1b91e7a605f8bb947c74ad082", size = 20339 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/df/18a894d0d720d370bf5351555ba18e48e1ab8153cb756a5d945c1c3d8637/pyobjc_framework_scriptingbridge-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:97acd79168892ba457bc472214851f4e4a2d40a8aae106fb07cc94417e1fc681", size = 8334 }, - { url = "https://files.pythonhosted.org/packages/42/de/0943ee8d7f1a7d8467df6e2ea017a6d5041caff2fb0283f37fea4c4ce370/pyobjc_framework_scriptingbridge-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e6e37e69760d6ac9d813decf135d107760d33e1cdf7335016522235607f6f31b", size = 8335 }, - { url = "https://files.pythonhosted.org/packages/51/46/e0b07d2b3ff9effb8b1179a6cc681a953d3dfbf0eb8b1d6a0e54cef2e922/pyobjc_framework_scriptingbridge-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8083cd68c559c55a3787b2e74fc983c8665e5078571475aaeabf4f34add36b62", size = 8356 }, - { url = "https://files.pythonhosted.org/packages/1a/da/b11568f21924a994aa59272e2752e742f8380ab2cf88d111326ba7baede0/pyobjc_framework_scriptingbridge-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bddbd3a13bfaeaa38ab66e44f10446d5bc7d1110dbc02e59b80bcd9c3a60548a", size = 8371 }, - { url = "https://files.pythonhosted.org/packages/77/eb/9bc3e6e9611d757fc80b4423cc28128750a72eae8241be8ae43e1d76c4cd/pyobjc_framework_scriptingbridge-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:148191010b4e10c3938cdb2dcecad43fa0884cefb5a78499a21bdaf5a78318b3", size = 8526 }, - { url = "https://files.pythonhosted.org/packages/b1/bc/5f1d372bb1efa9cf1e3218e1831136f5548b9f5b12a4a6676bf8b37cca63/pyobjc_framework_scriptingbridge-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:48f4bc33b2cab6634f58f37549096bda9ec7d3ec664b4b40e7d3248d9f481f69", size = 8406 }, - { url = "https://files.pythonhosted.org/packages/42/c2/c223ac13c69e99787301ad8e4be32fc192e067e4e2798e0e5cceabf1abbe/pyobjc_framework_scriptingbridge-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:81bf8b19cd7fd1db055530007bc724901fd61160823324ec2df0daa8e25b94f7", size = 8564 }, -] - -[[package]] -name = "pyobjc-framework-searchkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/28/186a8525adb01657e2162ab8cd2ea3df17201bd1def22f460a6838301ca3/pyobjc_framework_searchkit-12.0.tar.gz", hash = "sha256:78c5fdd8f96da140883eabca82a3eb720a37e6e58c9a90d1c62dbe220a3fded5", size = 30949 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/00/e56077f1e21d55772064b645bd0b9359747967e9cb4599c48f79d3c77b99/pyobjc_framework_searchkit-12.0-py2.py3-none-any.whl", hash = "sha256:12dd4a566df2616dad316c95eb5b77fe7f98428a8cb707aee814328ce07bd6a8", size = 3742 }, -] - -[[package]] -name = "pyobjc-framework-searchkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreservices", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6e/60/a38523198430e14fdef21ebe62a93c43aedd08f1f3a07ea3d96d9997db5d/pyobjc_framework_searchkit-12.1.tar.gz", hash = "sha256:ddd94131dabbbc2d7c3f17db3da87c1a712c431310eef16f07187771e7e85226", size = 30942 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/46/4f9cd3011f47b43b21b2924ab3770303c3f0a4d16f05550d38c5fcb42e78/pyobjc_framework_searchkit-12.1-py2.py3-none-any.whl", hash = "sha256:844ce62b7296b19da8db7dedd539d07f7b3fb3bb8b029c261f7bcf0e01a97758", size = 3733 }, -] - -[[package]] -name = "pyobjc-framework-security" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/d6/ab109af82a65d52ab829010013b5a24b829c9155bc9608ebc80a43b8797c/pyobjc_framework_security-12.0.tar.gz", hash = "sha256:d64d069da79fbf1dadbc091717604843b9d5be96670f7b40bc9a08df12b4045b", size = 168360 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/6f/0297d0f510fe1fd1d90eed1d65a4250c04567c4cd697f92bc91e5b1b75ca/pyobjc_framework_security-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:923badc0e09b1be469c6bd11f47819892c595114ac0f6a366f18f71349db4659", size = 41300 }, - { url = "https://files.pythonhosted.org/packages/90/59/b7fecb01ae93980a93bfb027dddc793b58f39157b5e740972739404f6450/pyobjc_framework_security-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:39b0b5886b1ed0bc38a21d98d3b1be948ab9e6ca5b9e52261f8aaae9214ca282", size = 41302 }, - { url = "https://files.pythonhosted.org/packages/b5/81/847a61699c4c3def381b498aa3e6bd9d134dc610587f4ff29eb912014390/pyobjc_framework_security-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1d7a157927d1d90b884a602a32f324798fcc6c29241e7d1057216104a4fefc85", size = 41291 }, - { url = "https://files.pythonhosted.org/packages/2c/6d/7e50349ed08cfd2ee7438642b51512415739a87befc009d73b026d1e35c1/pyobjc_framework_security-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:be1435584cdd116495a16e6cd8a086d6930f0005ea49df4e4958b5a142dd6f63", size = 41291 }, - { url = "https://files.pythonhosted.org/packages/2b/4b/4bcc8a24806fb5cabd81b0c9bd110ec559eccce55829754f7a88931c2cd2/pyobjc_framework_security-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e3c27816b102858c976956ab8eee156b9c724cd0f1d488f3285ac4921a904788", size = 42167 }, - { url = "https://files.pythonhosted.org/packages/51/b6/aabbb1ef3268b487f36caf5647a0f544ae0ab32518f70e622821f2030d9a/pyobjc_framework_security-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0f9c1598215a9372f446e63ac5dab8a120e25f3caa5890b2abd8b075e4122a52", size = 41362 }, - { url = "https://files.pythonhosted.org/packages/68/40/aca4812e4d619c667f8432b79142cf6f89f7149aaec2194fed1f8b211da7/pyobjc_framework_security-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d67224e548735f4464778f1911063fd37b64dfe3950d0920d9c1afac229b03db", size = 42918 }, -] - -[[package]] -name = "pyobjc-framework-security" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/80/aa/796e09a3e3d5cee32ebeebb7dcf421b48ea86e28c387924608a05e3f668b/pyobjc_framework_security-12.1.tar.gz", hash = "sha256:7fecb982bd2f7c4354513faf90ba4c53c190b7e88167984c2d0da99741de6da9", size = 168044 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/67/31928b689b72a932c80e35662430355de09163bec8ee334f0994d16c4036/pyobjc_framework_security-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:787e9d873535247e2caca2036cbcdc956bcc92d0c06044bec7eefe0a456856b0", size = 41288 }, - { url = "https://files.pythonhosted.org/packages/5e/3d/8d3a39cd292d7c76ab76233498189bc7170fc80f573b415308464f68c7ee/pyobjc_framework_security-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b2d8819f0fb7b619ec7627a0d8c1cac1a57c5143579ce8ac21548165680684b", size = 41287 }, - { url = "https://files.pythonhosted.org/packages/76/66/5160c0f938fc0515fe8d9af146aac1b093f7ef285ce797fedae161b6c0e8/pyobjc_framework_security-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab42e55f5b782332be5442750fcd9637ee33247d57c7b1d5801bc0e24ee13278", size = 41280 }, - { url = "https://files.pythonhosted.org/packages/32/48/b294ed75247c5cfa00d51925a10237337d24f54961d49a179b20a4307642/pyobjc_framework_security-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:afc36661cc6eb98cd794bed1d6668791e96557d6f72d9ac70aa49022d26af1d4", size = 41284 }, - { url = "https://files.pythonhosted.org/packages/ef/57/0d3ef78779cf5c3bba878b2f824137e50978ad4a21dabe65d8b5ae0fc0d1/pyobjc_framework_security-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9510c98ab56921d1d416437372605cc1c1f6c1ad8d3061ee56b17bf423dd5427", size = 42162 }, - { url = "https://files.pythonhosted.org/packages/66/4d/63c15f9449c191e7448a05ff8af4a82c39a51bb627bc96dc9697586c0f79/pyobjc_framework_security-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6319a34508fd87ab6ca3cda6f54e707196197a65b792b292705af967e225438a", size = 41348 }, - { url = "https://files.pythonhosted.org/packages/1a/d8/5aaa2a8124ed04a9d6ca7053dc0fa64e42be51497ed8263a24b744a95598/pyobjc_framework_security-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:03d166371cefdef24908825148eb848f99ee2c0b865870a09dcbb94334dd3e0a", size = 42908 }, -] - -[[package]] -name = "pyobjc-framework-securityfoundation" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-security", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/f8/b806f00731237ef45d7cf6fdb12233320696e23e6bd04b14932027a03c81/pyobjc_framework_securityfoundation-12.0.tar.gz", hash = "sha256:55890147e294c5eb92f2467111ae577d18f15710ff3bb9caecb961b8397c5708", size = 12728 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/93/d0/ececa41a50918594b8ee3f28af4174fb47740950e758585bc70c787f49b1/pyobjc_framework_securityfoundation-12.0-py2.py3-none-any.whl", hash = "sha256:01933f6f5424e11e19e833803b65873458d3a32de390f8c6bfa849e258f0c018", size = 3803 }, -] - -[[package]] -name = "pyobjc-framework-securityfoundation" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-security", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/57/d5/c2b77e83c1585ba43e5f00c917273ba4bf7ed548c1b691f6766eb0418d52/pyobjc_framework_securityfoundation-12.1.tar.gz", hash = "sha256:1f39f4b3db6e3bd3a420aaf4923228b88e48c90692cf3612b0f6f1573302a75d", size = 12669 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/93/1e/349fb71a413b37b1b41e712c7ca180df82144478f8a9a59497d66d0f2ea2/pyobjc_framework_securityfoundation-12.1-py2.py3-none-any.whl", hash = "sha256:579cf23e63434226f78ffe0afb8426e971009588e4ad812c478d47dfd558201c", size = 3792 }, -] - -[[package]] -name = "pyobjc-framework-securityinterface" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-security", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ee/3b/0d263da7f2fa340e917b5a003d7dc34f930a60b4d489bdb29974890860c6/pyobjc_framework_securityinterface-12.0.tar.gz", hash = "sha256:6a17854bb37737b14684b379f2e3a7a71e4f2e5836aa3cdff7e9c179fc65369c", size = 25966 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/8d/862fc09d7324ce4f25b1b134d3febcf9233e8e14dd6472195a7817a66755/pyobjc_framework_securityinterface-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1e34614f87ca57a5980dac111eb1b3cc7b4316ece5c44ac35afb7588274ef500", size = 10726 }, - { url = "https://files.pythonhosted.org/packages/f6/9f/32b7a098b68ebda130ea3f2cbf5505fe8b52b9a3951b4731a5c537479429/pyobjc_framework_securityinterface-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:41e3dacb1616490fca4c20ab7375386554bb4fc8836fa1f691fdfd062bfa4f4b", size = 10728 }, - { url = "https://files.pythonhosted.org/packages/55/17/76ce2b4dbd96821895991484f95ed08a6c08df471dc9c2d05e80cc5c83cc/pyobjc_framework_securityinterface-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ff4a60b98f53f3a38e4f9276a1ae98710800164bf13fe13097e90d229ae0367a", size = 10791 }, - { url = "https://files.pythonhosted.org/packages/06/fa/941e19d267f38bfe0f714bce99af4f180e55868bff881e5dab5dcc1b1dab/pyobjc_framework_securityinterface-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6e21a47d9ae3fdf7baa7c29c4ce3cc4abd3e3a7a6f7926fa9823343374cfa8d0", size = 10807 }, - { url = "https://files.pythonhosted.org/packages/f5/cd/feeaccb7c9f38f40cffdc444ad7686343e11ec609431ed72dad54b833456/pyobjc_framework_securityinterface-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c138276a669e796f1d49053cd5cedabfc6eb911cd0a4e3ca7665251adf37ced2", size = 11144 }, - { url = "https://files.pythonhosted.org/packages/59/6f/2703523d2cd838ded70ba1022fe7f8012c265ec7c896d7def302274dd1b9/pyobjc_framework_securityinterface-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:658932a843f569ea40a2a3f9304fac0dac42ac37eb28e8e072abdbe6239a5943", size = 10844 }, - { url = "https://files.pythonhosted.org/packages/46/6a/a8a7b6301436bf4b900aaca3ed1ee752d2da0bf6214aacf1315f25da5bf3/pyobjc_framework_securityinterface-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0fb1214d7d25ac1eb2892d0c6a9ab5295cc1084e291b4c79b0c97279cdd2f389", size = 11194 }, -] - -[[package]] -name = "pyobjc-framework-securityinterface" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-security", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f9/64/bf5b5d82655112a2314422ee649f1e1e73d4381afa87e1651ce7e8444694/pyobjc_framework_securityinterface-12.1.tar.gz", hash = "sha256:deef11ad03be8d9ff77db6e7ac40f6b641ee2d72eaafcf91040537942472e88b", size = 25552 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/29/72ead8aecbccd06e4043754ba31d379eae70a6c39b3503a6e01cbb5ce6c3/pyobjc_framework_securityinterface-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:048950875a968032bc133c64e594d4810d5bf5ef359012830cf193610d9c04ac", size = 10723 }, - { url = "https://files.pythonhosted.org/packages/37/1c/a01fd56765792d1614eb5e8dc0a7d5467564be6a2056b417c9ec7efc648f/pyobjc_framework_securityinterface-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed599be750122376392e95c2407d57bd94644e8320ddef1d67660e16e96b0d06", size = 10719 }, - { url = "https://files.pythonhosted.org/packages/59/3e/17889a6de03dc813606bb97887dc2c4c2d4e7c8f266bc439548bae756e90/pyobjc_framework_securityinterface-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5cb5e79a73ea17663ebd29e350401162d93e42343da7d96c77efb38ae64ff01f", size = 10783 }, - { url = "https://files.pythonhosted.org/packages/78/c0/b286689fca6dd23f1ad5185eb429a12fba60d157d7d53f6188c19475b331/pyobjc_framework_securityinterface-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:af5db06d53c92f05446600d241afab5aec6fec7ab10941b4eeb27a452c543b64", size = 10799 }, - { url = "https://files.pythonhosted.org/packages/72/52/d378f25bb15f0d34e610f6cba50cedb0b99fdbae9bae9c0f0e715340f338/pyobjc_framework_securityinterface-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:08516c01954233fecb9bd203778b1bf559d427ccea26444ae1fa93691e751ddd", size = 11139 }, - { url = "https://files.pythonhosted.org/packages/8e/df/c6b30b5eb671755d6d59baa34c406d38524eef309886b6a7d9b7a05eb00a/pyobjc_framework_securityinterface-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:153632d23b0235faa56d26d5641e585542dac6b13b0d7b152cca27655405dec4", size = 10836 }, - { url = "https://files.pythonhosted.org/packages/aa/11/0e439fe86d93afd43587640e2904e73ff6d9c9401537b1e142cb623d95f6/pyobjc_framework_securityinterface-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b9eb42c5d4c62af83d69adeff3608af9cd4cfe5b7c9885a6a399be74fcc3d0f0", size = 11182 }, -] - -[[package]] -name = "pyobjc-framework-securityui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-security", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c3/b9/40ee5e3added96c9b2039e5016b7a994783c09580ac89eb5f077b9ed8810/pyobjc_framework_securityui-12.0.tar.gz", hash = "sha256:cbb5cfdb5f196ecb5b1c7369fa6af6e8a3c285013c8949b855b39bea4c09382e", size = 12206 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/82/53bacd8fc7344bbce297f317f9a46ea0f4c75f9cdd3c72bc6b0b762b440e/pyobjc_framework_securityui-12.0-py2.py3-none-any.whl", hash = "sha256:9c7511241d19b416b79b1291eb57896ffc317528e6c342982722a32901a177a5", size = 3606 }, -] - -[[package]] -name = "pyobjc-framework-securityui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-security", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/83/3f/d870305f5dec58cd02966ca06ac29b69fb045d8b46dfb64e2da31f295345/pyobjc_framework_securityui-12.1.tar.gz", hash = "sha256:f1435fed85edc57533c334a4efc8032170424b759da184cb7a7a950ceea0e0b6", size = 12184 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/36/7f/eff9ffdd34511cc95a60e5bd62f1cfbcbcec1a5012ef1168161506628c87/pyobjc_framework_securityui-12.1-py2.py3-none-any.whl", hash = "sha256:3e988b83c9a2bb0393207eaa030fc023a8708a975ac5b8ea0508cdafc2b60705", size = 3594 }, -] - -[[package]] -name = "pyobjc-framework-sensitivecontentanalysis" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/fa/1a597c43747efb764f8d069b4d8db0458cdf14086ce9bd32fa41139484e1/pyobjc_framework_sensitivecontentanalysis-12.0.tar.gz", hash = "sha256:2e56f19af4506a0b222b223f70ab59725fc59b24d40267c1e03dcd3113f865ea", size = 13786 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/0b/3be629ba18bec304236dba34e7bc592faa6a8486dd1188bd3994102ea2ec/pyobjc_framework_sensitivecontentanalysis-12.0-py2.py3-none-any.whl", hash = "sha256:fca905676790e76a2697c93fb798479aee3be5a57144ac681fa0e5cdc33e7d3a", size = 4240 }, -] - -[[package]] -name = "pyobjc-framework-sensitivecontentanalysis" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e7/ce/17bf31753e14cb4d64fffaaba2377453c4977c2c5d3cf2ff0a3db30026c7/pyobjc_framework_sensitivecontentanalysis-12.1.tar.gz", hash = "sha256:2c615ac10e93eb547b32b214cd45092056bee0e79696426fd09978dc3e670f25", size = 13745 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/95/23/c99568a0d4e38bd8337d52e4ae25a0b0bd540577f2e06f3430c951d73209/pyobjc_framework_sensitivecontentanalysis-12.1-py2.py3-none-any.whl", hash = "sha256:faf19d32d4599ac2b18fb1ccdc3e33b2b242bdf34c02e69978bd62d3643ad068", size = 4230 }, -] - -[[package]] -name = "pyobjc-framework-servicemanagement" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4a/76/8980c4451f27b646bf2b6b9895f155c780e040cfdddc66a3aca0125b93bf/pyobjc_framework_servicemanagement-12.0.tar.gz", hash = "sha256:768e0a288f38a4dcc65bbfc144fbccfc10fc29df72102b1a00923d78385d1c15", size = 14624 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/18/c0/dc4c35cd42fc6e398d2b86f05a446007d3ae802cda187b8cf6834c3a248f/pyobjc_framework_servicemanagement-12.0-py2.py3-none-any.whl", hash = "sha256:57c22bb43aa6eb956aa5dee5976fe8602d45b72271e9ae9ed6f328645907fdac", size = 5366 }, -] - -[[package]] -name = "pyobjc-framework-servicemanagement" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/31/d0/b26c83ae96ab55013df5fedf89337d4d62311b56ce3f520fc7597d223d82/pyobjc_framework_servicemanagement-12.1.tar.gz", hash = "sha256:08120981749a698033a1d7a6ab99dbbe412c5c0d40f2b4154014b52113511c1d", size = 14585 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/5d/1009c32189f9cb26da0124b4a60640ed26dd8ad453810594f0cbfab0ff70/pyobjc_framework_servicemanagement-12.1-py2.py3-none-any.whl", hash = "sha256:9a2941f16eeb71e55e1cd94f50197f91520778c7f48ad896761f5e78725cc08f", size = 5357 }, -] - -[[package]] -name = "pyobjc-framework-sharedwithyou" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-sharedwithyoucore", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/49/9fdb0d4e8c1f2d800975fb60d6975292767379e37250360072d9d84e9116/pyobjc_framework_sharedwithyou-12.0.tar.gz", hash = "sha256:e83152057aec724ede34be680bd98d5962b2e5d5443646fe41635fda9d5e996f", size = 25148 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/c3/0be748f07b3fd388198b667ae6ee3b4bb2620a8c2530e6ef4c1c2891fa5b/pyobjc_framework_sharedwithyou-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:08dcbd47ca169bd049089d10cea65afc2533a20fb07b9d9eb063d41252580955", size = 8756 }, - { url = "https://files.pythonhosted.org/packages/87/f5/49794fdc63f17f58b9cc9f6d3f7a851c0397c9bb8a1472d0ff8a1e18c1cd/pyobjc_framework_sharedwithyou-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dd6073e3371d208d30617a94c1ae93e097c77f253a49daaa2511e0e408a8f73c", size = 8756 }, - { url = "https://files.pythonhosted.org/packages/ff/b2/7e00f13185d1275a57297c436f956b0192252d26d871a66cb036aea56594/pyobjc_framework_sharedwithyou-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:988e16bf4f2e440cf5c18d377d17314e10e52fe1c6f528af23fbc2914b26a1ab", size = 8774 }, - { url = "https://files.pythonhosted.org/packages/bf/16/ddf19adbbc69e57d484a683aaa1c1812da1a732188de75ebdc97c0c25f0b/pyobjc_framework_sharedwithyou-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c03665432b090e4a147a30f1af936a259ecf0ce337fe534ceff2c4f46dd12524", size = 8787 }, - { url = "https://files.pythonhosted.org/packages/20/f6/1644c078321e73a769054744186930d639e38be99b9369da2004993a292d/pyobjc_framework_sharedwithyou-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:25f403f90688f2b4f389d1df4902ebdee59bd5c44861cc04d217d513b1c7d9b0", size = 8932 }, - { url = "https://files.pythonhosted.org/packages/9e/77/a54b13ec4d1dfc3d6b9c12393b61e40fcb56f096f4bf119d66244a3a149f/pyobjc_framework_sharedwithyou-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3509163025f9a47a366d22472fc7206c509c32019a6b9c9c520746df70e34f95", size = 8831 }, - { url = "https://files.pythonhosted.org/packages/8c/94/4c09b390fb4b8f8ee19072ddb19cada38e7ea4ae2e6c63a6276c22bfd4c9/pyobjc_framework_sharedwithyou-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ace608ae20e48fdd082426c560d9bb558199256b69653b8e688f723d6eb6e012", size = 8980 }, -] - -[[package]] -name = "pyobjc-framework-sharedwithyou" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-sharedwithyoucore", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0f/8b/8ab209a143c11575a857e2111acc5427fb4986b84708b21324cbcbf5591b/pyobjc_framework_sharedwithyou-12.1.tar.gz", hash = "sha256:167d84794a48f408ee51f885210c616fda1ec4bff3dd8617a4b5547f61b05caf", size = 24791 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/8f/05eb8862ee9163dd41d38c0a1a3e8d3cbd2a1fb9397f792c19af84241556/pyobjc_framework_sharedwithyou-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b5e05940bd0b9107340437ecef4502a2d2326072b0fa0b458f41c02a173d1047", size = 8748 }, - { url = "https://files.pythonhosted.org/packages/19/69/3ad9b344808c5619adc253b665f8677829dfb978888227e07233d120cfab/pyobjc_framework_sharedwithyou-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:359c03096a6988371ea89921806bb81483ea509c9aa7114f9cd20efd511b3576", size = 8739 }, - { url = "https://files.pythonhosted.org/packages/ec/ee/e5113ce985a480d13a0fa3d41a242c8068dc09b3c13210557cf5cc6a544a/pyobjc_framework_sharedwithyou-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a99a6ebc6b6de7bc8663b1f07332fab9560b984a57ce344dc5703f25258f258d", size = 8763 }, - { url = "https://files.pythonhosted.org/packages/2e/51/e833c41cb6578f51623da361f6ded50b5b91331f9339b125ea50b4e62f8b/pyobjc_framework_sharedwithyou-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:491b35cdb3a0bc11e730c96d4109944c77ab153573a28220ff12d41d34dd9c0f", size = 8781 }, - { url = "https://files.pythonhosted.org/packages/59/c4/b843dc3b7bd1385634df7f0bb8b557d8d09df3a384c7b2df0bc85af5bd4e/pyobjc_framework_sharedwithyou-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:50f0b32e2bf6f7ceb3af4422b015f674dc20a8cb1afa72d78f7e4186eb3710b9", size = 8917 }, - { url = "https://files.pythonhosted.org/packages/1e/b0/eca22cf9ba67c8ba04a98f8a26af0a5ca16b40e05a8100b8209a153046b1/pyobjc_framework_sharedwithyou-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5a38bc6e3e0c9a36fe86e331eb16b680bab0024c897d252af1e611f0cd1087ef", size = 8824 }, - { url = "https://files.pythonhosted.org/packages/b3/e9/4cc7420c7356b1a25b4c9a4544454e99c3da8d50ee4b4d9b55a82eb5a836/pyobjc_framework_sharedwithyou-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1b65c51a8f6f5baf382e419cda74896d196625f1468710660a1a87a8b02b34dc", size = 8970 }, -] - -[[package]] -name = "pyobjc-framework-sharedwithyoucore" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a5/da/6e2f57bcfd4a5425a97d98c952d92f55c2ba8e5b7b227b2c122af9ab68f4/pyobjc_framework_sharedwithyoucore-12.0.tar.gz", hash = "sha256:ea923c3336c895d3dd79fa405f6fc17db6abbaac85ed8d7ed4ce9887e508ce1a", size = 22791 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/4a/86695c3aef07c7a291b2ecb5992f6d963f28572af1a62b223efea2865b9d/pyobjc_framework_sharedwithyoucore-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:90deed38514f57bb20c56600de1c6b505d5b7504d387501a09f66bb777fb1adb", size = 8521 }, - { url = "https://files.pythonhosted.org/packages/99/46/366371e82b7d6d5b5185442be27b251a18b2a49c81ba873d9831c2a4fa41/pyobjc_framework_sharedwithyoucore-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a886bc070964b2693bb6575c60ea8b70446995b6dea18db3293b183349d68846", size = 8522 }, - { url = "https://files.pythonhosted.org/packages/91/25/c759f4764b31a4adefa664e58b169e9ca23e73ff24450600338e5b264e8e/pyobjc_framework_sharedwithyoucore-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d54acd83c19d9fdd8623c4794906fbab24b2f02be2c77f665ceccbd5cf320b8d", size = 8543 }, - { url = "https://files.pythonhosted.org/packages/2c/be/53a568fb87f037382f1ff87df03d393b529cb6fcebb1506c4e6cf8a0a1f8/pyobjc_framework_sharedwithyoucore-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b51a3ac935dd41d0d4ebe5ac08960e4a91e0732e94cf4bca0f753b86f6b79bf0", size = 8554 }, - { url = "https://files.pythonhosted.org/packages/69/4a/26177b557b8f9a4cb7d95984c5dd06d798bfb3dc64adf10f71af8eb6a424/pyobjc_framework_sharedwithyoucore-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:84cc03cfd3e0dada72991f1c842ab16176a4bb859a20734a9aa30a6954978305", size = 8687 }, - { url = "https://files.pythonhosted.org/packages/f2/1d/7c85af279ba24427ef6e4165cd22d99690ee69700703116243a1f9b38038/pyobjc_framework_sharedwithyoucore-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:14e2ef808e72628e037b5967b196470f5dcec28931d81451d49b30aa87591310", size = 8600 }, - { url = "https://files.pythonhosted.org/packages/c8/c6/ecb7332a7d6d23b883c3cedf7607a6c7d984074cb5eefc0c17ea927ae820/pyobjc_framework_sharedwithyoucore-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1705dce361b984dea4ba1cb2e67f3433cf4f074cbf49729e8999254726896c04", size = 8749 }, -] - -[[package]] -name = "pyobjc-framework-sharedwithyoucore" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/ef/84059c5774fd5435551ab7ab40b51271cfb9997b0d21f491c6b429fe57a8/pyobjc_framework_sharedwithyoucore-12.1.tar.gz", hash = "sha256:0813149eeb755d718b146ec9365eb4ca3262b6af9ff9ba7db2f7b6f4fd104518", size = 22350 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/d5/73669bcc8bde10f6a11d4c1d38f7c38c286289a59f0a3cf76c6ed121dd0b/pyobjc_framework_sharedwithyoucore-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a7dd3048ea898b8fa401088d9fae73dbda361fb7c2dd1dc1057102e503b12771", size = 8512 }, - { url = "https://files.pythonhosted.org/packages/ce/a1/83e58eca8827a1a9975a9c5de7f8c0bdc73b5f53ee79768d1fdbec6747de/pyobjc_framework_sharedwithyoucore-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f4f9f7fed0768ebbbc2d24248365da2cf5f014b8822b2a1fbbce5fa920f410f1", size = 8512 }, - { url = "https://files.pythonhosted.org/packages/dd/0e/0c2b0591ebc72d437dccca7a1e7164c5f11dde2189d4f4c707a132bab740/pyobjc_framework_sharedwithyoucore-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed928266ae9d577ff73de72a03bebc66a751918eb59ca660a9eca157392f17be", size = 8530 }, - { url = "https://files.pythonhosted.org/packages/5e/23/2446cb158efe0f55d983ae7b4729b3b24c52a1370b5d22bc134f046cdb34/pyobjc_framework_sharedwithyoucore-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:13eebca21722556449e47b0eda3339165b5afbb455ae00b34aabe03988affd7a", size = 8547 }, - { url = "https://files.pythonhosted.org/packages/8e/42/6c5de4e508a0c0f4715e3466c0035e23b5875d2a43525a6ed81e4770ad3c/pyobjc_framework_sharedwithyoucore-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d9aa525cdff75005a8f0ca2f7afdd1535b9e34ccafb6a92a932f3ded4b6d64d4", size = 8677 }, - { url = "https://files.pythonhosted.org/packages/94/a1/24ffb35098a239a8804e469fcd7430eaee5e47bf0756c59cd77a66c3edff/pyobjc_framework_sharedwithyoucore-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2ceb4c3ad7bc1c93b4cbbbab6404d3e32714c12c36fab2932c170946af83c548", size = 8591 }, - { url = "https://files.pythonhosted.org/packages/9f/5e/2460f60a931f11933ea6d5d1f7c73b6f4ade7980360cfcf327cb785b7bf8/pyobjc_framework_sharedwithyoucore-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0a55c843bd4cfdefa4a4566ccb64782466341715ecab3956c3566dbfbad0d1e5", size = 8739 }, -] - -[[package]] -name = "pyobjc-framework-shazamkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cf/21/1743b7d7592117f9739f0c14041e90c5de28b05a8b0c936602719b624fd4/pyobjc_framework_shazamkit-12.0.tar.gz", hash = "sha256:4624fc90435eaabb19c0079505a942e92b6cdf516830340289d543816fceca91", size = 22935 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/97/ee0a3c95e7ab03f106f7cfd66612be272e0acef80b26212f7c271e4bed3f/pyobjc_framework_shazamkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:148cf8c5593b45824fcd1ac363e20d16adedafb523b5705ea507e90ebee0924d", size = 8565 }, - { url = "https://files.pythonhosted.org/packages/8e/91/dc1d060770503d0a6bbafbc49d2dd5dd75d4fb7342b8ba8715dd4259e333/pyobjc_framework_shazamkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e5dfdfbdb598f59a29ed30419327bd9eb3ac9daa9eca7e3f5180e0034510fa8", size = 8562 }, - { url = "https://files.pythonhosted.org/packages/76/0f/adbc22ad35a32f74cf097d7e79e7980fa055c04a414fcf50d6d620f49821/pyobjc_framework_shazamkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:70b96018ee5883febe4389b740cf78e5412ad1386467b7122a10db20d19d2773", size = 8582 }, - { url = "https://files.pythonhosted.org/packages/4c/e8/05e934e4f36432c191ab662056ec1807c26a7f56f02de7ac151b244432e1/pyobjc_framework_shazamkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:50337b0e81d51f07beef7db7b036b2f2051ea0603f0d92ff93f8596d67f6dba5", size = 8595 }, - { url = "https://files.pythonhosted.org/packages/e2/7f/16e61fe1fae03f2f4bd81b6e328eeec78d5c6cd18dc8d1762deafbb8274a/pyobjc_framework_shazamkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3f074540562a0de1e2dcb66f70a74ab73035da475f9c3ae4426f91fab8c5af35", size = 8738 }, - { url = "https://files.pythonhosted.org/packages/ea/53/fa4bcde1af718ff832825e167522ff7e18ce03b11f27e55638fc3f312239/pyobjc_framework_shazamkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0911efc4dafbe1fbb8d44acba01b2473efb9bf5c49f7a6899cfaddc441298fef", size = 8656 }, - { url = "https://files.pythonhosted.org/packages/04/a4/9be04728b6483b1ed47e81ed4ee4059a0e84a06d36084d18aa6239728bac/pyobjc_framework_shazamkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ba5089661647e16978e29a43ebfba96f713cae1eb9dba270719598516b8c2dcd", size = 8798 }, -] - -[[package]] -name = "pyobjc-framework-shazamkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/2c/8d82c5066cc376de68ad8c1454b7c722c7a62215e5c2f9dac5b33a6c3d42/pyobjc_framework_shazamkit-12.1.tar.gz", hash = "sha256:71db2addd016874639a224ed32b2000b858802b0370c595a283cce27f76883fe", size = 22518 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/68/669b073beec0013a3bd3b99c99312fbf1018cfa702819962f5da8c121143/pyobjc_framework_shazamkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:18ff0a83a6d2517d30669cf5337e688310e424d1cdc1fa90acf3753a73cc1bd4", size = 8558 }, - { url = "https://files.pythonhosted.org/packages/92/12/09d83a8ac51dc11a574449dea48ffa99b3a7c9baf74afeedb487394d110d/pyobjc_framework_shazamkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0c10ba22de524fbedf06270a71bb0a3dbd4a3853b7002ddf54394589c3be6939", size = 8555 }, - { url = "https://files.pythonhosted.org/packages/04/5e/7d60d8e7b036b20d0e94cd7c4563e7414653344482e85fbc7facffabc95f/pyobjc_framework_shazamkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e184dd0f61a604b1cfcf44418eb95b943e7b8f536058a29e4b81acadd27a9420", size = 8577 }, - { url = "https://files.pythonhosted.org/packages/a9/fa/476cf0eb6f70e434056276b1a52bb47419e4b91d80e0c8e1190ce84f888f/pyobjc_framework_shazamkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:957c5e31b2b275c822ea43d7c4435fa1455c6dc5469ad4b86b29455571794027", size = 8587 }, - { url = "https://files.pythonhosted.org/packages/9a/69/105fccda6c5ca32d35edc5e055d4cffc9aefe6a40fdd00bb21ec5d21e0ce/pyobjc_framework_shazamkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:eb2875ddf18d3cd2dc2b1327f58e142b9bd86fafd32078387ed867ec5a6c5571", size = 8734 }, - { url = "https://files.pythonhosted.org/packages/8d/79/09d4b2c121d3d3a662e19d67328904fd62a3303b7a169698d654a3493140/pyobjc_framework_shazamkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:951b989997a7c19d0c0d91a477d3d221ddb890085f3538ae3c520177c2322caa", size = 8647 }, - { url = "https://files.pythonhosted.org/packages/74/37/859660e654ebcf6b0b4a7f3016a0473629642cf387419be2052f363a6001/pyobjc_framework_shazamkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:70f203ffe3e4c130b3a9c699d9a2081884bd7b3bd1ce08c7402b6d60fc755d75", size = 8790 }, -] - -[[package]] -name = "pyobjc-framework-social" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e1/a0/034973099006522f01a32f83cf29458bd89acbd4b5a7f782358c9d781bf9/pyobjc_framework_social-12.0.tar.gz", hash = "sha256:be7d4b827537de49dea96c7defcfd28263b4a4cd4f28c5abeb873a072456db5b", size = 13229 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/dc/4da2473821c80acbfa65783430faad8923a0281e257960e5abcc821265b2/pyobjc_framework_social-12.0-py2.py3-none-any.whl", hash = "sha256:0bf4b935014f70957d0dd6316ce47c944495201c30990738d9be11431fa0db00", size = 4469 }, -] - -[[package]] -name = "pyobjc-framework-social" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/31/21/afc6f37dfdd2cafcba0227e15240b5b0f1f4ad57621aeefda2985ac9560e/pyobjc_framework_social-12.1.tar.gz", hash = "sha256:1963db6939e92ae40dd9d68852e8f88111cbfd37a83a9fdbc9a0c08993ca7e60", size = 13184 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/fb/090867e332d49a1e492e4b8972ac6034d1c7d17cf39f546077f35be58c46/pyobjc_framework_social-12.1-py2.py3-none-any.whl", hash = "sha256:2f3b36ba5769503b1bc945f85fd7b255d42d7f6e417d78567507816502ff2b44", size = 4462 }, -] - -[[package]] -name = "pyobjc-framework-soundanalysis" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/eb/30927f7d3e93913fcb4472bd2fb46b90cf341a52065c4c3bad3ffac463ad/pyobjc_framework_soundanalysis-12.0.tar.gz", hash = "sha256:eb60a6b172ca2d71f8b5ae9b6169a3b542755af0f763fec0786403f90b1394c5", size = 14871 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/2a/80786fe9e85ddb3b44828336911bd4bab99a2674cf9dd7912295f6c319a3/pyobjc_framework_soundanalysis-12.0-py2.py3-none-any.whl", hash = "sha256:08fd2e988ca0ae84c8dbaf490d634e250d32e44f420de7e6c2ff72bac947aaaf", size = 4197 }, -] - -[[package]] -name = "pyobjc-framework-soundanalysis" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6b/d6/5039b61edc310083425f87ce2363304d3a87617e941c1d07968c63b5638d/pyobjc_framework_soundanalysis-12.1.tar.gz", hash = "sha256:e2deead8b9a1c4513dbdcf703b21650dcb234b60a32d08afcec4895582b040b1", size = 14804 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/53/d3/8df5183d52d20d459225d3f5d24f55e01b8cd9fe587ed972e3f20dd18709/pyobjc_framework_soundanalysis-12.1-py2.py3-none-any.whl", hash = "sha256:8b2029ab48c1a9772f247f0aea995e8c3ff4706909002a9c1551722769343a52", size = 4188 }, -] - -[[package]] -name = "pyobjc-framework-speech" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/73/623e37a98f0279cf4e5b6c160bcf8b510bb67d4f9fdc3202b48c326bdc66/pyobjc_framework_speech-12.0.tar.gz", hash = "sha256:9e6a208205e3065055e3d98b553464086ddc60f165df7e9c93596a819b4ab9b4", size = 25615 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/fd/089cbb04af7f45d18c2a5a3d1e8a990e59145447afad0b1ec0bfb835fec1/pyobjc_framework_speech-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d174b7a0dc59c066fbe8e588c3e9314f76d1429772ab5070a46aa99b0a0fefb3", size = 9260 }, - { url = "https://files.pythonhosted.org/packages/46/63/995dbdaafa2f15d1f8a0c267588ff2d3c724c2484a3f79f5819a475c7df5/pyobjc_framework_speech-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:32aa8a1c357e2519da3047873bff1cce385c8603c58b58e10ee88428440a44f2", size = 9258 }, - { url = "https://files.pythonhosted.org/packages/31/51/6adcaf102696516c9bab1f89a13762030cbb21b952b3ac01509238bdcc51/pyobjc_framework_speech-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a2c84614eaa280af3a3a294afe94e6c8b47ada81a7b9cedd218ca5d2ab23d9e5", size = 9262 }, - { url = "https://files.pythonhosted.org/packages/d8/39/30c9e02475afd3976c3667cfc5a94aaf0237579d1f9b588292706299e38b/pyobjc_framework_speech-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f5c81f0c5e32110f61fb487d3a47d4fc504776ac2d5ab2a9857a7ebe921fbf1d", size = 9280 }, - { url = "https://files.pythonhosted.org/packages/4e/48/c41931ca8e305bd250e7cc7adbfecebefaaa296b06d0c1d1dbc87d6266f3/pyobjc_framework_speech-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b3baea1720e54a60bec2ce20d7b979fcfe25d1e25f2e2a4ca4e5b23a990b210e", size = 9442 }, - { url = "https://files.pythonhosted.org/packages/16/89/b9c6fbbb2adbb42005884b8294899b994d206d299d6c826c55f8bdf20d08/pyobjc_framework_speech-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:71fd245edc11cbbe890772cd4a8bfa48ade5fa83dc5e5add1a10882a21b3182d", size = 9345 }, - { url = "https://files.pythonhosted.org/packages/7b/cd/5ffff71717caf90e6d5f95a0c38fa68496a341e75315fb9a0d91dbb5ba25/pyobjc_framework_speech-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a2a971db829b76c9b6377250d9a406e8ad50d81c0e13ed9831ba429375570732", size = 9505 }, -] - -[[package]] -name = "pyobjc-framework-speech" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8d/3d/194cf19fe7a56c2be5dfc28f42b3b597a62ebb1e1f52a7dd9c55b917ac6c/pyobjc_framework_speech-12.1.tar.gz", hash = "sha256:2a2a546ba6c52d5dd35ddcfee3fd9226a428043d1719597e8701851a6566afdd", size = 25218 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/ce/d63b45886df45ea678d066ad943990eb3fbe7d9b5f9e3d4e9375f0e6134d/pyobjc_framework_speech-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:be5c005595918557f17e991b2575159b8ea943e7fb08fd00b1dabccde35f8b1b", size = 9244 }, - { url = "https://files.pythonhosted.org/packages/03/54/77e12e4c23a98fc49d874f9703c9f8fd0257d64bb0c6ae329b91fc7a99e3/pyobjc_framework_speech-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0301bfae5d0d09b6e69bd4dbabc5631209e291cc40bda223c69ed0c618f8f2dc", size = 9248 }, - { url = "https://files.pythonhosted.org/packages/f9/1b/224cb98c9c32a6d5e68072f89d26444095be54c6f461efe4fefe9d1330a5/pyobjc_framework_speech-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cae4b88ef9563157a6c9e66b37778fc4022ee44dd1a2a53081c2adbb69698945", size = 9254 }, - { url = "https://files.pythonhosted.org/packages/21/98/9ae05ebe183f35ac4bb769070f90533405d886fb9216e868e30a0e58d1ad/pyobjc_framework_speech-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:49df0ac39ae6fb44a83b2f4d7f500e0fa074ff58fbc53106d8f626d325079c23", size = 9274 }, - { url = "https://files.pythonhosted.org/packages/ec/9d/41581c58ea8f8962189bcf6a15944f9a0bf36b46c5fce611a9632b3344a2/pyobjc_framework_speech-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ed5455f6d9e473c08ebf904ae280ad5fd0d00a073448bf4f0a01fee5887c5537", size = 9430 }, - { url = "https://files.pythonhosted.org/packages/00/df/2af011d05b4ab008b1e9e4b8c71b730926ef8e9599aeb8220a898603580b/pyobjc_framework_speech-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a958b3ace1425cf9319f5d8ace920c2f3dac95a5a6d1bd8742d5b64d24671e30", size = 9336 }, - { url = "https://files.pythonhosted.org/packages/6f/2e/51599acce043228164355f073b218253d57c06a2927c5dbebc300c5a4cf8/pyobjc_framework_speech-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:893052631198c5447453f81e4ed4af8077038666a7893fbe2d6a2f72b9c44b7e", size = 9496 }, -] - -[[package]] -name = "pyobjc-framework-spritekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bf/a0/aababd3124b2303379d76dfd058b2c37d1609e6397f932a183dbb68b2d31/pyobjc_framework_spritekit-12.0.tar.gz", hash = "sha256:d2d673437d5863f59d4ed4cd1145c30c02cf7737b889573252d8d81cbb48e1db", size = 64834 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/1e/7b3715c027f80fba550cc185225f85b41a6d8a5a9cd9691178b300f3509b/pyobjc_framework_spritekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2f9478565547b35dfcfc22fcb2f7c85582a2fbdd72aa0e74074a68ee0619f916", size = 17747 }, - { url = "https://files.pythonhosted.org/packages/39/e3/6aa92eaaa6e3ea9cad1a575229cfb3e47ec8089f24922be7e4f054af54c8/pyobjc_framework_spritekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d0ad45adcdf1d1051f9f3931f01dd2728953ae5d57d517de12336399633640fa", size = 17749 }, - { url = "https://files.pythonhosted.org/packages/3b/c6/85d89adc7ed775716e4dfb0bf2ecb72fd5c11bbbed5da524bfe04df2bade/pyobjc_framework_spritekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c34305a13f3c7d999795b44cb71501b4c812a94fa542ab03ed9cfcbe8c52ec6d", size = 17812 }, - { url = "https://files.pythonhosted.org/packages/f5/5f/f4f69dee686daa9bc69cc09493b0fbe642db7fac6a1eb3daf8cb8b1800c5/pyobjc_framework_spritekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a67878483326b8079e6077ecdeb571a91197b7f13a1aab803cbb14d0e966ffb6", size = 17828 }, - { url = "https://files.pythonhosted.org/packages/14/03/cdced6f888211515503ccafcf9d46ae34ad65cbd44286be7e1bb239d5517/pyobjc_framework_spritekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e460d1b764755a7e4bdeef79ffc66d016c496b0a20ad679ea2cf2ec4ced13af9", size = 18096 }, - { url = "https://files.pythonhosted.org/packages/7d/2c/078f283220713936774d6bfe3ae05e57303fd9fe64103a453a5423a95938/pyobjc_framework_spritekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0bb3d5ccec06f3165f5c8eae891a9a5e218bbb28a19f661b300340b1d71fde19", size = 17800 }, - { url = "https://files.pythonhosted.org/packages/16/de/0ab2c08e12a21cb8a94bece9069002f77a49cca5c825797840a8a78fccc0/pyobjc_framework_spritekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f404417bfacb9702a24b706cd6376b71e08980df13d2d808ff73dab0027dca4f", size = 18079 }, -] - -[[package]] -name = "pyobjc-framework-spritekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b6/78/d683ebe0afb49f46d2d21d38c870646e7cb3c2e83251f264e79d357b1b74/pyobjc_framework_spritekit-12.1.tar.gz", hash = "sha256:a851f4ef5aa65cc9e08008644a528e83cb31021a1c0f17ebfce4de343764d403", size = 64470 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/90/b5/6624e7a28d244beb6bc0ca26f16c137b40933250624babadc924a43bc719/pyobjc_framework_spritekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9324955df38e24ab799d5bc7f66cce20aa0c9a93aef3139e54dee99f9d7848cc", size = 17738 }, - { url = "https://files.pythonhosted.org/packages/60/6a/e8e44fc690d898394093f3a1c5fe90110d1fbcc6e3f486764437c022b0f8/pyobjc_framework_spritekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26fd12944684713ae1e3cdd229348609c1142e60802624161ca0c3540eec3ffa", size = 17736 }, - { url = "https://files.pythonhosted.org/packages/3b/38/97c3b6c3437e3e9267fb4e1cd86e0da4eff07e0abe7cd6923644d2dfc878/pyobjc_framework_spritekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1649e57c25145795d04bb6a1ec44c20ef7cf0af7c60a9f6f5bc7998dd269db1e", size = 17802 }, - { url = "https://files.pythonhosted.org/packages/1f/c6/0e62700fbc90ab57170931fb5056d964202d49efd4d07a610fdaa28ffcfa/pyobjc_framework_spritekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd6847cb7a287c42492ffd7c30bc08165f4fbb51b2602290e001c0d27e0aa0f0", size = 17818 }, - { url = "https://files.pythonhosted.org/packages/a6/22/26b19fc487913d9324cbba824841c9ac921aa9bdd6e340ed46b9968547bc/pyobjc_framework_spritekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dd6e309aa284fa9b434aa7bf8ab9ab23fe52e7a372e2db3869586a74471f3419", size = 18088 }, - { url = "https://files.pythonhosted.org/packages/13/df/453d5885c79a1341e947c7654aa2c4c0cd6bed5cef4d1c16b26c58051d91/pyobjc_framework_spritekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5c9cb8f23436fc7bd0a8149f1271b307131a4c5669dfbb8302beef56cdca057f", size = 17787 }, - { url = "https://files.pythonhosted.org/packages/6d/96/4cf353ee49e92f7df02b069eb8eeb6cc36ac09d40a016cf48d1b462dd4c4/pyobjc_framework_spritekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9ebe7740c124ea7f8fb765e86df39f331f137be575ddb6d0d81bfb2258ee72d7", size = 18069 }, -] - -[[package]] -name = "pyobjc-framework-storekit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/a0/c8d7df4eb7f771838d6075c010b11fdf9d99bff2a60261b03ed196b22b03/pyobjc_framework_storekit-12.0.tar.gz", hash = "sha256:b72cbf8d79fa2f542765a9ccd75b3fc83ed0b985985c626e09ea268246416a95", size = 35012 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/da/a7a4abc3409d4c8e0371abd2c73831d2e7b0dad7515a8dbe2d2644d2261f/pyobjc_framework_storekit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f3c90b5b5e7d2e6c489ca0cc0f5ab9cf2f65ae196e9207e3316c9428efce1667", size = 12824 }, - { url = "https://files.pythonhosted.org/packages/eb/5c/fefc599ba997fdd3551a3d4cffcd7344057a4bff2017085942bae074339b/pyobjc_framework_storekit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13c5e3466a2388c6043c6fd36f0602d5e34bbfd1f2bce4a66e06f252ac5158e0", size = 12819 }, - { url = "https://files.pythonhosted.org/packages/42/78/6d860fc737a446549e1472586a3800b87d9a88b420afe207e902708df595/pyobjc_framework_storekit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a05abcbd36d7adf82f84257a6fb0edf763eb0c57dcef987a3306e79099b8988", size = 12834 }, - { url = "https://files.pythonhosted.org/packages/87/48/ed3822fa87e96a0724b05e212f7e0829dc8739e44f4adccc8fc85f0b08bc/pyobjc_framework_storekit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:961dceeeb3ba3364b1fc77f2176cd6fcff2e19fef2eb402b14bdef616ed7a121", size = 12845 }, - { url = "https://files.pythonhosted.org/packages/d0/1d/0d473466153c1d651d0ed4c139556d8ae8c7029bcc5603154e37ffd0b6d3/pyobjc_framework_storekit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a87d636a2c7d905b9e429a4dd30ffd5dc895539da11ba282c5bb0a47781503ae", size = 13036 }, - { url = "https://files.pythonhosted.org/packages/fc/49/2a2c7177a8f8543473b5b0c1c6a658689c59d2274a77ec1537a69f083b44/pyobjc_framework_storekit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a682be4a5c896a916bf4b7e976c343e8ba81d0f301cc23bad93609f9bdbadff4", size = 12833 }, - { url = "https://files.pythonhosted.org/packages/60/be/5dc4eef2ba8f81cdcebe654d691709e5cf37d94ce67b532a6e4d76e023d3/pyobjc_framework_storekit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9afb63e5b13fc60a4f349d9816e4a9670b79a38984bab238f956ce062cfaf856", size = 13027 }, -] - -[[package]] -name = "pyobjc-framework-storekit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/00/87/8a66a145feb026819775d44975c71c1c64df4e5e9ea20338f01456a61208/pyobjc_framework_storekit-12.1.tar.gz", hash = "sha256:818452e67e937a10b5c8451758274faa44ad5d4329df0fa85735115fb0608da9", size = 34574 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/93/39946f690a07bb28f14c73738b133094fb79c34e9fa69553cd683b3e118b/pyobjc_framework_storekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e67341cb14adfdecbd230393f3b02d4b19fbb3ada427b06d4f82a703ae90431f", size = 12807 }, - { url = "https://files.pythonhosted.org/packages/d9/41/af2afc4d27bde026cfd3b725ee1b082b2838dcaa9880ab719226957bc7cd/pyobjc_framework_storekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a29f45bcba9dee4cf73dae05ab0f94d06a32fb052e31414d0c23791c1ec7931c", size = 12810 }, - { url = "https://files.pythonhosted.org/packages/8a/9f/938985e506de0cc3a543e44e1f9990e9e2fb8980b8f3bcfc8f7921d09061/pyobjc_framework_storekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9fe2d65a2b644bb6b4fdd3002292cba153560917de3dd6cf969431fa32d21dd0", size = 12819 }, - { url = "https://files.pythonhosted.org/packages/5a/84/d354fd6f50952148614597dd4ebd52ed1d6a3e38cbd5d88e930bd549983d/pyobjc_framework_storekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:556c3dc187646ab8bda714a7e5630201b931956b81b0162ba420c64f55e5faaf", size = 12835 }, - { url = "https://files.pythonhosted.org/packages/4f/24/f8a8d2f1c1107a0a0f85bd830b9e0ff7016d4530924b17787cb8c7bf4f4c/pyobjc_framework_storekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:15d4643bc4de4aa62f72efcb7a4930bd7e15280867be225bd2c582b3367d75ae", size = 13028 }, - { url = "https://files.pythonhosted.org/packages/6d/9b/3d510cc03d5aeef298356578aa8077e4ddebea0a0cd2f50a13bf4f98f9e8/pyobjc_framework_storekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5e9354f2373b243066358bf32988d07d8a2da6718563ee6946a40c981a37c7c1", size = 12828 }, - { url = "https://files.pythonhosted.org/packages/1a/0c/760f3d4e4deedc11c4144fa3fdf2a697ea7e2f7eef492f6662687b872085/pyobjc_framework_storekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d11ffe3f8e638ebe7c156c5bf2919115c7562f44f44be8067521b7c5f6e50553", size = 13013 }, -] - -[[package]] -name = "pyobjc-framework-symbols" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/49/7e206fa8b912bd929bbcae17627f370ac6f81c75c1d2ca3a006fb12f4697/pyobjc_framework_symbols-12.0.tar.gz", hash = "sha256:0707226ae8741163f3f450559c7d7c87a987ddb84ccb5fe22fb1f40554404cfa", size = 12843 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/eb/bec85c6ca8b765ff135297ce91acee1a63fbed8a9a5ad130dfb46e2ee50e/pyobjc_framework_symbols-12.0-py2.py3-none-any.whl", hash = "sha256:e47998c35073906cc5c82ca1eff73957d9f2b673621bad044cfa46b0b08697a6", size = 3345 }, -] - -[[package]] -name = "pyobjc-framework-symbols" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9a/ce/a48819eb8524fa2dc11fb3dd40bb9c4dcad0596fe538f5004923396c2c6c/pyobjc_framework_symbols-12.1.tar.gz", hash = "sha256:7d8e999b8a59c97d38d1d343b6253b1b7d04bf50b665700957d89c8ac43b9110", size = 12782 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/ea/6e9af9c750d68109ac54fbffb5463e33a7b54ffe8b9901a5b6b603b7884b/pyobjc_framework_symbols-12.1-py2.py3-none-any.whl", hash = "sha256:c72eecbc25f6bfcd39c733067276270057c5aca684be20fdc56def645f2b6446", size = 3331 }, -] - -[[package]] -name = "pyobjc-framework-syncservices" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coredata", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d8/41/c7a6c68a0ceb7309ee4e167396a1d806543d7863a0e2945a835fd463359c/pyobjc_framework_syncservices-12.0.tar.gz", hash = "sha256:7ba335196f09495fade38753958ce5dcabe25a1280821ac69a77a1fc526d228d", size = 31454 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/f2/de42a3f86af30fa22e297e4ed6281ea25d3ba1a81706f6d07068f1d552aa/pyobjc_framework_syncservices-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cb923983213ae37246789b8b63cbdc60913e3c063efcd14589ea10476925b1ab", size = 13391 }, - { url = "https://files.pythonhosted.org/packages/32/ea/e821da8003286fe2cfa9bd5df3b79311d5e3a347db9fed8e8e1f4f8326c7/pyobjc_framework_syncservices-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:00895ca29cffb71351affe0fec2ee849c40411ed0a81116d82acfc064403d781", size = 13390 }, - { url = "https://files.pythonhosted.org/packages/28/26/590615681bdf2933a914f6f28a97c776a88e99aacbb907345c762e322335/pyobjc_framework_syncservices-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e6c258ad36e89b70ff88ab389b825cd29b78a664dbee0fd22cac73eb0e448c4e", size = 13425 }, - { url = "https://files.pythonhosted.org/packages/53/70/acedc33df3d03aa1638f854de91c08cbcd1ae844111033aea1b58a7b8ee0/pyobjc_framework_syncservices-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e9c5565ed72d4bce4e51a810c3fc72d3a9f19f6554fd9890fe3864c6c93220c8", size = 13436 }, - { url = "https://files.pythonhosted.org/packages/b3/3b/bcc45794a73cc1bd4c5d9fb9505686d7b60e32ba09bd6af2b8a94b5de18f/pyobjc_framework_syncservices-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a462940649c6823aae889c330c748aca4dca96d443e4a9a401183bbc05f15960", size = 13603 }, - { url = "https://files.pythonhosted.org/packages/d7/29/38a4adf7ec6ce28245555ad5cda74a35007fc6c17ab45bf8c31ae4281e22/pyobjc_framework_syncservices-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ca94dde6e9c9dc068ee20a8130c2a5dd85091ce132b495e92d9f7d5385aef10c", size = 13418 }, - { url = "https://files.pythonhosted.org/packages/a3/91/98cd392afe4868ef23debf6bfc2c26220fe20e4783e4d9cc77399a99739b/pyobjc_framework_syncservices-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d63efc5885f347338a57635720caa867888dfe953f607c97fe589b35b1a476f9", size = 13595 }, -] - -[[package]] -name = "pyobjc-framework-syncservices" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coredata", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/91/6d03a988831ddb0fb001b13573560e9a5bcccde575b99350f98fe56a2dd4/pyobjc_framework_syncservices-12.1.tar.gz", hash = "sha256:6a213e93d9ce15128810987e4c5de8c73cfab1564ac8d273e6b437a49965e976", size = 31032 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/20/ad93a4c5840da78ee9792756ad6f3dd2abc768d063c1444a8dc2dd990d6e/pyobjc_framework_syncservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:21dcb61da6816d2c55afb24d5bbf30741f806c0db8bb7a842fd27177550a3c9c", size = 13380 }, - { url = "https://files.pythonhosted.org/packages/4a/9b/25c117f8ffe15aa6cc447da7f5c179627ebafb2b5ec30dfb5e70fede2549/pyobjc_framework_syncservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e81a38c2eb7617cb0ecfc4406c1ae2a97c60e95af42e863b2b0f1f6facd9b0da", size = 13380 }, - { url = "https://files.pythonhosted.org/packages/54/ac/a83cdd120e279ee905e9085afda90992159ed30c6a728b2c56fa2d36b6ea/pyobjc_framework_syncservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0cd629bea95692aad2d26196657cde2fbadedae252c7846964228661a600b900", size = 13411 }, - { url = "https://files.pythonhosted.org/packages/5b/e3/9a6bd76529feffe08a3f6b2962c9a96d75febc02453881ec81389ff9ac13/pyobjc_framework_syncservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:606afac9255b5bf828f1dcf7b0d7bdc7726021b686ad4f5743978eb4086902d9", size = 13425 }, - { url = "https://files.pythonhosted.org/packages/3b/5d/338850a31968b94417ba95a7b94db9fcd40b16011eaf82f757de7c1eba6c/pyobjc_framework_syncservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9d1ebe60e92efd08455be209a265879cf297feda831aadf36431f38229b1dd52", size = 13599 }, - { url = "https://files.pythonhosted.org/packages/88/fa/f27f1a706a72c7a87a2aa37e49ae5f5e7445e02323218638e6ff5897c5c9/pyobjc_framework_syncservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2af99db7c23f0368300e8bd428ecfb75b14449d3467e883ff544dbc5ae9e1351", size = 13404 }, - { url = "https://files.pythonhosted.org/packages/0c/51/0b135d4af853fabc9a794e78647100503457f9e42e8c0289f745c558c105/pyobjc_framework_syncservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c27754af8cb86bd445e1182a184617229fa70cf3a716e740a93b0622f44ceb27", size = 13585 }, -] - -[[package]] -name = "pyobjc-framework-systemconfiguration" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c1/a5/6d02fec1b04a7b44acf993157fd24ffbd7762c4937f3a733be3ae3899378/pyobjc_framework_systemconfiguration-12.0.tar.gz", hash = "sha256:441738af5663127e0bce23771ddaac25c891c0b09c22254b10a1de0933ed2ca2", size = 59482 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/ea/f870cdfb7843f460f64ce5f9a661660e8d4f6c86f004fd0d40cd00c950a8/pyobjc_framework_systemconfiguration-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52d82812d73725fcee90e6f11a4f6b2ac2a962b2cb372b83c4ec7b6634875a6b", size = 21674 }, - { url = "https://files.pythonhosted.org/packages/1d/7d/eded231a496a07697f63f7dc3b7eb052a9bcd326b267daaca1ee834dc745/pyobjc_framework_systemconfiguration-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f0f0a21f74bd771482d7f8e941f9b7f4eec1b8cfb67d88fd043af956e4780d8", size = 21675 }, - { url = "https://files.pythonhosted.org/packages/d6/52/0051c6f78624e98ac089312186da04f5350539cfab6c2991aef6da41beda/pyobjc_framework_systemconfiguration-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fb08308124703a10bef2257dc0720975bce18fe250cf9c5ee36aaafda4af835b", size = 21589 }, - { url = "https://files.pythonhosted.org/packages/d1/99/ca0600867272573786f2efa79cccf7018b442475bd5eed30f8da2cc498f6/pyobjc_framework_systemconfiguration-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e8abae336df40c216ee1bcf9ac5ee40f7fdfdaa3ad96d56d49a7e8c521e27f1c", size = 21582 }, - { url = "https://files.pythonhosted.org/packages/59/3d/6bc58890a00a9e853ef9d29c0f9f85b07cafd2d9cb6e116ccdede0d61c60/pyobjc_framework_systemconfiguration-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2583ce2c28b3af11bde74f5317c49ed0ece4fc93391db8a8e5bff77b7c1c524a", size = 22000 }, - { url = "https://files.pythonhosted.org/packages/0d/99/e0575334a6470de12ba01bd5fdef875b93760a90766c38d25184fcac0de9/pyobjc_framework_systemconfiguration-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:54b35c020fdc9c6158df217843be3483ad6bc2f7dc99a48a187bdff08bf98074", size = 21620 }, - { url = "https://files.pythonhosted.org/packages/89/ab/3036dc52762cc8f18b2171014d57845a904c5b080c8ca4e8043011d84eea/pyobjc_framework_systemconfiguration-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d05f4a4f2a2d7971893b64106f4bbd234366494980cd5db8ce1a49f0ccf69966", size = 22009 }, -] - -[[package]] -name = "pyobjc-framework-systemconfiguration" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/7d/50848df8e1c6b5e13967dee9fb91d3391fe1f2399d2d0797d2fc5edb32ba/pyobjc_framework_systemconfiguration-12.1.tar.gz", hash = "sha256:90fe04aa059876a21626931c71eaff742a27c79798a46347fd053d7008ec496e", size = 59158 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/20/8092f80482d90d7cf9962c53988599ae1df3241a633c5c40bc153bb658fe/pyobjc_framework_systemconfiguration-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:db640a31120e8cd4e47516f5e32a222488809478d6cf4402db506496defd3e18", size = 21667 }, - { url = "https://files.pythonhosted.org/packages/1d/7b/9126a7af1b798998837027390a20b981e0298e51c4c55eed6435967145cb/pyobjc_framework_systemconfiguration-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:796390a80500cc7fde86adc71b11cdc41d09507dd69103d3443fbb60e94fb438", size = 21663 }, - { url = "https://files.pythonhosted.org/packages/d3/d3/bb935c3d4bae9e6ce4a52638e30eea7039c480dd96bc4f0777c9fabda21b/pyobjc_framework_systemconfiguration-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0e5bb9103d39483964431db7125195c59001b7bff2961869cfe157b4c861e52d", size = 21578 }, - { url = "https://files.pythonhosted.org/packages/64/26/22f031c99fd7012dffa41455951004a758aaf9a25216b3a4ee83496bc44f/pyobjc_framework_systemconfiguration-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:359b35c00f52f57834169c1057522279201ac5a64ac5b4d90dbafa40ad6c54b4", size = 21575 }, - { url = "https://files.pythonhosted.org/packages/f2/58/648803bdf3d2ebd3221ef43deb008c77aefe0bec231af2aa67e5b29a78e2/pyobjc_framework_systemconfiguration-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f4ff57defb4dcd933db392eb8ea9e5a46005cb7a6f2b46c27ab2dd5e13a459ab", size = 21990 }, - { url = "https://files.pythonhosted.org/packages/05/95/9fbb2ab26f03142b84ff577dcd2dcd3ca8b0c13c2f6193ceecd20544b7a5/pyobjc_framework_systemconfiguration-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e9c597c13b9815dce7e1fccdfae7c66b9df98e8c688b7afdf4af39de26d917b3", size = 21612 }, - { url = "https://files.pythonhosted.org/packages/0a/67/c1d5ea1089c41f0d1563ab42d6ff6ed320e195646008c8fdaa3e31d354cd/pyobjc_framework_systemconfiguration-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:10ad47ec2bee4f567e78369359b8c75a23097c6d89b11aa37840c22cc79229f1", size = 21997 }, -] - -[[package]] -name = "pyobjc-framework-systemextensions" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4b/ad/cad5b63d52a11d7e41a378753d30798d47bca41ecd1b519e4c34b1ee1ba7/pyobjc_framework_systemextensions-12.0.tar.gz", hash = "sha256:1eec39afc1a138cc31162577622542e65f0941a001aa4cac0e458bddbad76ba9", size = 21110 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/71/60cc2b84981f532739cdf8f59aaa30f29565e8eab54c8ef1186101ea5227/pyobjc_framework_systemextensions-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:12900849852450bd3036d7057d68fd2038d73b0412320efaafd0e29a15f15e21", size = 9167 }, - { url = "https://files.pythonhosted.org/packages/55/d0/7424f5475cd7490b7766bc0e5f1310e828c16b16abf84e77315dc565a258/pyobjc_framework_systemextensions-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09f43783346420b8f2f5f692edd847cbd4042ab8a5d639f2195d70e9f04d5db1", size = 9161 }, - { url = "https://files.pythonhosted.org/packages/16/1d/b3d16df6bcb5f2521c0eaedbb69fd26b5fc746f65df2a5e3b801b10d9dfd/pyobjc_framework_systemextensions-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:510b0bdfff7da224f96fd50d4c84e64488de13055f525e5572259e77e70dd171", size = 9174 }, - { url = "https://files.pythonhosted.org/packages/31/11/bc32194dfd28fcba6baf975582a13bfeac7156c7f10709a0216fa3222dcf/pyobjc_framework_systemextensions-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2c398a5b6c41e65465230acddedb990fac4e558609401f52c15d0a00a00ee0a7", size = 9198 }, - { url = "https://files.pythonhosted.org/packages/3d/6b/d1b34b74dc19861a57f947219713bc08ef365c9165fb7ddf47a20deccfad/pyobjc_framework_systemextensions-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:206227d972436cf18300244b5400a3f5b2b6840ca003488b5804b6809430c97e", size = 9354 }, - { url = "https://files.pythonhosted.org/packages/06/14/2cc7b2e4c010739cf4ce9ea579c0b935d87fa8d541f726f8fcaab809fd31/pyobjc_framework_systemextensions-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:790bb198dff02fcdeb54f95d5d6d1bec22f5aaa70f6d9bbe46cab4f5c64c0c9e", size = 9265 }, - { url = "https://files.pythonhosted.org/packages/fc/10/9c0f1d9d562229df94f380fb929e720e5596efb972a33549158a347dbd50/pyobjc_framework_systemextensions-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a43dd5f5202b12558bf90382bb10686de9c810b2d5c4bea577e5375c42955687", size = 9423 }, -] - -[[package]] -name = "pyobjc-framework-systemextensions" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/01/8a706cd3f7dfcb9a5017831f2e6f9e5538298e90052db3bb8163230cbc4f/pyobjc_framework_systemextensions-12.1.tar.gz", hash = "sha256:243e043e2daee4b5c46cd90af5fff46b34596aac25011bab8ba8a37099685eeb", size = 20701 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/df/70194c9aab9052797947967f218ebab56207223cb55eab5ebd89e6e3555c/pyobjc_framework_systemextensions-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:820f2d0364340395efafdfa85630b2e4a3ffc3f40b469b2880bab2c03f1e2907", size = 9157 }, - { url = "https://files.pythonhosted.org/packages/ac/a1/f8df6d59e06bc4b5989a76724e8551935e5b99aff6a21d3592e5ced91f1c/pyobjc_framework_systemextensions-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a4e82160e43c0b1aa17e6d4435e840a655737fbe534e00e37fc1961fbf3bebd", size = 9156 }, - { url = "https://files.pythonhosted.org/packages/0a/cc/a42883d6ad0ae257a7fa62660b4dd13be15f8fa657922f9a5b6697f26e28/pyobjc_framework_systemextensions-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:01fac4f8d88c0956d9fc714d24811cd070e67200ba811904317d91e849e38233", size = 9166 }, - { url = "https://files.pythonhosted.org/packages/dd/ef/fd34784added1dff088bd18cc2694049b0893b01e835587eab1735fd68f3/pyobjc_framework_systemextensions-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:038032801d46cc7b1ea69400f43d5c17b25d7a16efa7a7d9727b25789387a8cf", size = 9185 }, - { url = "https://files.pythonhosted.org/packages/72/76/fd6f06e54299998677548bacd21105450bc6435df215a6620422a31b0099/pyobjc_framework_systemextensions-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2aea4e823d915abca463b1c091ff969cef09108c88b71b68569485dec6f3651d", size = 9345 }, - { url = "https://files.pythonhosted.org/packages/af/c8/4e9669b6b43af7f50df43cb76af84805ee3a9b32881d69b4e7685edd3017/pyobjc_framework_systemextensions-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:51f0a4488fa245695c7e8c1c83909c86bf27b34519807437c753602ff6d7e9af", size = 9253 }, - { url = "https://files.pythonhosted.org/packages/18/6e/91e55fa71bd402acbf06ecfc342e4f56dbc0f7d622be1e5dd22d13508d0e/pyobjc_framework_systemextensions-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b393e3bf85ccb9321f134405eac6fd16a8e7f048286301b67f0cf8d99588bf29", size = 9412 }, -] - -[[package]] -name = "pyobjc-framework-threadnetwork" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/27/7d365ed3228c819e7cb3bf1c00530ad332b16b1f366fa68201ef6802b0e1/pyobjc_framework_threadnetwork-12.0.tar.gz", hash = "sha256:5c4b14ea351f2208e05f3a6b85e46eba4f11ab009af1251ea6caabfb6588dc42", size = 12810 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/63/5e/660f7043d0946d47353f311aa4204e0063ddf768846bac402381542badaa/pyobjc_framework_threadnetwork-12.0-py2.py3-none-any.whl", hash = "sha256:e3f030bd6d36f01480e2f0d0639ada0c21d0d74bcc15f8b6301ebe525180e2f9", size = 3780 }, -] - -[[package]] -name = "pyobjc-framework-threadnetwork" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/62/7e/f1816c3461e4121186f2f7750c58af083d1826bbd73f72728da3edcf4915/pyobjc_framework_threadnetwork-12.1.tar.gz", hash = "sha256:e071eedb41bfc1b205111deb54783ec5a035ccd6929e6e0076336107fdd046ee", size = 12788 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/b8/94b37dd353302c051a76f1a698cf55b5ad50ca061db7f0f332aa9e195766/pyobjc_framework_threadnetwork-12.1-py2.py3-none-any.whl", hash = "sha256:07d937748fc54199f5ec04d5a408e8691a870481c11b641785c2adc279dd8e4b", size = 3771 }, -] - -[[package]] -name = "pyobjc-framework-uniformtypeidentifiers" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/8d/45e8290134b06e73fb1cdce72aea71bddf7d8dee820165a549379d32837e/pyobjc_framework_uniformtypeidentifiers-12.0.tar.gz", hash = "sha256:f7fe17832de25098b9ad7718af536f6f4597985418d9869946cee104e2782b8a", size = 17064 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/04/2b000e6e55572854c20eea7e0f4ba94597a6c8fb22a1fca9f1d2952a1ab6/pyobjc_framework_uniformtypeidentifiers-12.0-py2.py3-none-any.whl", hash = "sha256:b2c406e34306ef55ceb9c8cb16a4a9e37e7fc2ed4c8e7948f05bf3d51dea2a91", size = 4913 }, -] - -[[package]] -name = "pyobjc-framework-uniformtypeidentifiers" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/65/b8/dd9d2a94509a6c16d965a7b0155e78edf520056313a80f0cd352413f0d0b/pyobjc_framework_uniformtypeidentifiers-12.1.tar.gz", hash = "sha256:64510a6df78336579e9c39b873cfcd03371c4b4be2cec8af75a8a3d07dff607d", size = 17030 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/5f/1f10f5275b06d213c9897850f1fca9c881c741c1f9190cea6db982b71824/pyobjc_framework_uniformtypeidentifiers-12.1-py2.py3-none-any.whl", hash = "sha256:ec5411e39152304d2a7e0e426c3058fa37a00860af64e164794e0bcffee813f2", size = 4901 }, -] - -[[package]] -name = "pyobjc-framework-usernotifications" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e5/fc/3e5d15bddc660fc987cbf72b7b476dbe13bedcf52e18c58606432457d41e/pyobjc_framework_usernotifications-12.0.tar.gz", hash = "sha256:93dea828a26a3a93f6259f21496bcdda5dc1625a48c2ba9ce4a58c8a57d3f84c", size = 30118 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/fe/af871e14767377e7d3786332fc8617f03b451196bc66e26ad9bb0b0dc4b6/pyobjc_framework_usernotifications-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0fc6f6acab054cb2a9ec0de8ef70198ae32801cdb4b9e2e14f6eaeac189ba890", size = 9634 }, - { url = "https://files.pythonhosted.org/packages/ab/ad/b59797c1ec7cfc09d77edd1850a5bd8a37df4dfb95bc42b0904dfcab94db/pyobjc_framework_usernotifications-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:80a795bea7077e324d0a8d2d210e82ddf2e6cbaaea0c4ad32119fec470c79c24", size = 9640 }, - { url = "https://files.pythonhosted.org/packages/8b/68/409a455c1926914e9b973bc167fe3cbae93c7b32189d4de8be0910328aef/pyobjc_framework_usernotifications-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:579cd91b44b3078332e0275e94419cc7b4e5be5b14d774b048ba54d65fc2e60c", size = 9650 }, - { url = "https://files.pythonhosted.org/packages/74/b4/4da877831f4fb0c1c87c295792efae21c0c2bc1d8c9f97fb90f261a9e0cf/pyobjc_framework_usernotifications-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fcff4a99268ed3d4d897d061d085188695cd2ad0fe63e16319a7ecbd1af7ddc3", size = 9664 }, - { url = "https://files.pythonhosted.org/packages/88/3b/786b4bdbdf67776d625c3bb575f5cbecde868c7ba9840ea1c3bd33670743/pyobjc_framework_usernotifications-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:73898e126ee61d429d160e5de5f8f10bf08406e5fbb0a43939d32ebc02f7c165", size = 9819 }, - { url = "https://files.pythonhosted.org/packages/f1/58/f6d3cc17d500cb8c4716dad03da5978029483b2794d6d8e06c4d290091bb/pyobjc_framework_usernotifications-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:162802f84c95c63bd0962add355bfcdc56539e7ac3972f002e13f9c4168e7730", size = 9727 }, - { url = "https://files.pythonhosted.org/packages/b6/2e/b0c414798b557dae3c142879fd2c39dbb672e2820ce6ea40ebce83327130/pyobjc_framework_usernotifications-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6a0da8999950a22643f6fdf294d969a082354bbae2f9e2ee2dfbbf5596c05074", size = 9889 }, -] - -[[package]] -name = "pyobjc-framework-usernotifications" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/cd/e0253072f221fa89a42fe53f1a2650cc9bf415eb94ae455235bd010ee12e/pyobjc_framework_usernotifications-12.1.tar.gz", hash = "sha256:019ccdf2d400f9a428769df7dba4ea97c02453372bc5f8b75ce7ae54dfe130f9", size = 29749 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/5d/ef8695e10c5d350d86723830b003acca419a9395928c53beebf7ace4a9a0/pyobjc_framework_usernotifications-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:95796a075e3a92257d69596ec16d9e03cb504f1324294ed41052f5b3bf90ce9f", size = 9628 }, - { url = "https://files.pythonhosted.org/packages/d1/96/aa25bb0727e661a352d1c52e7288e25c12fe77047f988bb45557c17cf2d7/pyobjc_framework_usernotifications-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c62e8d7153d72c4379071e34258aa8b7263fa59212cfffd2f137013667e50381", size = 9632 }, - { url = "https://files.pythonhosted.org/packages/61/ad/c95053a475246464cba686e16269b0973821601910d1947d088b855a8dac/pyobjc_framework_usernotifications-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:412afb2bf5fe0049f9c4e732e81a8a35d5ebf97c30a5a6abd276259d020c82ac", size = 9644 }, - { url = "https://files.pythonhosted.org/packages/b1/cc/4c6efe6a65b1742ea238734f81509ceba5346b45f605baa809ca63f30692/pyobjc_framework_usernotifications-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:40a5457f4157ca007f80f0644413f44f0dc141f7864b28e1728623baf56a8539", size = 9659 }, - { url = "https://files.pythonhosted.org/packages/06/4e/02ff6975567974f360cf0e1e358236026e35f7ba7795511bc4dcbaa13f62/pyobjc_framework_usernotifications-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:58c09bd1bd7a8cd29613d0d0e6096eda6c8465dc5a7a733675e1b8d0406f7adc", size = 9811 }, - { url = "https://files.pythonhosted.org/packages/cd/1a/caa96066b36c2c20ba6f033857fc24ff8e6b5811cf1bc112818928d27216/pyobjc_framework_usernotifications-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:cc69e2aed9b55296a447f2fb69cc52a1a026c50e46253dbf482f5807bce3ae7c", size = 9720 }, - { url = "https://files.pythonhosted.org/packages/95/f7/8def35e9e7b2a7a7d4e61923b0f29fcdca70df5ac6b91cddb418a1d5ffed/pyobjc_framework_usernotifications-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0746d2a67ca05ae907b7551ccd3a534e9d6e76115882ab962365f9ad259c4032", size = 9876 }, -] - -[[package]] -name = "pyobjc-framework-usernotificationsui" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-usernotifications", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/aa/07/e7564e9948ad5e834c394cb8b3cfba51312715a91f1cb0e01a9dcf8f5bc5/pyobjc_framework_usernotificationsui-12.0.tar.gz", hash = "sha256:b62eed9660a3b824dd732fca831f111b888af912c8608e0fe7e075de217274b8", size = 13148 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/52/0f/79602271972bd1060e1ad24973d005be7984f7687278d4b2489021fe0f20/pyobjc_framework_usernotificationsui-12.0-py2.py3-none-any.whl", hash = "sha256:ab0d9fc8e9505daf15e089837125bedf9aec5fa5c49ba0ec91305fab3233977f", size = 3944 }, -] - -[[package]] -name = "pyobjc-framework-usernotificationsui" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-usernotifications", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0e/03/73e29fd5e5973cb3800c9d56107c1062547ef7524cbcc757c3cbbd5465c6/pyobjc_framework_usernotificationsui-12.1.tar.gz", hash = "sha256:51381c97c7344099377870e49ed0871fea85ba50efe50ab05ccffc06b43ec02e", size = 13125 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/c8/52ac8a879079c1fbf25de8335ff506f7db87ff61e64838b20426f817f5d5/pyobjc_framework_usernotificationsui-12.1-py2.py3-none-any.whl", hash = "sha256:11af59dc5abfcb72c08769ab4d7ca32a628527a8ba341786431a0d2dacf31605", size = 3933 }, -] - -[[package]] -name = "pyobjc-framework-videosubscriberaccount" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1e/0f/ad63ee1b7b0813dd6505b210f90b9cd39d1e9b5a994c2e2d81e34ce045b0/pyobjc_framework_videosubscriberaccount-12.0.tar.gz", hash = "sha256:45ded32cd5d75323a3c9a692fe0f47fdda3885f16d84c0195908bfe0708db9e3", size = 18836 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/be/ff8942932b0ffe180b7f64fd15fb8503b846040af5a7aceae33a831f0aa3/pyobjc_framework_videosubscriberaccount-12.0-py2.py3-none-any.whl", hash = "sha256:18a495d747252712b65235f98459fec139966060a269eebf55cd56d159640663", size = 4834 }, -] - -[[package]] -name = "pyobjc-framework-videosubscriberaccount" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/10/f8/27927a9c125c622656ee5aada4596ccb8e5679da0260742360f193df6dcf/pyobjc_framework_videosubscriberaccount-12.1.tar.gz", hash = "sha256:750459fa88220ab83416f769f2d5d210a1f77b8938fa4d119aad0002fc32846b", size = 18793 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/41/ca/e2f982916267508c1594f1e50d27bf223a24f55a5e175ab7d7822a00997c/pyobjc_framework_videosubscriberaccount-12.1-py2.py3-none-any.whl", hash = "sha256:381a5e8a3016676e52b88e38b706559fa09391d33474d8a8a52f20a883104a7b", size = 4825 }, -] - -[[package]] -name = "pyobjc-framework-videotoolbox" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d7/2f/f85731e4f2ce2c67545dfbe2fbdd1b776b6e2d58e354a4037a2e59803fa0/pyobjc_framework_videotoolbox-12.0.tar.gz", hash = "sha256:69677923fa61fd2ca5acadb404e4be87185cd52946681764986bc43635d27674", size = 58211 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/a9/ae75f32d88ab4e28739a697491089b549f1d5aa3bc5323d472a6b07577e7/pyobjc_framework_videotoolbox-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fedf79cf23d99730802c3045893f553d04b5bffb892c6eeb8efeb243d58a0680", size = 18792 }, - { url = "https://files.pythonhosted.org/packages/98/2e/dfe3c5c7d4b50677d1aa2c6e52ce3757cdfab9a3427f4dca64590b2e80c0/pyobjc_framework_videotoolbox-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:49db730a3020acd1592b91ac224850ae79ce155343135f7f75eddcf1d77be405", size = 18790 }, - { url = "https://files.pythonhosted.org/packages/a8/d1/dc2754d6c6d8bf18d21e7a61166b7ba048f794bd6da19565a6b3e0e172bf/pyobjc_framework_videotoolbox-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3589b1698bba7834cde0c55df340ecc74e9c73cc75bea6fced1a5c100df54051", size = 18917 }, - { url = "https://files.pythonhosted.org/packages/48/5a/2ea252b95489dcba67c0d22fb60d0969b39cae595f304157ec69da30e976/pyobjc_framework_videotoolbox-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f45d91996796c5d6398205b3e00c6cf651d67e503158ea6e53c9de01901f8ac4", size = 18936 }, - { url = "https://files.pythonhosted.org/packages/c7/4a/138107dc891093ab36b4fc0886259286c23af15004ac0f154824d5680d0c/pyobjc_framework_videotoolbox-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:17eefbcee1a2e1d74bec281b1995c2dc2017c3c40f1cbaeb69cb6258bbc79feb", size = 19149 }, - { url = "https://files.pythonhosted.org/packages/8e/5f/1cb3a83b3de3d0de059b9abbd68f936d53949b42b961a453ec688b361163/pyobjc_framework_videotoolbox-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f11ec3534dcc02b556232643d53ba62a07fef2de2ff3ff83409290888ed04fa8", size = 18940 }, - { url = "https://files.pythonhosted.org/packages/f5/c1/35c68277fbc62daee074fc1ae6f43b27ecd2d840d9a24f43116f854fe3bd/pyobjc_framework_videotoolbox-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:84817ba1912935262852ca7d8687e3e4bd5e5db55fd62c4d54be35b7657ccb2d", size = 19138 }, -] - -[[package]] -name = "pyobjc-framework-videotoolbox" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coremedia", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/5f/6995ee40dc0d1a3460ee183f696e5254c0ad14a25b5bc5fd9bd7266c077b/pyobjc_framework_videotoolbox-12.1.tar.gz", hash = "sha256:7adc8670f3b94b086aed6e86c3199b388892edab4f02933c2e2d9b1657561bef", size = 57825 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/56/11fb89e9d10c31101c7ec69978e4637a3400e2154851c0f7c7180ff94f07/pyobjc_framework_videotoolbox-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5cb63e0e69aac148fa45d577f049e1e4846d65d046fcb0f7744fb90ac85da936", size = 18782 }, - { url = "https://files.pythonhosted.org/packages/1e/42/53d57b09fd4879988084ec0d9b74c645c9fdd322be594c9601f6cf265dd0/pyobjc_framework_videotoolbox-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a1eb1eb41c0ffdd8dcc6a9b68ab2b5bc50824a85820c8a7802a94a22dfbb4f91", size = 18781 }, - { url = "https://files.pythonhosted.org/packages/94/a5/91c6c95416f41c412c2079950527cb746c0712ec319c51a6c728c8d6b231/pyobjc_framework_videotoolbox-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eb6ce6837344ee319122066c16ada4beb913e7bfd62188a8d14b1ecbb5a89234", size = 18908 }, - { url = "https://files.pythonhosted.org/packages/f0/59/7fc3d67df437f3e263b477dd181eef3ac3430cb7eb1acc951f5f1e84cc4d/pyobjc_framework_videotoolbox-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca28b39e22016eb5f81f540102a575ee6e6114074d09e17e22eb3b5647976d93", size = 18929 }, - { url = "https://files.pythonhosted.org/packages/f4/41/08b526d2f228271994f8216651d2e5c8e76415224daa012e67c53c90fc7a/pyobjc_framework_videotoolbox-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dba7e078df01432331ee75a90c2c147264bfdb9e31998b4e4fc28913b93b832e", size = 19139 }, - { url = "https://files.pythonhosted.org/packages/00/a9/581edc658e3ae242a55d463092a237cf9f744ba5a91d91c769af7d3f2ac6/pyobjc_framework_videotoolbox-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e67a3890916346b7c15c9270d247e191c3899e4698fee79d460a476145715401", size = 18927 }, - { url = "https://files.pythonhosted.org/packages/91/17/97f3e4704246b0496c90bf4c604005f426f62c75e616e68d2e3f8833affb/pyobjc_framework_videotoolbox-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:67227431c340e308c4ecdce743b5d1d27757994663c983f179f2e934acdacb99", size = 19121 }, -] - -[[package]] -name = "pyobjc-framework-virtualization" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e6/53/cdba247e9b8252407757edd2e1a7f166b1c8e7a6edf54fc57aa55ca3e0b4/pyobjc_framework_virtualization-12.0.tar.gz", hash = "sha256:0745f57ab3010f10c6e7a424cbfc805f162167687756cce7ef220d1a4fc192cc", size = 41136 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/67/d7a146c53a94b9844155cbaf8ae9bb188bb34f89f8fa271baa346b518920/pyobjc_framework_virtualization-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4d8e46e8adb0be131674af1c5bb35fb7112746d2fec5adcdb1f9ff27ff525bdc", size = 13113 }, - { url = "https://files.pythonhosted.org/packages/be/7e/9f37f76a4d0914911683399f12f947c5380484e7553dd535fdb406fba35c/pyobjc_framework_virtualization-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f87fd04be9f40cb7f67eeb1783f7fab5b730042e16bc75873cc3c4c608ecb63", size = 13112 }, - { url = "https://files.pythonhosted.org/packages/db/e8/722b1f0dc622504f1a7ec7019c2c7e3efad2d0f7a44e9c49fb50a47a9697/pyobjc_framework_virtualization-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:27fca13b212d6030571e42a6e2e3199d5a89a432d9db15742061edf170719239", size = 13141 }, - { url = "https://files.pythonhosted.org/packages/a3/7b/c5a230ce374334c896bdc6db95586f7a1211d3ff45831175e441a262cb9a/pyobjc_framework_virtualization-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:385baa7b4ff44b1368ab32ad91ec05e667abc687800e3362ad4463d4f81db715", size = 13159 }, - { url = "https://files.pythonhosted.org/packages/9e/92/ffff716de121c4077490098b11921580b438b98c05184ab9d54987e16162/pyobjc_framework_virtualization-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7a446087e0806ddf6d09560e80e8b06b79b8039e4abbd6cfca32b9f07736d42e", size = 13365 }, - { url = "https://files.pythonhosted.org/packages/41/17/1e1bc10ddd32eb63902b2aebe5f12f32fe82660ae96911ebe9d4a5668b89/pyobjc_framework_virtualization-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:65fbcf184964b52fd60e821c5b2a173fd87d1e4a50afcccfbd3dc909019e1d50", size = 13148 }, - { url = "https://files.pythonhosted.org/packages/ff/1f/8c51a1c0149b3a58d0217f516c573114746b701675e48fddab2d3aa29363/pyobjc_framework_virtualization-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:27f27d5aa30dd94c6ad977c11af3d5bc13369950e497007534c1c951c2ca93b5", size = 13352 }, -] - -[[package]] -name = "pyobjc-framework-virtualization" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3b/6a/9d110b5521d9b898fad10928818c9f55d66a4af9ac097426c65a9878b095/pyobjc_framework_virtualization-12.1.tar.gz", hash = "sha256:e96afd8e801e92c6863da0921e40a3b68f724804f888bce43791330658abdb0f", size = 40682 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/64/dfb1ba93ecbbde95e9cd8fe06842d2114f3af7506eff47d97a547d4a181a/pyobjc_framework_virtualization-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9a5f565411330c5776b60eb5eb94ab1591f76f0969e85b23a046d2de915fc84e", size = 13101 }, - { url = "https://files.pythonhosted.org/packages/8b/ee/e18d0d9014c42758d7169144acb2d37eb5ff19bf959db74b20eac706bd8c/pyobjc_framework_virtualization-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a88a307dc96885afc227ceda4067f1af787f024063f4ccf453d59e7afd47cda8", size = 13099 }, - { url = "https://files.pythonhosted.org/packages/c6/f2/0da47e91f3f8eeda9a8b4bb0d3a0c54a18925009e99b66a8226b9e06ce1e/pyobjc_framework_virtualization-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7d5724b38e64b39ab5ec3b45993afa29fc88b307d99ee2c7a1c0fd770e9b4b21", size = 13131 }, - { url = "https://files.pythonhosted.org/packages/76/ca/228fffccbeafecbe7599fc2cdaa64bf2a8e42fd8fe619c5b670c92b263c3/pyobjc_framework_virtualization-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:232956de8a0c3086a58c96621e0a2148497d1750ebb1bb6bea9f7f34ec3c83c6", size = 13147 }, - { url = "https://files.pythonhosted.org/packages/b3/2f/4e56147bc9963bb7f96886fda376004a66c5abe579dc029180952fd872fa/pyobjc_framework_virtualization-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a9552e49b967fb520e5be1cfce510e0b68c2ba314a28ac90aad36fe33218d430", size = 13351 }, - { url = "https://files.pythonhosted.org/packages/72/4f/ed32bb177edca9feedd518aa2f98c75e86365497f086af21d807785d264c/pyobjc_framework_virtualization-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e40bff972adfefbe8a02e508571b32c58e90e4d974d65470eab75c53fe47006d", size = 13137 }, - { url = "https://files.pythonhosted.org/packages/3b/01/fc9a7714bd3d9d43085c7c027c395b9c0205a330956f200bfa3c41b09a82/pyobjc_framework_virtualization-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8d53e81f1928c4e90cbebebd39b965aa679f7fadda1fd075e18991872c4cb56b", size = 13343 }, -] - -[[package]] -name = "pyobjc-framework-vision" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-coreml", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0f/5a/07cdead5adb77d0742b014fa742d503706754e3ad10e39760e67bb58b497/pyobjc_framework_vision-12.0.tar.gz", hash = "sha256:942c9583f1d887ac9f704f3b0c21b3206b68e02852a87219db4309bb13a02f14", size = 59905 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/d1/14eb03be48f07df138a3bafe0ef45f35f5fab3292bcb776c18439def7591/pyobjc_framework_vision-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:533e18ebeaa2ea553592b5207d8ed2046b1ab2c39862cab8e39e4d62801a9c08", size = 21437 }, - { url = "https://files.pythonhosted.org/packages/6b/e1/0e865d629a7aba0be220a49b59fa0ac2498c4a10d959288b8544da78d595/pyobjc_framework_vision-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbcba9cbe95116ad96aa05decd189735b213ffd8ee4ec0f81b197c3aaa0af87d", size = 21441 }, - { url = "https://files.pythonhosted.org/packages/d4/1b/2043e99b8989b110ddb1eabf6355bd0b412527abda375bafa438f8a255e1/pyobjc_framework_vision-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2d1238127088ef50613a8c022d7b7a8487064d09a83c188e000b90528c8eaf2e", size = 16631 }, - { url = "https://files.pythonhosted.org/packages/28/ed/eb94a75b58a9868a32b10cdb59faf0cd877341df80637d1e94beda3fe4e2/pyobjc_framework_vision-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:10c580fcb19a82e19bcc02e782aaaf0cf8ea0d148b95282740e102223127de5a", size = 16646 }, - { url = "https://files.pythonhosted.org/packages/62/69/fffcf849bec521d2d8440814c18f6a9865300136489a8c52c1902d10d117/pyobjc_framework_vision-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:12be79c5282a2cf53ac5b69f5edbd15f242d70a21629b728efcf68fc06fbe58b", size = 16790 }, - { url = "https://files.pythonhosted.org/packages/36/22/b2962283d4d90efee7ecee0712963810ac02fd08646f6f0ec11fb2e23c47/pyobjc_framework_vision-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:56aae4cb8dd72838c22450c1adc8b5acd2bba9138e116a651e910c4e24293ad9", size = 16623 }, - { url = "https://files.pythonhosted.org/packages/94/d2/bc004c6c0a16b2a4eef6a7964ea3f712014c0a94c4ceb9ddaba0c6e2d72c/pyobjc_framework_vision-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:177c996e547a581f7c3ac2502325c1af6db1edbe5f85e9297f5a76df2e33efbf", size = 16780 }, -] - -[[package]] -name = "pyobjc-framework-vision" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-coreml", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-quartz", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/5a/08bb3e278f870443d226c141af14205ff41c0274da1e053b72b11dfc9fb2/pyobjc_framework_vision-12.1.tar.gz", hash = "sha256:a30959100e85dcede3a786c544e621ad6eb65ff6abf85721f805822b8c5fe9b0", size = 59538 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/48/b23e639a66e5d3d944710bb2eaeb7257c18b0834dffc7ea2ddadadf8620e/pyobjc_framework_vision-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a30c3fff926348baecc3ce1f6da8ed327d0cbd55ca1c376d018e31023b79c0ab", size = 21432 }, - { url = "https://files.pythonhosted.org/packages/bd/37/e30cf4eef2b4c7e20ccadc1249117c77305fbc38b2e5904eb42e3753f63c/pyobjc_framework_vision-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1edbf2fc18ce3b31108f845901a88f2236783ae6bf0bc68438d7ece572dc2a29", size = 21432 }, - { url = "https://files.pythonhosted.org/packages/3a/5a/23502935b3fc877d7573e743fc3e6c28748f33a45c43851d503bde52cde7/pyobjc_framework_vision-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6b3211d84f3a12aad0cde752cfd43a80d0218960ac9e6b46b141c730e7d655bd", size = 16625 }, - { url = "https://files.pythonhosted.org/packages/f5/e4/e87361a31b82b22f8c0a59652d6e17625870dd002e8da75cb2343a84f2f9/pyobjc_framework_vision-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7273e2508db4c2e88523b4b7ff38ac54808756e7ba01d78e6c08ea68f32577d2", size = 16640 }, - { url = "https://files.pythonhosted.org/packages/b1/dd/def55d8a80b0817f486f2712fc6243482c3264d373dc5ff75037b3aeb7ea/pyobjc_framework_vision-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:04296f0848cc8cdead66c76df6063720885cbdf24fdfd1900749a6e2297313db", size = 16782 }, - { url = "https://files.pythonhosted.org/packages/a7/a4/ee1ef14d6e1df6617e64dbaaa0ecf8ecb9e0af1425613fa633f6a94049c1/pyobjc_framework_vision-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:631add775ed1dafb221a6116137cdcd78432addc16200ca434571c2a039c0e03", size = 16614 }, - { url = "https://files.pythonhosted.org/packages/af/53/187743d9244becd4499a77f8ee699ae286e2f6ade7c0c7ad2975ae60f187/pyobjc_framework_vision-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fe41a1a70cc91068aee7b5293fa09dc66d1c666a8da79fdf948900988b439df6", size = 16771 }, -] - -[[package]] -name = "pyobjc-framework-webkit" -version = "12.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/80/6a/9af14df620fd363e58d3676d7182060672f3eace49df78fc36ddbce9b820/pyobjc_framework_webkit-12.0.tar.gz", hash = "sha256:a65a33d7057aed8d096672be4a53a7ea49a7c74a0b4bc9cb216d4773ebfed6d2", size = 284938 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/31/80f871c1d4a67aee1d5fb6543b6aff262d2697e7c35bf3f4940b9732ebef/pyobjc_framework_webkit-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fe7b6b39389440e75b7ad1315b28b09d959462d8d58e57e41677637c3727b616", size = 49984 }, - { url = "https://files.pythonhosted.org/packages/20/8e/bf606a62aac481bfc46cbcd1faa540af6bf944cef52725dbc58238e0a361/pyobjc_framework_webkit-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:38171cb467ef46ea6a38bcf101bff2f67bc938326fca1a94161e12186ed39a33", size = 49981 }, - { url = "https://files.pythonhosted.org/packages/82/75/b8f0451a56584e3a249cbd733bec3f5af449224cb5a1b86550849253f911/pyobjc_framework_webkit-12.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7ac06f5a08b06918498af6fd73a90a368ff9ed104a41d88717a14284db452ead", size = 50087 }, - { url = "https://files.pythonhosted.org/packages/19/0b/3897b36ce88ac1201662ffb4373579e9cd477715ca55c197f2cb3c4216ed/pyobjc_framework_webkit-12.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:46fd5e0d8aa3bc57a614dc60eef768abf715cdd873682aadd09df6ee8d31fcda", size = 50104 }, - { url = "https://files.pythonhosted.org/packages/f9/b9/0d35364f44a0a70b42a536dae503a913a2fef1acd81f9ae4567536b82ac3/pyobjc_framework_webkit-12.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c933ccbdfecdfe3217e32883fa365c3b2cfad601eb25c0a3aee00043aca838fb", size = 50576 }, - { url = "https://files.pythonhosted.org/packages/12/e1/dfd6bb0f92e24dec90192c3a10109c99eac8d49f517a1e135d9065daed26/pyobjc_framework_webkit-12.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:bdae2a612d20a4c9038eb7fea2d3a8e1bbb2b21b758d871fb210f8ff1b9d240b", size = 50220 }, - { url = "https://files.pythonhosted.org/packages/d9/32/bf22675cd9cde637cb0ec0f7eae8a19d5375cd07448d98e288e9d0798962/pyobjc_framework_webkit-12.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8db8db7f9225718ec578788b21d56e55560019a158592d17c784f1550612261a", size = 50687 }, -] - -[[package]] -name = "pyobjc-framework-webkit" -version = "12.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "pyobjc-core", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyobjc-framework-cocoa", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/14/10/110a50e8e6670765d25190ca7f7bfeecc47ec4a8c018cb928f4f82c56e04/pyobjc_framework_webkit-12.1.tar.gz", hash = "sha256:97a54dd05ab5266bd4f614e41add517ae62cdd5a30328eabb06792474b37d82a", size = 284531 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/79/b5582113b28cae64cec4aca63d36620421c21ca52f3897388b865a0dbb86/pyobjc_framework_webkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:231048d250e97323b25e5f1690d09e2415b691c0d57bc13241e442d486ef94c8", size = 49971 }, - { url = "https://files.pythonhosted.org/packages/e5/37/5082a0bbe12e48d4ffa53b0c0f09c77a4a6ffcfa119e26fa8dd77c08dc1c/pyobjc_framework_webkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3db734877025614eaef4504fadc0fbbe1279f68686a6f106f2e614e89e0d1a9d", size = 49970 }, - { url = "https://files.pythonhosted.org/packages/db/67/64920c8d201a7fc27962f467c636c4e763b43845baba2e091a50a97a5d52/pyobjc_framework_webkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:af2c7197447638b92aafbe4847c063b6dd5e1ed83b44d3ce7e71e4c9b042ab5a", size = 50084 }, - { url = "https://files.pythonhosted.org/packages/7a/3d/80d36280164c69220ce99372f7736a028617c207e42cb587716009eecb88/pyobjc_framework_webkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1da0c428c9d9891c93e0de51c9f272bfeb96d34356cdf3136cb4ad56ce32ec2d", size = 50096 }, - { url = "https://files.pythonhosted.org/packages/8a/7a/03c29c46866e266b0c705811c55c22625c349b0a80f5cf4776454b13dc4c/pyobjc_framework_webkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1a29e334d5a7dd4a4f0b5647481b6ccf8a107b92e67b2b3c6b368c899f571965", size = 50572 }, - { url = "https://files.pythonhosted.org/packages/3b/ac/924878f239c167ffe3bfc643aee4d6dd5b357e25f6b28db227e40e9e6df3/pyobjc_framework_webkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:99d0d28542a266a95ee2585f51765c0331794bca461aaf4d1f5091489d475179", size = 50210 }, - { url = "https://files.pythonhosted.org/packages/2d/86/637cda4983dc0936b73a385f3906256953ac434537b812814cb0b6d231a2/pyobjc_framework_webkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1aaa3bf12c7b68e1a36c0b294d2728e06f2cc220775e6dc4541d5046290e4dc8", size = 50680 }, -] - -[[package]] -name = "pyrun-injected" -version = "0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pymem" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/cc/5d2ba23144e61daa187ad33368e16ca69bf6192ed187de1d9321c1f4a9b3/pyrun_injected-0.2.0.tar.gz", hash = "sha256:46388968f789544318c7b23ab66c7187b8758e485c908f70dff996d0cc2e0db0", size = 9907 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/fb/8df173ec16b5bb46c1802ae630461a91852be55f6497bbb0fd706670f37d/pyrun_injected-0.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:c2f61181dde95b02eff1d9df2962c6264a5e8f2d66f1f70b1bb40124f2f96219", size = 16254 }, - { url = "https://files.pythonhosted.org/packages/e9/bc/179b4aae44dd090aac3a43ac060cffdfc6ae06df83051197fa24243a7b5e/pyrun_injected-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:62b1903322e652ecee662008da6644690af6d0469bcbf212638ee32f5e3741ea", size = 16256 }, - { url = "https://files.pythonhosted.org/packages/67/b0/b03ee1d97123f7bad5791b32ec05df6e32e4dd2e2f45fe5584bf5ceef7cc/pyrun_injected-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe0a483426beeee7ab1506c67ddf50571bcf115dc436d2828a055e8f6b3d996a", size = 16303 }, - { url = "https://files.pythonhosted.org/packages/64/6d/090d650393863b432a3b2518a9abd8e47b63e3bcf33a94d3a8713449784c/pyrun_injected-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:dfe9bef35d819319fac73aa08cf9833c99f1f634325486ef457a60ec1d0bef4c", size = 16299 }, - { url = "https://files.pythonhosted.org/packages/4d/4e/c64200e92f7d37f7a492dde796ace68b0c7ead5247ff43d8c16961b0d7ff/pyrun_injected-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e9c76de1413c9b6619a8b9debfb3e5df7c6a215502808e58eb281db67a817d2b", size = 16253 }, -] - -[[package]] -name = "pyspellchecker" -version = "0.8.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/f9/8a329c7bea910204aeb78a879141a9cf6b4252098c87974f54b26985959e/pyspellchecker-0.8.3.tar.gz", hash = "sha256:cb06eeafe124837f321e0d02f8e21deab713e966e28e0360319a28a089c43978", size = 7238621 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/95/f0ee873c7ff455f2ef16a58320954ed6c6f8d30d59c8c781154deb398bd8/pyspellchecker-0.8.3-py3-none-any.whl", hash = "sha256:e993076e98b0da5a99b7cc31085c3022c77a9dc37c5e95f5cf6304b5dbb8b9d2", size = 7236810 }, -] - -[[package]] -name = "pytest" -version = "8.4.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.10'" }, - { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "packaging", marker = "python_full_version < '3.10'" }, - { name = "pluggy", marker = "python_full_version < '3.10'" }, - { name = "pygments", marker = "python_full_version < '3.10'" }, - { name = "tomli", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750 }, -] - -[[package]] -name = "pytest" -version = "9.0.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" }, - { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "packaging", marker = "python_full_version >= '3.10'" }, - { name = "pluggy", marker = "python_full_version >= '3.10'" }, - { name = "pygments", marker = "python_full_version >= '3.10'" }, - { name = "tomli", marker = "python_full_version == '3.10.*'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/56/f013048ac4bc4c1d9be45afd4ab209ea62822fb1598f40687e6bf45dcea4/pytest-9.0.1.tar.gz", hash = "sha256:3e9c069ea73583e255c3b21cf46b8d3c56f6e3a1a8f6da94ccb0fcf57b9d73c8", size = 1564125 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/8b/6300fb80f858cda1c51ffa17075df5d846757081d11ab4aa35cef9e6258b/pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad", size = 373668 }, -] - -[[package]] -name = "pytest-benchmark" -version = "5.2.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "py-cpuinfo" }, - { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pytest", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/24/34/9f732b76456d64faffbef6232f1f9dbec7a7c4999ff46282fa418bd1af66/pytest_benchmark-5.2.3.tar.gz", hash = "sha256:deb7317998a23c650fd4ff76e1230066a76cb45dcece0aca5607143c619e7779", size = 341340 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/33/29/e756e715a48959f1c0045342088d7ca9762a2f509b945f362a316e9412b7/pytest_benchmark-5.2.3-py3-none-any.whl", hash = "sha256:bc839726ad20e99aaa0d11a127445457b4219bdb9e80a1afc4b51da7f96b0803", size = 45255 }, -] - -[[package]] -name = "python-xlib" -version = "0.33" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/86/f5/8c0653e5bb54e0cbdfe27bf32d41f27bc4e12faa8742778c17f2a71be2c0/python-xlib-0.33.tar.gz", hash = "sha256:55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32", size = 269068 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/b8/ff33610932e0ee81ae7f1269c890f697d56ff74b9f5b2ee5d9b7fa2c5355/python_xlib-0.33-py2.py3-none-any.whl", hash = "sha256:c3534038d42e0df2f1392a1b30a15a4ff5fdc2b86cfa94f072bf11b10a164398", size = 182185 }, -] - -[[package]] -name = "pywin32" -version = "311" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432 }, - { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103 }, - { url = "https://files.pythonhosted.org/packages/57/38/d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012/pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b", size = 8778557 }, - { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031 }, - { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308 }, - { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930 }, - { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, - { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, - { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, - { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700 }, - { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700 }, - { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318 }, - { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714 }, - { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800 }, - { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540 }, - { url = "https://files.pythonhosted.org/packages/59/42/b86689aac0cdaee7ae1c58d464b0ff04ca909c19bb6502d4973cdd9f9544/pywin32-311-cp39-cp39-win32.whl", hash = "sha256:aba8f82d551a942cb20d4a83413ccbac30790b50efb89a75e4f586ac0bb8056b", size = 8760837 }, - { url = "https://files.pythonhosted.org/packages/9f/8a/1403d0353f8c5a2f0829d2b1c4becbf9da2f0a4d040886404fc4a5431e4d/pywin32-311-cp39-cp39-win_amd64.whl", hash = "sha256:e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91", size = 9590187 }, - { url = "https://files.pythonhosted.org/packages/60/22/e0e8d802f124772cec9c75430b01a212f86f9de7546bda715e54140d5aeb/pywin32-311-cp39-cp39-win_arm64.whl", hash = "sha256:62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d", size = 8778162 }, -] - -[[package]] -name = "pywin32-ctypes" -version = "0.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756 }, -] - -[[package]] -name = "pywinbox" -version = "0.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ewmhlib", marker = "sys_platform == 'linux'" }, - { name = "pyobjc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'darwin'" }, - { name = "pyobjc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'darwin'" }, - { name = "python-xlib", marker = "sys_platform == 'linux'" }, - { name = "pywin32", marker = "sys_platform == 'win32'" }, - { name = "typing-extensions" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/37/d59397221e15d2a7f38afaa4e8e6b8c244d818044f7daa0bdc5988df0a69/PyWinBox-0.7-py3-none-any.whl", hash = "sha256:8b2506a8dd7afa0a910b368762adfac885274132ef9151b0c81b0d2c6ffd6f83", size = 12274 }, -] - -[[package]] -name = "pywinctl" -version = "0.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ewmhlib", marker = "sys_platform == 'linux'" }, - { name = "pymonctl" }, - { name = "pyobjc", version = "12.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and sys_platform == 'darwin'" }, - { name = "pyobjc", version = "12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'darwin'" }, - { name = "python-xlib", marker = "sys_platform == 'linux'" }, - { name = "pywin32", marker = "sys_platform == 'win32'" }, - { name = "pywinbox" }, - { name = "typing-extensions" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/be/33/8e4f632210b28fc9e998a9ab990e7ed97ecd2800cc50038e3800e1d85dbe/PyWinCtl-0.4.1-py3-none-any.whl", hash = "sha256:4d875e22969e1c6239d8c73156193630aaab876366167b8d97716f956384b089", size = 63158 }, -] - -[[package]] -name = "questionary" -version = "2.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "prompt-toolkit" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f6/45/eafb0bba0f9988f6a2520f9ca2df2c82ddfa8d67c95d6625452e97b204a5/questionary-2.1.1.tar.gz", hash = "sha256:3d7e980292bb0107abaa79c68dd3eee3c561b83a0f89ae482860b181c8bd412d", size = 25845 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl", hash = "sha256:a51af13f345f1cdea62347589fbb6df3b290306ab8930713bfae4d475a7d4a59", size = 36753 }, -] - -[[package]] -name = "readme-renderer" -version = "44.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "docutils" }, - { name = "nh3" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz", hash = "sha256:8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", size = 32056 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl", hash = "sha256:2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", size = 13310 }, -] - -[[package]] -name = "regex" -version = "2024.9.11" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/38/148df33b4dbca3bd069b963acab5e0fa1a9dbd6820f8c322d0dd6faeff96/regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd", size = 399403 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/63/12/497bd6599ce8a239ade68678132296aec5ee25ebea45fc8ba91aa60fceec/regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408", size = 482488 }, - { url = "https://files.pythonhosted.org/packages/c1/24/595ddb9bec2a9b151cdaf9565b0c9f3da9f0cb1dca6c158bc5175332ddf8/regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d", size = 287443 }, - { url = "https://files.pythonhosted.org/packages/69/a8/b2fb45d9715b1469383a0da7968f8cacc2f83e9fbbcd6b8713752dd980a6/regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5", size = 284561 }, - { url = "https://files.pythonhosted.org/packages/88/87/1ce4a5357216b19b7055e7d3b0efc75a6e426133bf1e7d094321df514257/regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c", size = 783177 }, - { url = "https://files.pythonhosted.org/packages/3c/65/b9f002ab32f7b68e7d1dcabb67926f3f47325b8dbc22cc50b6a043e1d07c/regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8", size = 823193 }, - { url = "https://files.pythonhosted.org/packages/22/91/8339dd3abce101204d246e31bc26cdd7ec07c9f91598472459a3a902aa41/regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35", size = 809950 }, - { url = "https://files.pythonhosted.org/packages/cb/19/556638aa11c2ec9968a1da998f07f27ec0abb9bf3c647d7c7985ca0b8eea/regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71", size = 782661 }, - { url = "https://files.pythonhosted.org/packages/d1/e9/7a5bc4c6ef8d9cd2bdd83a667888fc35320da96a4cc4da5fa084330f53db/regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8", size = 772348 }, - { url = "https://files.pythonhosted.org/packages/f1/0b/29f2105bfac3ed08e704914c38e93b07c784a6655f8a015297ee7173e95b/regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a", size = 697460 }, - { url = "https://files.pythonhosted.org/packages/71/3a/52ff61054d15a4722605f5872ad03962b319a04c1ebaebe570b8b9b7dde1/regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d", size = 769151 }, - { url = "https://files.pythonhosted.org/packages/97/07/37e460ab5ca84be8e1e197c3b526c5c86993dcc9e13cbc805c35fc2463c1/regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137", size = 777478 }, - { url = "https://files.pythonhosted.org/packages/65/7b/953075723dd5ab00780043ac2f9de667306ff9e2a85332975e9f19279174/regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6", size = 845373 }, - { url = "https://files.pythonhosted.org/packages/40/b8/3e9484c6230b8b6e8f816ab7c9a080e631124991a4ae2c27a81631777db0/regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca", size = 845369 }, - { url = "https://files.pythonhosted.org/packages/b7/99/38434984d912edbd2e1969d116257e869578f67461bd7462b894c45ed874/regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a", size = 773935 }, - { url = "https://files.pythonhosted.org/packages/ab/67/43174d2b46fa947b7b9dfe56b6c8a8a76d44223f35b1d64645a732fd1d6f/regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0", size = 261624 }, - { url = "https://files.pythonhosted.org/packages/c4/2a/4f9c47d9395b6aff24874c761d8d620c0232f97c43ef3cf668c8b355e7a7/regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623", size = 274020 }, - { url = "https://files.pythonhosted.org/packages/86/a1/d526b7b6095a0019aa360948c143aacfeb029919c898701ce7763bbe4c15/regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df", size = 482483 }, - { url = "https://files.pythonhosted.org/packages/32/d9/bfdd153179867c275719e381e1e8e84a97bd186740456a0dcb3e7125c205/regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268", size = 287442 }, - { url = "https://files.pythonhosted.org/packages/33/c4/60f3370735135e3a8d673ddcdb2507a8560d0e759e1398d366e43d000253/regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad", size = 284561 }, - { url = "https://files.pythonhosted.org/packages/b1/51/91a5ebdff17f9ec4973cb0aa9d37635efec1c6868654bbc25d1543aca4ec/regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679", size = 791779 }, - { url = "https://files.pythonhosted.org/packages/07/4a/022c5e6f0891a90cd7eb3d664d6c58ce2aba48bff107b00013f3d6167069/regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4", size = 832605 }, - { url = "https://files.pythonhosted.org/packages/ac/1c/3793990c8c83ca04e018151ddda83b83ecc41d89964f0f17749f027fc44d/regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664", size = 818556 }, - { url = "https://files.pythonhosted.org/packages/e9/5c/8b385afbfacb853730682c57be56225f9fe275c5bf02ac1fc88edbff316d/regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50", size = 792808 }, - { url = "https://files.pythonhosted.org/packages/9b/8b/a4723a838b53c771e9240951adde6af58c829fb6a6a28f554e8131f53839/regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199", size = 781115 }, - { url = "https://files.pythonhosted.org/packages/83/5f/031a04b6017033d65b261259c09043c06f4ef2d4eac841d0649d76d69541/regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4", size = 778155 }, - { url = "https://files.pythonhosted.org/packages/fd/cd/4660756070b03ce4a66663a43f6c6e7ebc2266cc6b4c586c167917185eb4/regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd", size = 784614 }, - { url = "https://files.pythonhosted.org/packages/93/8d/65b9bea7df120a7be8337c415b6d256ba786cbc9107cebba3bf8ff09da99/regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f", size = 853744 }, - { url = "https://files.pythonhosted.org/packages/96/a7/fba1eae75eb53a704475baf11bd44b3e6ccb95b316955027eb7748f24ef8/regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96", size = 855890 }, - { url = "https://files.pythonhosted.org/packages/45/14/d864b2db80a1a3358534392373e8a281d95b28c29c87d8548aed58813910/regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1", size = 781887 }, - { url = "https://files.pythonhosted.org/packages/4d/a9/bfb29b3de3eb11dc9b412603437023b8e6c02fb4e11311863d9bf62c403a/regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9", size = 261644 }, - { url = "https://files.pythonhosted.org/packages/c7/ab/1ad2511cf6a208fde57fafe49829cab8ca018128ab0d0b48973d8218634a/regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf", size = 274033 }, - { url = "https://files.pythonhosted.org/packages/6e/92/407531450762bed778eedbde04407f68cbd75d13cee96c6f8d6903d9c6c1/regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7", size = 483590 }, - { url = "https://files.pythonhosted.org/packages/8e/a2/048acbc5ae1f615adc6cba36cc45734e679b5f1e4e58c3c77f0ed611d4e2/regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231", size = 288175 }, - { url = "https://files.pythonhosted.org/packages/8a/ea/909d8620329ab710dfaf7b4adee41242ab7c9b95ea8d838e9bfe76244259/regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d", size = 284749 }, - { url = "https://files.pythonhosted.org/packages/ca/fa/521eb683b916389b4975337873e66954e0f6d8f91bd5774164a57b503185/regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64", size = 795181 }, - { url = "https://files.pythonhosted.org/packages/28/db/63047feddc3280cc242f9c74f7aeddc6ee662b1835f00046f57d5630c827/regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42", size = 835842 }, - { url = "https://files.pythonhosted.org/packages/e3/94/86adc259ff8ec26edf35fcca7e334566c1805c7493b192cb09679f9c3dee/regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766", size = 823533 }, - { url = "https://files.pythonhosted.org/packages/29/52/84662b6636061277cb857f658518aa7db6672bc6d1a3f503ccd5aefc581e/regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a", size = 797037 }, - { url = "https://files.pythonhosted.org/packages/c3/2a/cd4675dd987e4a7505f0364a958bc41f3b84942de9efaad0ef9a2646681c/regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9", size = 784106 }, - { url = "https://files.pythonhosted.org/packages/6f/75/3ea7ec29de0bbf42f21f812f48781d41e627d57a634f3f23947c9a46e303/regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d", size = 782468 }, - { url = "https://files.pythonhosted.org/packages/d3/67/15519d69b52c252b270e679cb578e22e0c02b8dd4e361f2b04efcc7f2335/regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822", size = 790324 }, - { url = "https://files.pythonhosted.org/packages/9c/71/eff77d3fe7ba08ab0672920059ec30d63fa7e41aa0fb61c562726e9bd721/regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0", size = 860214 }, - { url = "https://files.pythonhosted.org/packages/81/11/e1bdf84a72372e56f1ea4b833dd583b822a23138a616ace7ab57a0e11556/regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a", size = 859420 }, - { url = "https://files.pythonhosted.org/packages/ea/75/9753e9dcebfa7c3645563ef5c8a58f3a47e799c872165f37c55737dadd3e/regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a", size = 787333 }, - { url = "https://files.pythonhosted.org/packages/bc/4e/ba1cbca93141f7416624b3ae63573e785d4bc1834c8be44a8f0747919eca/regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776", size = 262058 }, - { url = "https://files.pythonhosted.org/packages/6e/16/efc5f194778bf43e5888209e5cec4b258005d37c613b67ae137df3b89c53/regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009", size = 273526 }, - { url = "https://files.pythonhosted.org/packages/93/0a/d1c6b9af1ff1e36832fe38d74d5c5bab913f2bdcbbd6bc0e7f3ce8b2f577/regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784", size = 483376 }, - { url = "https://files.pythonhosted.org/packages/a4/42/5910a050c105d7f750a72dcb49c30220c3ae4e2654e54aaaa0e9bc0584cb/regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36", size = 288112 }, - { url = "https://files.pythonhosted.org/packages/8d/56/0c262aff0e9224fa7ffce47b5458d373f4d3e3ff84e99b5ff0cb15e0b5b2/regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92", size = 284608 }, - { url = "https://files.pythonhosted.org/packages/b9/54/9fe8f9aec5007bbbbce28ba3d2e3eaca425f95387b7d1e84f0d137d25237/regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86", size = 795337 }, - { url = "https://files.pythonhosted.org/packages/b2/e7/6b2f642c3cded271c4f16cc4daa7231be544d30fe2b168e0223724b49a61/regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85", size = 835848 }, - { url = "https://files.pythonhosted.org/packages/cd/9e/187363bdf5d8c0e4662117b92aa32bf52f8f09620ae93abc7537d96d3311/regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963", size = 823503 }, - { url = "https://files.pythonhosted.org/packages/f8/10/601303b8ee93589f879664b0cfd3127949ff32b17f9b6c490fb201106c4d/regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6", size = 797049 }, - { url = "https://files.pythonhosted.org/packages/ef/1c/ea200f61ce9f341763f2717ab4daebe4422d83e9fd4ac5e33435fd3a148d/regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802", size = 784144 }, - { url = "https://files.pythonhosted.org/packages/d8/5c/d2429be49ef3292def7688401d3deb11702c13dcaecdc71d2b407421275b/regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29", size = 782483 }, - { url = "https://files.pythonhosted.org/packages/12/d9/cbc30f2ff7164f3b26a7760f87c54bf8b2faed286f60efd80350a51c5b99/regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8", size = 790320 }, - { url = "https://files.pythonhosted.org/packages/19/1d/43ed03a236313639da5a45e61bc553c8d41e925bcf29b0f8ecff0c2c3f25/regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84", size = 860435 }, - { url = "https://files.pythonhosted.org/packages/34/4f/5d04da61c7c56e785058a46349f7285ae3ebc0726c6ea7c5c70600a52233/regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554", size = 859571 }, - { url = "https://files.pythonhosted.org/packages/12/7f/8398c8155a3c70703a8e91c29532558186558e1aea44144b382faa2a6f7a/regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8", size = 787398 }, - { url = "https://files.pythonhosted.org/packages/58/3a/f5903977647a9a7e46d5535e9e96c194304aeeca7501240509bde2f9e17f/regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8", size = 262035 }, - { url = "https://files.pythonhosted.org/packages/ff/80/51ba3a4b7482f6011095b3a036e07374f64de180b7d870b704ed22509002/regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f", size = 273510 }, - { url = "https://files.pythonhosted.org/packages/a1/aa/e31baf8482ad690ccb3cdf20d1963a01e98d137e4d9ee493dbb0fa8ba2c6/regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066", size = 482489 }, - { url = "https://files.pythonhosted.org/packages/a1/b5/449c2f14fc20dc42ef9729469fcff42809393470f021ed6c6fcf5f3d3297/regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62", size = 287440 }, - { url = "https://files.pythonhosted.org/packages/3f/36/4b60a0c2e4cc6ecb2651be828117a31f42fae55a51a484a8071729df56a6/regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16", size = 284566 }, - { url = "https://files.pythonhosted.org/packages/b4/21/feaa5b0d3e5e3bad659cd7d640e6b76cc0719504dbd9bc8f67cfa21bde82/regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3", size = 782747 }, - { url = "https://files.pythonhosted.org/packages/bb/89/93516f0aa3e8a9366df2cf79bb0290abdc7dbe5dd27373d9bea0978b7ba6/regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199", size = 822700 }, - { url = "https://files.pythonhosted.org/packages/d5/e7/79c04ccb81cee2831d9d4499274919b9153c1741ce8b3421d69cb0032f1b/regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8", size = 809327 }, - { url = "https://files.pythonhosted.org/packages/01/e6/a7256c99c312b68f01cfd4f8eae6e770906fffb3832ecb66f35ca5b86b96/regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca", size = 781970 }, - { url = "https://files.pythonhosted.org/packages/18/c4/29e8b6ff2208775858b5d4a2caa6428d40b5fade95aee426de7e42ffff39/regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9", size = 771885 }, - { url = "https://files.pythonhosted.org/packages/95/78/7acd8882ac335f1f5ae1756417739fda3053e0bcacea8716ae4a04e74553/regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a", size = 696978 }, - { url = "https://files.pythonhosted.org/packages/cb/d2/1d44f9b4a3d33ff5773fd79bea53e992d00f81e0af6f1f4e2efac1e4d897/regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39", size = 768655 }, - { url = "https://files.pythonhosted.org/packages/79/ba/92ef9d3b8f59cb3df9febef07098dfb4a43c3bdcf35b1084c2009b0a93bf/regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba", size = 776922 }, - { url = "https://files.pythonhosted.org/packages/16/71/d964c0c9d447f04bbe6ab5eafd220208e7d52b9608e452e6fcad553b38e0/regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664", size = 845014 }, - { url = "https://files.pythonhosted.org/packages/83/cb/a378cdc2468782eefefa50183bbeabc3357fb588d4109d845f0a56e68713/regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89", size = 844916 }, - { url = "https://files.pythonhosted.org/packages/b9/f0/82ea1565a6639270cfe96263002b3d91084a1db5048d9b6084f83bd5972d/regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35", size = 773409 }, - { url = "https://files.pythonhosted.org/packages/97/9e/0400d742b9647b4940609a96d550de89e4e89c85f6a370796dab25b5979c/regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142", size = 261680 }, - { url = "https://files.pythonhosted.org/packages/b6/f1/aef1112652ac7b3922d2c129f8325a4fd286b66691127dd99f380f8ede19/regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919", size = 274066 }, -] - -[[package]] -name = "requests" -version = "2.32.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738 }, -] - -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481 }, -] - -[[package]] -name = "rfc3986" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", size = 49026 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", size = 31326 }, -] - -[[package]] -name = "rich" -version = "14.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393 }, -] - -[[package]] -name = "roman-numerals-py" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/76/48fd56d17c5bdbdf65609abbc67288728a98ed4c02919428d4f52d23b24b/roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d", size = 9017 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c", size = 7742 }, -] - -[[package]] -name = "ruff" -version = "0.14.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/fa/fbb67a5780ae0f704876cb8ac92d6d76da41da4dc72b7ed3565ab18f2f52/ruff-0.14.5.tar.gz", hash = "sha256:8d3b48d7d8aad423d3137af7ab6c8b1e38e4de104800f0d596990f6ada1a9fc1", size = 5615944 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/31/c07e9c535248d10836a94e4f4e8c5a31a1beed6f169b31405b227872d4f4/ruff-0.14.5-py3-none-linux_armv6l.whl", hash = "sha256:f3b8248123b586de44a8018bcc9fefe31d23dda57a34e6f0e1e53bd51fd63594", size = 13171630 }, - { url = "https://files.pythonhosted.org/packages/8e/5c/283c62516dca697cd604c2796d1487396b7a436b2f0ecc3fd412aca470e0/ruff-0.14.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f7a75236570318c7a30edd7f5491945f0169de738d945ca8784500b517163a72", size = 13413925 }, - { url = "https://files.pythonhosted.org/packages/b6/f3/aa319f4afc22cb6fcba2b9cdfc0f03bbf747e59ab7a8c5e90173857a1361/ruff-0.14.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6d146132d1ee115f8802356a2dc9a634dbf58184c51bff21f313e8cd1c74899a", size = 12574040 }, - { url = "https://files.pythonhosted.org/packages/f9/7f/cb5845fcc7c7e88ed57f58670189fc2ff517fe2134c3821e77e29fd3b0c8/ruff-0.14.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2380596653dcd20b057794d55681571a257a42327da8894b93bbd6111aa801f", size = 13009755 }, - { url = "https://files.pythonhosted.org/packages/21/d2/bcbedbb6bcb9253085981730687ddc0cc7b2e18e8dc13cf4453de905d7a0/ruff-0.14.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d1fa985a42b1f075a098fa1ab9d472b712bdb17ad87a8ec86e45e7fa6273e68", size = 12937641 }, - { url = "https://files.pythonhosted.org/packages/a4/58/e25de28a572bdd60ffc6bb71fc7fd25a94ec6a076942e372437649cbb02a/ruff-0.14.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88f0770d42b7fa02bbefddde15d235ca3aa24e2f0137388cc15b2dcbb1f7c7a7", size = 13610854 }, - { url = "https://files.pythonhosted.org/packages/7d/24/43bb3fd23ecee9861970978ea1a7a63e12a204d319248a7e8af539984280/ruff-0.14.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3676cb02b9061fee7294661071c4709fa21419ea9176087cb77e64410926eb78", size = 15061088 }, - { url = "https://files.pythonhosted.org/packages/23/44/a022f288d61c2f8c8645b24c364b719aee293ffc7d633a2ca4d116b9c716/ruff-0.14.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b595bedf6bc9cab647c4a173a61acf4f1ac5f2b545203ba82f30fcb10b0318fb", size = 14734717 }, - { url = "https://files.pythonhosted.org/packages/58/81/5c6ba44de7e44c91f68073e0658109d8373b0590940efe5bd7753a2585a3/ruff-0.14.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f55382725ad0bdb2e8ee2babcbbfb16f124f5a59496a2f6a46f1d9d99d93e6e2", size = 14028812 }, - { url = "https://files.pythonhosted.org/packages/ad/ef/41a8b60f8462cb320f68615b00299ebb12660097c952c600c762078420f8/ruff-0.14.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7497d19dce23976bdaca24345ae131a1d38dcfe1b0850ad8e9e6e4fa321a6e19", size = 13825656 }, - { url = "https://files.pythonhosted.org/packages/7c/00/207e5de737fdb59b39eb1fac806904fe05681981b46d6a6db9468501062e/ruff-0.14.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:410e781f1122d6be4f446981dd479470af86537fb0b8857f27a6e872f65a38e4", size = 13959922 }, - { url = "https://files.pythonhosted.org/packages/bc/7e/fa1f5c2776db4be405040293618846a2dece5c70b050874c2d1f10f24776/ruff-0.14.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c01be527ef4c91a6d55e53b337bfe2c0f82af024cc1a33c44792d6844e2331e1", size = 12932501 }, - { url = "https://files.pythonhosted.org/packages/67/d8/d86bf784d693a764b59479a6bbdc9515ae42c340a5dc5ab1dabef847bfaa/ruff-0.14.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f66e9bb762e68d66e48550b59c74314168ebb46199886c5c5aa0b0fbcc81b151", size = 12927319 }, - { url = "https://files.pythonhosted.org/packages/ac/de/ee0b304d450ae007ce0cb3e455fe24fbcaaedae4ebaad6c23831c6663651/ruff-0.14.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d93be8f1fa01022337f1f8f3bcaa7ffee2d0b03f00922c45c2207954f351f465", size = 13206209 }, - { url = "https://files.pythonhosted.org/packages/33/aa/193ca7e3a92d74f17d9d5771a765965d2cf42c86e6f0fd95b13969115723/ruff-0.14.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c135d4b681f7401fe0e7312017e41aba9b3160861105726b76cfa14bc25aa367", size = 13953709 }, - { url = "https://files.pythonhosted.org/packages/cc/f1/7119e42aa1d3bf036ffc9478885c2e248812b7de9abea4eae89163d2929d/ruff-0.14.5-py3-none-win32.whl", hash = "sha256:c83642e6fccfb6dea8b785eb9f456800dcd6a63f362238af5fc0c83d027dd08b", size = 12925808 }, - { url = "https://files.pythonhosted.org/packages/3b/9d/7c0a255d21e0912114784e4a96bf62af0618e2190cae468cd82b13625ad2/ruff-0.14.5-py3-none-win_amd64.whl", hash = "sha256:9d55d7af7166f143c94eae1db3312f9ea8f95a4defef1979ed516dbb38c27621", size = 14331546 }, - { url = "https://files.pythonhosted.org/packages/e5/80/69756670caedcf3b9be597a6e12276a6cf6197076eb62aad0c608f8efce0/ruff-0.14.5-py3-none-win_arm64.whl", hash = "sha256:4b700459d4649e2594b31f20a9de33bc7c19976d4746d8d0798ad959621d64a4", size = 13433331 }, -] - -[[package]] -name = "secretstorage" -version = "3.3.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "cryptography", marker = "python_full_version < '3.10'" }, - { name = "jeepney", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", size = 19739 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", size = 15221 }, -] - -[[package]] -name = "secretstorage" -version = "3.4.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "cryptography", marker = "python_full_version >= '3.10'" }, - { name = "jeepney", marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/32/8a/ed6747b1cc723c81f526d4c12c1b1d43d07190e1e8258dbf934392fc850e/secretstorage-3.4.1.tar.gz", hash = "sha256:a799acf5be9fb93db609ebaa4ab6e8f1f3ed5ae640e0fa732bfea59e9c3b50e8", size = 19871 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/6d/24ebb101484f1911a6be6695b76ce43219caa110ebbe07d8c3a5f3106cca/secretstorage-3.4.1-py3-none-any.whl", hash = "sha256:c55d57b4da3de568d8c3af89dad244ab24c35ca1da8625fc1b550edf005ebc41", size = 15301 }, -] - -[[package]] -name = "setuptools" -version = "80.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486 }, -] - -[[package]] -name = "setuptools-scm" -version = "9.2.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, - { name = "setuptools" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7b/b1/19587742aad604f1988a8a362e660e8c3ac03adccdb71c96d86526e5eb62/setuptools_scm-9.2.2.tar.gz", hash = "sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57", size = 203385 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/ea/ac2bf868899d0d2e82ef72d350d97a846110c709bacf2d968431576ca915/setuptools_scm-9.2.2-py3-none-any.whl", hash = "sha256:30e8f84d2ab1ba7cb0e653429b179395d0c33775d54807fc5f1dd6671801aef7", size = 62975 }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, -] - -[[package]] -name = "snowballstemmer" -version = "3.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274 }, -] - -[[package]] -name = "soupsieve" -version = "2.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6d/e6/21ccce3262dd4889aa3332e5a119a3491a95e8f60939870a3a035aabac0d/soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f", size = 103472 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/a0/bb38d3b76b8cae341dad93a2dd83ab7462e6dbcdd84d43f54ee60a8dc167/soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c", size = 36679 }, -] - -[[package]] -name = "sphinx" -version = "7.4.7" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "alabaster", version = "0.7.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "babel", marker = "python_full_version < '3.10'" }, - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, - { name = "docutils", marker = "python_full_version < '3.10'" }, - { name = "imagesize", marker = "python_full_version < '3.10'" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, - { name = "jinja2", marker = "python_full_version < '3.10'" }, - { name = "packaging", marker = "python_full_version < '3.10'" }, - { name = "pygments", marker = "python_full_version < '3.10'" }, - { name = "requests", marker = "python_full_version < '3.10'" }, - { name = "snowballstemmer", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.10'" }, - { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.10'" }, - { name = "tomli", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/be/50e50cb4f2eff47df05673d361095cafd95521d2a22521b920c67a372dcb/sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe", size = 8067911 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/ef/153f6803c5d5f8917dbb7f7fcf6d34a871ede3296fa89c2c703f5f8a6c8e/sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239", size = 3401624 }, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "babel", marker = "python_full_version == '3.10.*'" }, - { name = "colorama", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, - { name = "docutils", marker = "python_full_version == '3.10.*'" }, - { name = "imagesize", marker = "python_full_version == '3.10.*'" }, - { name = "jinja2", marker = "python_full_version == '3.10.*'" }, - { name = "packaging", marker = "python_full_version == '3.10.*'" }, - { name = "pygments", marker = "python_full_version == '3.10.*'" }, - { name = "requests", marker = "python_full_version == '3.10.*'" }, - { name = "snowballstemmer", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.10.*'" }, - { name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.10.*'" }, - { name = "tomli", marker = "python_full_version == '3.10.*'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125 }, -] - -[[package]] -name = "sphinx" -version = "8.2.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.11'", -] -dependencies = [ - { name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "babel", marker = "python_full_version >= '3.11'" }, - { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, - { name = "docutils", marker = "python_full_version >= '3.11'" }, - { name = "imagesize", marker = "python_full_version >= '3.11'" }, - { name = "jinja2", marker = "python_full_version >= '3.11'" }, - { name = "packaging", marker = "python_full_version >= '3.11'" }, - { name = "pygments", marker = "python_full_version >= '3.11'" }, - { name = "requests", marker = "python_full_version >= '3.11'" }, - { name = "roman-numerals-py", marker = "python_full_version >= '3.11'" }, - { name = "snowballstemmer", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11'" }, - { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", size = 8321876 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl", hash = "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3", size = 3589741 }, -] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300 }, -] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530 }, -] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705 }, -] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071 }, -] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743 }, -] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072 }, -] - -[[package]] -name = "tomli" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236 }, - { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084 }, - { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832 }, - { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052 }, - { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555 }, - { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128 }, - { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445 }, - { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165 }, - { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891 }, - { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796 }, - { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121 }, - { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070 }, - { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859 }, - { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296 }, - { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124 }, - { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698 }, - { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819 }, - { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766 }, - { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771 }, - { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586 }, - { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792 }, - { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909 }, - { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946 }, - { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705 }, - { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244 }, - { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637 }, - { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925 }, - { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045 }, - { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835 }, - { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109 }, - { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930 }, - { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964 }, - { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065 }, - { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088 }, - { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193 }, - { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488 }, - { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669 }, - { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709 }, - { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563 }, - { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756 }, - { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408 }, -] - -[[package]] -name = "tomlkit" -version = "0.13.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901 }, -] - -[[package]] -name = "twine" -version = "6.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "id" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, - { name = "keyring", marker = "platform_machine != 'ppc64le' and platform_machine != 's390x'" }, - { name = "packaging" }, - { name = "readme-renderer" }, - { name = "requests" }, - { name = "requests-toolbelt" }, - { name = "rfc3986" }, - { name = "rich" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e0/a8/949edebe3a82774c1ec34f637f5dd82d1cf22c25e963b7d63771083bbee5/twine-6.2.0.tar.gz", hash = "sha256:e5ed0d2fd70c9959770dce51c8f39c8945c574e18173a7b81802dab51b4b75cf", size = 172262 } +sdist = { url = "https://files.pythonhosted.org/packages/e0/a8/949edebe3a82774c1ec34f637f5dd82d1cf22c25e963b7d63771083bbee5/twine-6.2.0.tar.gz", hash = "sha256:e5ed0d2fd70c9959770dce51c8f39c8945c574e18173a7b81802dab51b4b75cf", size = 172262, upload-time = "2025-09-04T15:43:17.255Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/7a/882d99539b19b1490cac5d77c67338d126e4122c8276bf640e411650c830/twine-6.2.0-py3-none-any.whl", hash = "sha256:418ebf08ccda9a8caaebe414433b0ba5e25eb5e4a927667122fbe8f829f985d8", size = 42727 }, + { url = "https://files.pythonhosted.org/packages/3a/7a/882d99539b19b1490cac5d77c67338d126e4122c8276bf640e411650c830/twine-6.2.0-py3-none-any.whl", hash = "sha256:418ebf08ccda9a8caaebe414433b0ba5e25eb5e4a927667122fbe8f829f985d8", size = 42727, upload-time = "2025-09-04T15:43:15.994Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "urllib3" -version = "2.5.0" +version = "2.6.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, ] [[package]] name = "wcwidth" version = "0.2.14" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293 } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286 }, + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, ] [[package]] name = "websockets" version = "15.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/da/6462a9f510c0c49837bbc9345aca92d767a56c1fb2939e1579df1e1cdcf7/websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/1c/9f/9d11c1a4eb046a9e106483b9ff69bce7ac880443f00e5ce64261b47b07e7/websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205", size = 173080 }, - { url = "https://files.pythonhosted.org/packages/d5/4f/b462242432d93ea45f297b6179c7333dd0402b855a912a04e7fc61c0d71f/websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/6e/0c/6afa1f4644d7ed50284ac59cc70ef8abd44ccf7d45850d989ea7310538d0/websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e", size = 182312 }, - { url = "https://files.pythonhosted.org/packages/dd/d4/ffc8bd1350b229ca7a4db2a3e1c482cf87cea1baccd0ef3e72bc720caeec/websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf", size = 181319 }, - { url = "https://files.pythonhosted.org/packages/97/3a/5323a6bb94917af13bbb34009fac01e55c51dfde354f63692bf2533ffbc2/websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb", size = 181631 }, - { url = "https://files.pythonhosted.org/packages/a6/cc/1aeb0f7cee59ef065724041bb7ed667b6ab1eeffe5141696cccec2687b66/websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d", size = 182016 }, - { url = "https://files.pythonhosted.org/packages/79/f9/c86f8f7af208e4161a7f7e02774e9d0a81c632ae76db2ff22549e1718a51/websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9", size = 181426 }, - { url = "https://files.pythonhosted.org/packages/c7/b9/828b0bc6753db905b91df6ae477c0b14a141090df64fb17f8a9d7e3516cf/websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c", size = 181360 }, - { url = "https://files.pythonhosted.org/packages/89/fb/250f5533ec468ba6327055b7d98b9df056fb1ce623b8b6aaafb30b55d02e/websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/1c/46/aca7082012768bb98e5608f01658ff3ac8437e563eca41cf068bd5849a5e/websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", size = 176830 }, - { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082 }, - { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330 }, - { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878 }, - { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883 }, - { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252 }, - { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521 }, - { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958 }, - { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918 }, - { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828 }, - { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, - { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, - { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, - { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, - { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, - { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, - { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, - { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, - { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, - { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, - { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, - { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440 }, - { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098 }, - { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111 }, - { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054 }, - { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496 }, - { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829 }, - { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217 }, - { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 }, - { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 }, - { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 }, - { url = "https://files.pythonhosted.org/packages/36/db/3fff0bcbe339a6fa6a3b9e3fbc2bfb321ec2f4cd233692272c5a8d6cf801/websockets-15.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5", size = 175424 }, - { url = "https://files.pythonhosted.org/packages/46/e6/519054c2f477def4165b0ec060ad664ed174e140b0d1cbb9fafa4a54f6db/websockets-15.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a", size = 173077 }, - { url = "https://files.pythonhosted.org/packages/1a/21/c0712e382df64c93a0d16449ecbf87b647163485ca1cc3f6cbadb36d2b03/websockets-15.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b", size = 173324 }, - { url = "https://files.pythonhosted.org/packages/1c/cb/51ba82e59b3a664df54beed8ad95517c1b4dc1a913730e7a7db778f21291/websockets-15.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770", size = 182094 }, - { url = "https://files.pythonhosted.org/packages/fb/0f/bf3788c03fec679bcdaef787518dbe60d12fe5615a544a6d4cf82f045193/websockets-15.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb", size = 181094 }, - { url = "https://files.pythonhosted.org/packages/5e/da/9fb8c21edbc719b66763a571afbaf206cb6d3736d28255a46fc2fe20f902/websockets-15.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054", size = 181397 }, - { url = "https://files.pythonhosted.org/packages/2e/65/65f379525a2719e91d9d90c38fe8b8bc62bd3c702ac651b7278609b696c4/websockets-15.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee", size = 181794 }, - { url = "https://files.pythonhosted.org/packages/d9/26/31ac2d08f8e9304d81a1a7ed2851c0300f636019a57cbaa91342015c72cc/websockets-15.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed", size = 181194 }, - { url = "https://files.pythonhosted.org/packages/98/72/1090de20d6c91994cd4b357c3f75a4f25ee231b63e03adea89671cc12a3f/websockets-15.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880", size = 181164 }, - { url = "https://files.pythonhosted.org/packages/2d/37/098f2e1c103ae8ed79b0e77f08d83b0ec0b241cf4b7f2f10edd0126472e1/websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411", size = 176381 }, - { url = "https://files.pythonhosted.org/packages/75/8b/a32978a3ab42cebb2ebdd5b05df0696a09f4d436ce69def11893afa301f0/websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4", size = 176841 }, - { url = "https://files.pythonhosted.org/packages/02/9e/d40f779fa16f74d3468357197af8d6ad07e7c5a27ea1ca74ceb38986f77a/websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", size = 173109 }, - { url = "https://files.pythonhosted.org/packages/bc/cd/5b887b8585a593073fd92f7c23ecd3985cd2c3175025a91b0d69b0551372/websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", size = 173343 }, - { url = "https://files.pythonhosted.org/packages/fe/ae/d34f7556890341e900a95acf4886833646306269f899d58ad62f588bf410/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", size = 174599 }, - { url = "https://files.pythonhosted.org/packages/71/e6/5fd43993a87db364ec60fc1d608273a1a465c0caba69176dd160e197ce42/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", size = 174207 }, - { url = "https://files.pythonhosted.org/packages/2b/fb/c492d6daa5ec067c2988ac80c61359ace5c4c674c532985ac5a123436cec/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", size = 174155 }, - { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884 }, - { url = "https://files.pythonhosted.org/packages/b7/48/4b67623bac4d79beb3a6bb27b803ba75c1bdedc06bd827e465803690a4b2/websockets-15.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940", size = 173106 }, - { url = "https://files.pythonhosted.org/packages/ed/f0/adb07514a49fe5728192764e04295be78859e4a537ab8fcc518a3dbb3281/websockets-15.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e", size = 173339 }, - { url = "https://files.pythonhosted.org/packages/87/28/bd23c6344b18fb43df40d0700f6d3fffcd7cef14a6995b4f976978b52e62/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9", size = 174597 }, - { url = "https://files.pythonhosted.org/packages/6d/79/ca288495863d0f23a60f546f0905ae8f3ed467ad87f8b6aceb65f4c013e4/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b", size = 174205 }, - { url = "https://files.pythonhosted.org/packages/04/e4/120ff3180b0872b1fe6637f6f995bcb009fb5c87d597c1fc21456f50c848/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f", size = 174150 }, - { url = "https://files.pythonhosted.org/packages/cb/c3/30e2f9c539b8da8b1d76f64012f3b19253271a63413b2d3adb94b143407f/websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123", size = 176877 }, - { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, + { url = "https://files.pythonhosted.org/packages/89/fb/250f5533ec468ba6327055b7d98b9df056fb1ce623b8b6aaafb30b55d02e/websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", size = 176388, upload-time = "2025-03-05T20:01:52.213Z" }, + { url = "https://files.pythonhosted.org/packages/1c/46/aca7082012768bb98e5608f01658ff3ac8437e563eca41cf068bd5849a5e/websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", size = 176830, upload-time = "2025-03-05T20:01:53.922Z" }, + { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388, upload-time = "2025-03-05T20:02:13.32Z" }, + { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828, upload-time = "2025-03-05T20:02:14.585Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/2d/37/098f2e1c103ae8ed79b0e77f08d83b0ec0b241cf4b7f2f10edd0126472e1/websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411", size = 176381, upload-time = "2025-03-05T20:03:12.77Z" }, + { url = "https://files.pythonhosted.org/packages/75/8b/a32978a3ab42cebb2ebdd5b05df0696a09f4d436ce69def11893afa301f0/websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4", size = 176841, upload-time = "2025-03-05T20:03:14.367Z" }, + { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884, upload-time = "2025-03-05T20:03:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c3/30e2f9c539b8da8b1d76f64012f3b19253271a63413b2d3adb94b143407f/websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123", size = 176877, upload-time = "2025-03-05T20:03:37.199Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] [[package]] name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276 }, + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ]