From b737e8472f52a993f9cb0e114df23c038470c7a7 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 27 Nov 2024 16:35:36 +0800 Subject: [PATCH 01/26] athenad: explicitly delete socket in getMessage (#34098) explicitly delete socket in getMessage --- system/athena/athenad.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/system/athena/athenad.py b/system/athena/athenad.py index 9c9acf2c13..4c056461ac 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -309,13 +309,16 @@ def getMessage(service: str, timeout: int = 1000) -> dict: raise Exception("invalid service") socket = messaging.sub_sock(service, timeout=timeout) - ret = messaging.recv_one(socket) + try: + ret = messaging.recv_one(socket) - if ret is None: - raise TimeoutError + if ret is None: + raise TimeoutError - # this is because capnp._DynamicStructReader doesn't have typing information - return cast(dict, ret.to_dict()) + # this is because capnp._DynamicStructReader doesn't have typing information + return cast(dict, ret.to_dict()) + finally: + del socket @dispatcher.add_method From adb9560870ef8cef83beaf0bc539ca0905ffe133 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 27 Nov 2024 18:44:32 +0800 Subject: [PATCH 02/26] athenad: move last_scan outside the loop (#34099) move last_scan outside the loop --- system/athena/athenad.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/athena/athenad.py b/system/athena/athenad.py index 4c056461ac..909e99fa71 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -629,8 +629,9 @@ def log_handler(end_event: threading.Event) -> None: def stat_handler(end_event: threading.Event) -> None: STATS_DIR = Paths.stats_root() + last_scan = 0.0 + while not end_event.is_set(): - last_scan = 0. curr_scan = time.monotonic() try: if curr_scan - last_scan > 10: From 8e14e400efab9671cbf61443b516ba881748b3bc Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Thu, 28 Nov 2024 02:58:33 +0800 Subject: [PATCH 03/26] cabana: enhance freq calculation and add zero division protection (#34121) fix frequency calculation --- tools/cabana/streams/abstractstream.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/cabana/streams/abstractstream.cc b/tools/cabana/streams/abstractstream.cc index 08acba9dd8..7abeafea94 100644 --- a/tools/cabana/streams/abstractstream.cc +++ b/tools/cabana/streams/abstractstream.cc @@ -1,5 +1,6 @@ #include "tools/cabana/streams/abstractstream.h" +#include #include #include @@ -228,11 +229,10 @@ double calc_freq(const MessageId &msg_id, double current_sec) { auto last = std::upper_bound(first, events.end(), current_mono_time, CompareCanEvent()); int count = std::distance(first, last); - if (count > 1) { - double duration = ((*std::prev(last))->mono_time - (*first)->mono_time) / 1e9; - return count / duration; - } - return 0; + if (count <= 1) return 0.0; + + double duration = ((*std::prev(last))->mono_time - (*first)->mono_time) / 1e9; + return duration > std::numeric_limits::epsilon() ? (count - 1) / duration : 0.0; } } // namespace From 4226ef5a66ee6015533f6fad3ee6691948c4b003 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Thu, 28 Nov 2024 11:48:48 -0800 Subject: [PATCH 04/26] Setup system/ui/ move (#34124) --- SConstruct | 1 + selfdrive/ui/SConscript | 2 -- selfdrive/ui/raylib/.gitignore | 1 - system/ui/.gitignore | 1 + {selfdrive/ui/raylib => system/ui}/SConscript | 11 ++++++----- {selfdrive => system}/ui/raylib/spinner.cc | 2 +- {selfdrive => system}/ui/raylib/util.cc | 2 +- {selfdrive => system}/ui/raylib/util.h | 0 8 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 selfdrive/ui/raylib/.gitignore create mode 100644 system/ui/.gitignore rename {selfdrive/ui/raylib => system/ui}/SConscript (53%) rename {selfdrive => system}/ui/raylib/spinner.cc (98%) rename {selfdrive => system}/ui/raylib/util.cc (97%) rename {selfdrive => system}/ui/raylib/util.h (100%) diff --git a/SConstruct b/SConstruct index 7cc672cef0..d1661e7b6c 100644 --- a/SConstruct +++ b/SConstruct @@ -366,6 +366,7 @@ SConscript(['rednose/SConscript']) # Build system services SConscript([ + 'system/ui/SConscript', 'system/proclogd/SConscript', 'system/ubloxd/SConscript', 'system/loggerd/SConscript', diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 81c18d03df..22bf4760bf 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -110,5 +110,3 @@ if GetOption('extras') and arch != "Darwin": # build watch3 if arch in ['x86_64', 'aarch64', 'Darwin'] or GetOption('extras'): qt_env.Program("watch3", ["watch3.cc"], LIBS=qt_libs + ['common', 'msgq', 'visionipc']) - -SConscript(['raylib/SConscript']) diff --git a/selfdrive/ui/raylib/.gitignore b/selfdrive/ui/raylib/.gitignore deleted file mode 100644 index c66ae096aa..0000000000 --- a/selfdrive/ui/raylib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_spinner diff --git a/system/ui/.gitignore b/system/ui/.gitignore new file mode 100644 index 0000000000..1d32f7d877 --- /dev/null +++ b/system/ui/.gitignore @@ -0,0 +1 @@ +spinner diff --git a/selfdrive/ui/raylib/SConscript b/system/ui/SConscript similarity index 53% rename from selfdrive/ui/raylib/SConscript rename to system/ui/SConscript index d603f263e1..1f75e9cbe5 100644 --- a/selfdrive/ui/raylib/SConscript +++ b/system/ui/SConscript @@ -1,9 +1,10 @@ Import('env', 'arch', 'common') -raylib_env = env.Clone() -raylib_util_lib = env.Library("raylib_util_lib", ['util.cc'], LIBS='raylib') -linked_libs = ['raylib', raylib_util_lib, common] -raylib_env['LIBPATH'] += [f'#third_party/raylib/{arch}/'] +renv = env.Clone() + +rayutil = env.Library("rayutil", ['raylib/util.cc'], LIBS='raylib') +linked_libs = ['raylib', rayutil, common] +renv['LIBPATH'] += [f'#third_party/raylib/{arch}/'] mac_frameworks = [] if arch == "Darwin": @@ -14,4 +15,4 @@ else: linked_libs += ['OpenCL', 'dl', 'pthread'] if arch != 'aarch64': - raylib_env.Program("_spinner", ["spinner.cc"], LIBS=linked_libs, FRAMEWORKS=mac_frameworks) + renv.Program("spinner", ["raylib/spinner.cc"], LIBS=linked_libs, FRAMEWORKS=mac_frameworks) diff --git a/selfdrive/ui/raylib/spinner.cc b/system/ui/raylib/spinner.cc similarity index 98% rename from selfdrive/ui/raylib/spinner.cc rename to system/ui/raylib/spinner.cc index 99aa5f3269..085d452385 100644 --- a/selfdrive/ui/raylib/spinner.cc +++ b/system/ui/raylib/spinner.cc @@ -2,7 +2,7 @@ #include #include -#include "selfdrive/ui/raylib/util.h" +#include "system/ui/raylib/util.h" #include "third_party/raylib/include/raylib.h" constexpr int kProgressBarWidth = 1000; diff --git a/selfdrive/ui/raylib/util.cc b/system/ui/raylib/util.cc similarity index 97% rename from selfdrive/ui/raylib/util.cc rename to system/ui/raylib/util.cc index 73c0e4e0b7..5dcebd024e 100644 --- a/selfdrive/ui/raylib/util.cc +++ b/system/ui/raylib/util.cc @@ -1,4 +1,4 @@ -#include "selfdrive/ui/raylib/util.h" +#include "system/ui/raylib/util.h" #include diff --git a/selfdrive/ui/raylib/util.h b/system/ui/raylib/util.h similarity index 100% rename from selfdrive/ui/raylib/util.h rename to system/ui/raylib/util.h From ce948f7362d04ec6ac7b0a279430581d2262c9ac Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Thu, 28 Nov 2024 15:59:27 -0800 Subject: [PATCH 05/26] raylib on device (#34126) * setup * tp * more * device --- system/ui/SConscript | 2 +- system/ui/raylib/spinner.cc | 4 +- system/ui/raylib/util.cc | 4 +- third_party/raylib/include/raylib.h | 270 ++++---- third_party/raylib/include/raymath.h | 825 ++++++++++++++++++++++++- third_party/raylib/include/rlgl.h | 789 +++++++++++++++++------ third_party/raylib/larch64/libraylib.a | 4 +- third_party/raylib/setup.sh | 39 +- third_party/raylib/x86_64/libraylib.a | 4 +- 9 files changed, 1576 insertions(+), 365 deletions(-) diff --git a/system/ui/SConscript b/system/ui/SConscript index 1f75e9cbe5..0e164efb92 100644 --- a/system/ui/SConscript +++ b/system/ui/SConscript @@ -10,7 +10,7 @@ mac_frameworks = [] if arch == "Darwin": mac_frameworks += ['OpenCL', 'CoreVideo', 'Cocoa', 'GLUT', 'CoreFoundation', 'OpenGL', 'IOKit'] elif arch == 'larch64': - linked_libs += [] + linked_libs += ['GLESv2', 'GL', 'EGL', 'wayland-client', 'wayland-egl'] else: linked_libs += ['OpenCL', 'dl', 'pthread'] diff --git a/system/ui/raylib/spinner.cc b/system/ui/raylib/spinner.cc index 085d452385..cf96ccb117 100644 --- a/system/ui/raylib/spinner.cc +++ b/system/ui/raylib/spinner.cc @@ -19,8 +19,8 @@ int main(int argc, char *argv[]) { std::cin.sync_with_stdio(false); std::cin.tie(nullptr); - Texture2D commaTexture = LoadTextureResized("../../assets/img_spinner_comma.png", kTextureSize); - Texture2D spinnerTexture = LoadTextureResized("../../assets/img_spinner_track.png", kTextureSize); + Texture2D commaTexture = LoadTextureResized("../../selfdrive/assets/img_spinner_comma.png", kTextureSize); + Texture2D spinnerTexture = LoadTextureResized("../../selfdrive/assets/img_spinner_track.png", kTextureSize); float rotation = 0.0f; std::string userInput; diff --git a/system/ui/raylib/util.cc b/system/ui/raylib/util.cc index 5dcebd024e..46f8a4fd3f 100644 --- a/system/ui/raylib/util.cc +++ b/system/ui/raylib/util.cc @@ -23,7 +23,6 @@ struct FontManager { FontManager() { for (int i = 0; i < fonts.size(); ++i) { fonts[i] = LoadFontEx(FONT_FILE_PATHS[i], 120, nullptr, 250); - SetTextureFilter(fonts[i].texture, TEXTURE_FILTER_TRILINEAR); } } @@ -43,7 +42,6 @@ Texture2D LoadTextureResized(const char *fileName, int size) { Image img = LoadImage(fileName); ImageResize(&img, size, size); Texture2D texture = LoadTextureFromImage(img); - SetTextureFilter(texture, TEXTURE_FILTER_TRILINEAR); return texture; } @@ -51,6 +49,6 @@ void initApp(const char *title, int fps) { Hardware::set_display_power(true); Hardware::set_brightness(65); // SetTraceLogLevel(LOG_NONE); - InitWindow(0, 0, title); + InitWindow(2160, 1080, title); SetTargetFPS(fps); } diff --git a/third_party/raylib/include/raylib.h b/third_party/raylib/include/raylib.h index 1c4c4a09fa..56abfa7a55 100644 --- a/third_party/raylib/include/raylib.h +++ b/third_party/raylib/include/raylib.h @@ -1,22 +1,22 @@ /********************************************************************************************** * -* raylib v5.0 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* raylib v5.6-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) * * FEATURES: * - NO external dependencies, all required libraries included with raylib * - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, * MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. * - Written in plain C code (C99) in PascalCase/camelCase notation -* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES2 - choose at compile) +* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) * - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] -* - Multiple Fonts formats supported (TTF, XNA fonts, AngelCode fonts) +* - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) * - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) * - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! * - Flexible Materials system, supporting classic maps and PBR maps -* - Animated 3D models supported (skeletal bones animation) (IQM) +* - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) * - Shaders support, including Model shaders and Postprocessing shaders * - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] -* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD) +* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD) * - VR stereo rendering with configurable HMD device parameters * - Bindings to multiple programming languages available! * @@ -27,29 +27,35 @@ * - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) * * DEPENDENCIES (included): -* [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP) -* [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP) +* [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input +* [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading * [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management * * OPTIONAL DEPENDENCIES (included): * [rcore] msf_gif (Miles Fogle) for GIF recording * [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm * [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +* [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation +* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage * [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) * [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) -* [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms +* [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms +* [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation * [rtext] stb_truetype (Sean Barret) for ttf fonts loading * [rtext] stb_rect_pack (Sean Barret) for rectangles packing * [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation * [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) * [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) -* [rmodels] Model3D (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) * [raudio] dr_wav (David Reid) for WAV audio file loading * [raudio] dr_flac (David Reid) for FLAC audio file loading * [raudio] dr_mp3 (David Reid) for MP3 audio file loading * [raudio] stb_vorbis (Sean Barret) for OGG audio loading * [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading * [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage * * * LICENSE: zlib/libpng @@ -57,7 +63,7 @@ * raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software: * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -82,21 +88,26 @@ #include // Required for: va_list - Only used by TraceLogCallback #define RAYLIB_VERSION_MAJOR 5 -#define RAYLIB_VERSION_MINOR 0 +#define RAYLIB_VERSION_MINOR 6 #define RAYLIB_VERSION_PATCH 0 -#define RAYLIB_VERSION "5.0" +#define RAYLIB_VERSION "5.6-dev" -// Function specifiers in case library is build/used as a shared library (Windows) +// Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden #if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif #if defined(BUILD_LIBTYPE_SHARED) - #if defined(__TINYC__) - #define __declspec(x) __attribute__((x)) - #endif #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) #elif defined(USE_LIBTYPE_SHARED) #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) + #endif #endif #ifndef RLAPI @@ -347,8 +358,10 @@ typedef struct Mesh { // Animation vertex data float *animVertices; // Animated vertex positions (after bones transformations) float *animNormals; // Animated normals (after bones transformations) - unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) - float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) + unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6) + float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + Matrix *boneMatrices; // Bones animated transformation matrices + int boneCount; // Number of bones // OpenGL identifiers unsigned int vaoId; // OpenGL Vertex Array Object id @@ -416,7 +429,7 @@ typedef struct ModelAnimation { // Ray, ray for raycasting typedef struct Ray { Vector3 position; // Ray position (origin) - Vector3 direction; // Ray direction + Vector3 direction; // Ray direction (normalized) } Ray; // RayCollision, ray hit information @@ -479,7 +492,6 @@ typedef struct VrDeviceInfo { int vResolution; // Vertical resolution in pixels float hScreenSize; // Horizontal size in meters float vScreenSize; // Vertical size in meters - float vScreenCenter; // Screen center in meters float eyeToScreenDistance; // Distance between eye and display in meters float lensSeparationDistance; // Lens separation distance in meters float interpupillaryDistance; // IPD (distance between pupils) in meters @@ -673,7 +685,7 @@ typedef enum { KEY_KP_EQUAL = 336, // Key: Keypad = // Android key buttons KEY_BACK = 4, // Key: Android back button - KEY_MENU = 82, // Key: Android menu button + KEY_MENU = 5, // Key: Android menu button KEY_VOLUME_UP = 24, // Key: Android volume up button KEY_VOLUME_DOWN = 25 // Key: Android volume down button } KeyboardKey; @@ -717,12 +729,12 @@ typedef enum { GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) - GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (one), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) @@ -786,7 +798,10 @@ typedef enum { SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf + SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf + SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: boneIds + SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: boneWeights + SHADER_LOC_BONE_MATRICES // Shader location: array of matrices uniform: boneMatrices } ShaderLocationIndex; #define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO @@ -868,8 +883,7 @@ typedef enum { CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces - CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE, // Layout is defined by a 4x3 cross with cubemap faces - CUBEMAP_LAYOUT_PANORAMA // Layout is defined by a panorama image (equirrectangular map) + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces } CubemapLayout; // Font type, defines generation method @@ -909,11 +923,11 @@ typedef enum { // Camera system modes typedef enum { - CAMERA_CUSTOM = 0, // Custom camera - CAMERA_FREE, // Free camera - CAMERA_ORBITAL, // Orbital camera - CAMERA_FIRST_PERSON, // First person camera - CAMERA_THIRD_PERSON // Third person camera + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person } CameraMode; // Camera projection @@ -930,7 +944,7 @@ typedef enum { } NPatchLayout; // Callbacks to hook some internal functions -// WARNING: These callbacks are intended for advance users +// WARNING: These callbacks are intended for advanced users typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data @@ -956,36 +970,36 @@ RLAPI void CloseWindow(void); // Close windo RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen -RLAPI bool IsWindowHidden(void); // Check if window is currently hidden (only PLATFORM_DESKTOP) -RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized (only PLATFORM_DESKTOP) -RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized (only PLATFORM_DESKTOP) -RLAPI bool IsWindowFocused(void); // Check if window is currently focused (only PLATFORM_DESKTOP) +RLAPI bool IsWindowHidden(void); // Check if window is currently hidden +RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized +RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized +RLAPI bool IsWindowFocused(void); // Check if window is currently focused RLAPI bool IsWindowResized(void); // Check if window has been resized last frame RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled -RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags (only PLATFORM_DESKTOP) +RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags -RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) -RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed (only PLATFORM_DESKTOP) -RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable (only PLATFORM_DESKTOP) -RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable (only PLATFORM_DESKTOP) -RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized (only PLATFORM_DESKTOP) -RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) -RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) -RLAPI void SetWindowTitle(const char *title); // Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) -RLAPI void SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP) +RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution +RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution +RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable +RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable +RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized +RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) +RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) +RLAPI void SetWindowTitle(const char *title); // Set title for window +RLAPI void SetWindowPosition(int x, int y); // Set window position on screen RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) RLAPI void SetWindowSize(int width, int height); // Set window dimensions -RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) -RLAPI void SetWindowFocused(void); // Set window focused (only PLATFORM_DESKTOP) +RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] +RLAPI void SetWindowFocused(void); // Set window focused RLAPI void *GetWindowHandle(void); // Get native window handle RLAPI int GetScreenWidth(void); // Get current screen width RLAPI int GetScreenHeight(void); // Get current screen height RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) RLAPI int GetMonitorCount(void); // Get number of connected monitors -RLAPI int GetCurrentMonitor(void); // Get current connected monitor +RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) @@ -997,6 +1011,7 @@ RLAPI Vector2 GetWindowScaleDPI(void); // Get window RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor RLAPI void SetClipboardText(const char *text); // Set clipboard text content RLAPI const char *GetClipboardText(void); // Get clipboard text content +RLAPI Image GetClipboardImage(void); // Get clipboard image content RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling @@ -1035,7 +1050,7 @@ RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR s // NOTE: Shader functionality is not available on OpenGL 1.1 RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations -RLAPI bool IsShaderReady(Shader shader); // Check if a shader is ready +RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value @@ -1045,13 +1060,15 @@ RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) // Screen-space-related functions -RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position -RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) -RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix -RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position -RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport +RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position -RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position +RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position +RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix // Timing-related functions RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) @@ -1060,7 +1077,7 @@ RLAPI double GetTime(void); // Get elapsed RLAPI int GetFPS(void); // Get current FPS // Custom frame control functions -// NOTE: Those functions are intended for advance users that want full control over the frame processing +// NOTE: Those functions are intended for advanced users that want full control over the frame processing // By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() // To avoid that behaviour and control frame processes manually, enable in config.h: SUPPORT_CUSTOM_FRAME_CONTROL RLAPI void SwapScreenBuffer(void); // Swap back buffer with front buffer (screen drawing) @@ -1087,7 +1104,7 @@ RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal me RLAPI void MemFree(void *ptr); // Internal memory free // Set custom callbacks -// WARNING: Callbacks setup is intended for advance users +// WARNING: Callbacks setup is intended for advanced users RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver @@ -1116,10 +1133,12 @@ RLAPI const char *GetDirectoryPath(const char *filePath); // Get full pa RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths -RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan +RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths @@ -1131,10 +1150,14 @@ RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int * RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) + // Automation events functionality RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList *list); // Unload automation events list from file +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording @@ -1148,7 +1171,7 @@ RLAPI void PlayAutomationEvent(AutomationEvent event); // Input-related functions: keyboard RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once -RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again (Only PLATFORM_DESKTOP) +RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again RLAPI bool IsKeyDown(int key); // Check if a key is being pressed RLAPI bool IsKeyReleased(int key); // Check if a key has been released once RLAPI bool IsKeyUp(int key); // Check if a key is NOT being pressed @@ -1157,16 +1180,17 @@ RLAPI int GetCharPressed(void); // Get char presse RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) // Input-related functions: gamepads -RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available -RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id -RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once -RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed -RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once -RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed -RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed -RLAPI int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad -RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis -RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available +RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id +RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once +RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed +RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once +RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed +RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed +RLAPI int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad +RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis +RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) // Input-related functions: mouse RLAPI bool IsMouseButtonPressed(int button); // Check if a mouse button has been pressed once @@ -1197,7 +1221,7 @@ RLAPI int GetTouchPointCount(void); // Get number of t RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected RLAPI int GetGestureDetected(void); // Get latest detected gesture -RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector RLAPI float GetGestureDragAngle(void); // Get gesture drag angle RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta @@ -1216,19 +1240,21 @@ RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, f // NOTE: It can be useful when using basic shapes and one single font, // defining a font char white rectangle would allow drawing everything in a single draw call RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing +RLAPI Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing // Basic shapes drawing functions -RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel -RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) +RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] +RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) -RLAPI void DrawLineStrip(Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation RLAPI void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle RLAPI void DrawCircleSector(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw a piece of a circle RLAPI void DrawCircleSectorLines(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw circle sector outline -RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle +RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer); // Draw a gradient-filled circle RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) @@ -1240,27 +1266,28 @@ RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color) RLAPI void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) RLAPI void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle RLAPI void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters -RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a vertical-gradient-filled rectangle -RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a horizontal-gradient-filled rectangle -RLAPI void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // Draw a gradient-filled rectangle with custom vertex colors +RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color top, Color bottom); // Draw a vertical-gradient-filled rectangle +RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight); // Draw a gradient-filled rectangle with custom vertex colors RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline RLAPI void DrawRectangleLinesEx(Rectangle rec, float lineThick, Color color); // Draw rectangle outline with extended parameters RLAPI void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle with rounded edges -RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline +RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline (vertex in counter-clockwise order!) -RLAPI void DrawTriangleFan(Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) -RLAPI void DrawTriangleStrip(Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawTriangleFan(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points RLAPI void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) RLAPI void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a polygon outline of n sides RLAPI void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color); // Draw a polygon outline of n sides with extended parameters // Splines drawing functions -RLAPI void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points -RLAPI void DrawSplineBasis(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points -RLAPI void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points -RLAPI void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -RLAPI void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points @@ -1278,12 +1305,13 @@ RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vect RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle -RLAPI bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices -RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] +RLAPI bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision //------------------------------------------------------------------------------------ @@ -1294,12 +1322,12 @@ RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // NOTE: These functions do not require GPU access RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM) RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data -RLAPI Image LoadImageSvg(const char *fileNameOrString, int width, int height); // Load image from SVG file data or string with specified size RLAPI Image LoadImageAnim(const char *fileName, int *frames); // Load image sequence from file (frames appended to image.data) +RLAPI Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer RLAPI Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. '.png' RLAPI Image LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data RLAPI Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot) -RLAPI bool IsImageReady(Image image); // Check if an image is ready +RLAPI bool IsImageValid(Image image); // Check if an image is valid (data and parameters) RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM) RLAPI bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success RLAPI unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer @@ -1319,6 +1347,7 @@ RLAPI Image GenImageText(int width, int height, const char *text); // Image manipulation functions RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece +RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format @@ -1329,9 +1358,10 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to image RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) -RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color +RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color RLAPI void ImageMipmaps(Image *image); // Compute all mipmap levels for a provided image RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) RLAPI void ImageFlipVertical(Image *image); // Flip image vertically @@ -1359,6 +1389,7 @@ RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image @@ -1367,6 +1398,11 @@ RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int hei RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) @@ -1377,9 +1413,9 @@ RLAPI Texture2D LoadTexture(const char *fileName); RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) -RLAPI bool IsTextureReady(Texture2D texture); // Check if a texture is ready +RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) -RLAPI bool IsRenderTextureReady(RenderTexture2D target); // Check if a render texture is ready +RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data @@ -1398,8 +1434,9 @@ RLAPI void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, V RLAPI void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draws a texture (or part of it) that stretches or shrinks nicely // Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal RLAPI Color Fade(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f -RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color +RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color (0xRRGGBBAA) RLAPI Vector4 ColorNormalize(Color color); // Get Color normalized as float [0..1] RLAPI Color ColorFromNormalized(Vector4 normalized); // Get Color from normalized values [0..1] RLAPI Vector3 ColorToHSV(Color color); // Get HSV values for a Color, hue [0..360], saturation/value [0..1] @@ -1409,6 +1446,7 @@ RLAPI Color ColorBrightness(Color color, float factor); // G RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f RLAPI Color ColorAlpha(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f RLAPI Color ColorAlphaBlend(Color dst, Color src, Color tint); // Get src alpha-blended into dst color with tint +RLAPI Color ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] RLAPI Color GetColor(unsigned int hexValue); // Get Color structure from hexadecimal value RLAPI Color GetPixelColor(void *srcPtr, int format); // Get Color from a source pixel pointer of certain format RLAPI void SetPixelColor(void *dstPtr, Color color, int format); // Set color formatted into destination pixel pointer @@ -1421,10 +1459,10 @@ RLAPI int GetPixelDataSize(int width, int height, int format); // G // Font loading/unloading functions RLAPI Font GetFontDefault(void); // Get the default Font RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) -RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set +RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' -RLAPI bool IsFontReady(Font font); // Check if a font is ready +RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) @@ -1465,7 +1503,7 @@ RLAPI bool TextIsEqual(const char *text1, const char *text2); RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending RLAPI const char *TextFormat(const char *text, ...); // Text formatting with variables (sprintf() style) RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string -RLAPI char *TextReplace(char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) RLAPI const char *TextJoin(const char **textList, int count, const char *delimiter); // Join text strings with delimiter RLAPI const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings @@ -1474,7 +1512,11 @@ RLAPI int TextFindIndex(const char *text, const char *find); RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string +RLAPI const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) @@ -1485,7 +1527,7 @@ RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); RLAPI void DrawPoint3D(Vector3 position, Color color); // Draw a point in 3D space, actually a small line RLAPI void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space RLAPI void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) -RLAPI void DrawTriangleStrip3D(Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawTriangleStrip3D(const Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points RLAPI void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube RLAPI void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) RLAPI void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires @@ -1510,7 +1552,7 @@ RLAPI void DrawGrid(int slices, float spacing); // Model management functions RLAPI Model LoadModel(const char *fileName); // Load model from files (meshes and materials) RLAPI Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh (default material) -RLAPI bool IsModelReady(Model model); // Check if a model is ready +RLAPI bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) @@ -1519,8 +1561,10 @@ RLAPI void DrawModel(Model model, Vector3 position, float scale, Color tint); RLAPI void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters RLAPI void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) RLAPI void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters +RLAPI void DrawModelPoints(Model model, Vector3 position, float scale, Color tint); // Draw a model as points +RLAPI void DrawModelPointsEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model as points with extended parameters RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) -RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float size, Color tint); // Draw a billboard texture +RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, Color tint); // Draw a billboard texture RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint); // Draw a billboard texture defined by source RLAPI void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint); // Draw a billboard texture defined by source and rotation @@ -1530,9 +1574,10 @@ RLAPI void UpdateMeshBuffer(Mesh mesh, int index, const void *data, int dataSize RLAPI void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU RLAPI void DrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform RLAPI void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms -RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes // Mesh generation functions RLAPI Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh @@ -1550,14 +1595,15 @@ RLAPI Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Material loading/unloading functions RLAPI Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file RLAPI Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) -RLAPI bool IsMaterialReady(Material material); // Check if a material is ready +RLAPI bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) RLAPI void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) RLAPI void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh // Model animations loading/unloading functions RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file -RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose +RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU) +RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning) RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // Unload animation array data RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match @@ -1587,11 +1633,11 @@ RLAPI float GetMasterVolume(void); // Get mas // Wave/Sound loading/unloading functions RLAPI Wave LoadWave(const char *fileName); // Load wave data from file RLAPI Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. '.wav' -RLAPI bool IsWaveReady(Wave wave); // Checks if wave data is ready +RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) RLAPI Sound LoadSound(const char *fileName); // Load sound from file RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data -RLAPI bool IsSoundReady(Sound sound); // Checks if a sound is ready +RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data RLAPI void UnloadWave(Wave wave); // Unload wave data RLAPI void UnloadSound(Sound sound); // Unload sound @@ -1609,7 +1655,7 @@ RLAPI void SetSoundVolume(Sound sound, float volume); // Set vol RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave -RLAPI void WaveCrop(Wave *wave, int initSample, int finalSample); // Crop a wave to defined samples range +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() @@ -1617,7 +1663,7 @@ RLAPI void UnloadWaveSamples(float *samples); // Unload // Music management functions RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data -RLAPI bool IsMusicReady(Music music); // Checks if a music stream is ready +RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) RLAPI void UnloadMusicStream(Music music); // Unload music stream RLAPI void PlayMusicStream(Music music); // Start music playing RLAPI bool IsMusicStreamPlaying(Music music); // Check if music is playing @@ -1634,7 +1680,7 @@ RLAPI float GetMusicTimePlayed(Music music); // Get cur // AudioStream management functions RLAPI AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) -RLAPI bool IsAudioStreamReady(AudioStream stream); // Checks if an audio stream is ready +RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) RLAPI void UnloadAudioStream(AudioStream stream); // Unload audio stream and free memory RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int frameCount); // Update audio stream buffers with data RLAPI bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill @@ -1649,10 +1695,10 @@ RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data -RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as s +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream -RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as s +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline #if defined(__cplusplus) diff --git a/third_party/raylib/include/raymath.h b/third_party/raylib/include/raymath.h index ff60170390..5b5e4c74ff 100644 --- a/third_party/raylib/include/raymath.h +++ b/third_party/raylib/include/raymath.h @@ -1,6 +1,6 @@ /********************************************************************************************** * -* raymath v1.5 - Math functions to work with Vector2, Vector3, Matrix and Quaternions +* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions * * CONVENTIONS: * - Matrix structure is defined as row-major (memory layout) but parameters naming AND all @@ -12,7 +12,7 @@ * - Functions are always self-contained, no function use another raymath function inside, * required code is directly re-implemented inside * - Functions input parameters are always received by value (2 unavoidable exceptions) -* - Functions use always a "result" variable for return +* - Functions use always a "result" variable for return (except C++ operators) * - Functions are always defined inline * - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) * - No compound literals used to make sure libray is compatible with C++ @@ -27,10 +27,12 @@ * Define static inline functions code, so #include header suffices for use. * This may use up lots of memory. * +* #define RAYMATH_DISABLE_CPP_OPERATORS +* Disables C++ operator overloads for raymath types. * * LICENSE: zlib/libpng * -* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -59,7 +61,9 @@ // Function specifiers definition #if defined(RAYMATH_IMPLEMENTATION) #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll). + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) #else @@ -75,6 +79,7 @@ #endif #endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -163,7 +168,7 @@ typedef struct float16 { float v[16]; } float16; -#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabs() +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() //---------------------------------------------------------------------------------- // Module Functions Definition - Utils math @@ -299,6 +304,14 @@ RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) return result; } +// Calculate two vectors cross product +RMAPI float Vector2CrossProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.y - v1.y*v2.x); + + return result; +} + // Calculate distance between two vectors RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) { @@ -429,6 +442,28 @@ RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) return result; } +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + // Rotate vector by angle RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) { @@ -492,18 +527,18 @@ RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) { length = sqrtf(length); + float scale = 1; // By default, 1 as the neutral element. if (length < min) { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; + scale = min/length; } else if (length > max) { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; + scale = max/length; } + + result.x = v.x*scale; + result.y = v.y*scale; } return result; @@ -522,6 +557,31 @@ RMAPI int Vector2Equals(Vector2 p, Vector2 q) return result; } +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + //---------------------------------------------------------------------------------- // Module Functions Definition - Vector3 math //---------------------------------------------------------------------------------- @@ -603,12 +663,12 @@ RMAPI Vector3 Vector3Perpendicular(Vector3 v) { Vector3 result = { 0 }; - float min = (float) fabs(v.x); + float min = fabsf(v.x); Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; if (fabsf(v.y) < min) { - min = (float) fabs(v.y); + min = fabsf(v.y); Vector3 tmp = {0.0f, 1.0f, 0.0f}; cardinalAxis = tmp; } @@ -728,7 +788,7 @@ RMAPI Vector3 Vector3Normalize(Vector3 v) RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) { Vector3 result = { 0 }; - + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); @@ -745,7 +805,7 @@ RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) { Vector3 result = { 0 }; - + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); @@ -832,7 +892,7 @@ RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) // Vector3Normalize(axis); float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); if (length == 0.0f) length = 1.0f; - float ilength = 1.0f / length; + float ilength = 1.0f/length; axis.x *= ilength; axis.y *= ilength; axis.z *= ilength; @@ -873,6 +933,27 @@ RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) return result; } +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + // Calculate linear interpolation between two vectors RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) { @@ -885,6 +966,22 @@ RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) return result; } +// Calculate cubic hermite interpolation between two vectors and their tangents +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount*amount; + float amountPow3 = amount*amount*amount; + + result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; + result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; + result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; + + return result; +} + // Calculate reflected vector to normal RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) { @@ -1078,20 +1175,19 @@ RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) { length = sqrtf(length); + float scale = 1; // By default, 1 as the neutral element. if (length < min) { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; + scale = min/length; } else if (length > max) { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; + scale = max/length; } + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; } return result; @@ -1136,6 +1232,233 @@ RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) return result; } + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- + +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + //---------------------------------------------------------------------------------- // Module Functions Definition - Matrix math //---------------------------------------------------------------------------------- @@ -1524,32 +1847,32 @@ RMAPI Matrix MatrixScale(float x, float y, float z) } // Get perspective projection matrix -RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far) +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) { Matrix result = { 0 }; float rl = (float)(right - left); float tb = (float)(top - bottom); - float fn = (float)(far - near); + float fn = (float)(farPlane - nearPlane); - result.m0 = ((float)near*2.0f)/rl; + result.m0 = ((float)nearPlane*2.0f)/rl; result.m1 = 0.0f; result.m2 = 0.0f; result.m3 = 0.0f; result.m4 = 0.0f; - result.m5 = ((float)near*2.0f)/tb; + result.m5 = ((float)nearPlane*2.0f)/tb; result.m6 = 0.0f; result.m7 = 0.0f; result.m8 = ((float)right + (float)left)/rl; result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)far + (float)near)/fn; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; result.m11 = -1.0f; result.m12 = 0.0f; result.m13 = 0.0f; - result.m14 = -((float)far*(float)near*2.0f)/fn; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; result.m15 = 0.0f; return result; @@ -1901,6 +2224,32 @@ RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) return result; } +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) +{ + float t2 = t*t; + float t3 = t2*t; + float h00 = 2*t3 - 3*t2 + 1; + float h10 = t3 - 2*t2 + t; + float h01 = -2*t3 + 3*t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); + + return result; +} + // Calculate quaternion based on the rotation from one vector to another RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) { @@ -1960,7 +2309,7 @@ RMAPI Quaternion QuaternionFromMatrix(Matrix mat) } float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; - float mult = 0.25f / biggestVal; + float mult = 0.25f/biggestVal; switch (biggestIndex) { @@ -2042,8 +2391,7 @@ RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) float ilength = 0.0f; // Vector3Normalize(axis) - Vector3 v = axis; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + length = axisLength; if (length == 0.0f) length = 1.0f; ilength = 1.0f/length; axis.x *= ilength; @@ -2187,4 +2535,415 @@ RMAPI int QuaternionEquals(Quaternion p, Quaternion q) return result; } +// Decompose a transformation matrix into its rotational, translational and scaling components +RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) +{ + // Extract translation. + translation->x = mat.m12; + translation->y = mat.m13; + translation->z = mat.m14; + + // Extract upper-left for determinant computation + const float a = mat.m0; + const float b = mat.m4; + const float c = mat.m8; + const float d = mat.m1; + const float e = mat.m5; + const float f = mat.m9; + const float g = mat.m2; + const float h = mat.m6; + const float i = mat.m10; + const float A = e*i - f*h; + const float B = f*g - d*i; + const float C = d*h - e*g; + + // Extract scale + const float det = a*A + b*B + c*C; + Vector3 abc = { a, b, c }; + Vector3 def = { d, e, f }; + Vector3 ghi = { g, h, i }; + + float scalex = Vector3Length(abc); + float scaley = Vector3Length(def); + float scalez = Vector3Length(ghi); + Vector3 s = { scalex, scaley, scalez }; + + if (det < 0) s = Vector3Negate(s); + + *scale = s; + + // Remove scale from the matrix if it is not close to zero + Matrix clone = mat; + if (!FloatEquals(det, 0)) + { + clone.m0 /= s.x; + clone.m4 /= s.x; + clone.m8 /= s.x; + clone.m1 /= s.y; + clone.m5 /= s.y; + clone.m9 /= s.y; + clone.m2 /= s.z; + clone.m6 /= s.z; + clone.m10 /= s.z; + + // Extract rotation + *rotation = QuaternionFromMatrix(clone); + } + else + { + // Set to identity if close to zero + *rotation = QuaternionIdentity(); + } +} + +#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) + +// Optional C++ math operators +//------------------------------------------------------------------------------- + +// Vector2 operators +static constexpr Vector2 Vector2Zeros = { 0, 0 }; +static constexpr Vector2 Vector2Ones = { 1, 1 }; +static constexpr Vector2 Vector2UnitX = { 1, 0 }; +static constexpr Vector2 Vector2UnitY = { 0, 1 }; + +inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Add(lhs, rhs); +} + +inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Add(lhs, rhs); + return lhs; +} + +inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Subtract(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Subtract(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Multiply(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Multiply(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) +{ + return Vector2Transform(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Matrix& rhs) +{ + lhs = Vector2Transform(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, 1.0f / rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, 1.0f / rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Divide(lhs, rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector2& lhs, const Vector2& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); +} + +inline bool operator != (const Vector2& lhs, const Vector2& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); +} + +// Vector3 operators +static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; +static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; +static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; +static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; +static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; + +inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Add(lhs, rhs); +} + +inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Add(lhs, rhs); + return lhs; +} + +inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Subtract(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Subtract(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Multiply(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Multiply(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) +{ + return Vector3Transform(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Matrix& rhs) +{ + lhs = Vector3Transform(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, 1.0f / rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, 1.0f / rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Divide(lhs, rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector3& lhs, const Vector3& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); +} + +inline bool operator != (const Vector3& lhs, const Vector3& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); +} + +// Vector4 operators +static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; +static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; +static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; +static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; +static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; +static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; + +inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Add(lhs, rhs); +} + +inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Add(lhs, rhs); + return lhs; +} + +inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Subtract(lhs, rhs); +} + +inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Subtract(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Multiply(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Multiply(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, 1.0f / rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, 1.0f / rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Divide(lhs, rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector4& lhs, const Vector4& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); +} + +inline bool operator != (const Vector4& lhs, const Vector4& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); +} + +// Quaternion operators +static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; +static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; +static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; + +inline Quaternion operator + (const Quaternion& lhs, const float& rhs) +{ + return QuaternionAddValue(lhs, rhs); +} + +inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionAddValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator - (const Quaternion& lhs, const float& rhs) +{ + return QuaternionSubtractValue(lhs, rhs); +} + +inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionSubtractValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) +{ + return QuaternionTransform(lhs, rhs); +} + +inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) +{ + lhs = QuaternionTransform(lhs, rhs); + return lhs; +} + +// Matrix operators +inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixAdd(lhs, rhs); +} + +inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixAdd(lhs, rhs); + return lhs; +} + +inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixSubtract(lhs, rhs); +} + +inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixSubtract(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixMultiply(lhs, rhs); +} + +inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixMultiply(lhs, rhs); + return lhs; +} +//------------------------------------------------------------------------------- +#endif // C++ operators + #endif // RAYMATH_H diff --git a/third_party/raylib/include/rlgl.h b/third_party/raylib/include/rlgl.h index 6cf9c7e99d..92971df627 100644 --- a/third_party/raylib/include/rlgl.h +++ b/third_party/raylib/include/rlgl.h @@ -1,24 +1,24 @@ /********************************************************************************************** * -* rlgl v4.5 - A multi-OpenGL abstraction layer with an immediate-mode style API +* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API * * DESCRIPTION: -* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0, ES 3.0) * that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) * * ADDITIONAL NOTES: * When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are -* initialized on rlglInit() to accumulate vertex data. +* initialized on rlglInit() to accumulate vertex data * * When an internal state change is required all the stored vertex data is renderer in batch, -* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch. +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch * * Some resources are also loaded for convenience, here the complete list: * - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data * - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 * - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) * -* Internal buffer (and resources) must be manually unloaded calling rlglClose(). +* Internal buffer (and resources) must be manually unloaded calling rlglClose() * * CONFIGURATION: * #define GRAPHICS_API_OPENGL_11 @@ -32,9 +32,9 @@ * required by any other module, use rlGetVersion() to check it * * #define RLGL_IMPLEMENTATION -* Generates the implementation of the library into the included file. +* Generates the implementation of the library into the included file * If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. +* or source files without problems. But only ONE file should hold the implementation * * #define RLGL_RENDER_TEXTURES_HINT * Enable framebuffer objects (fbo) support (enabled by default) @@ -62,18 +62,21 @@ * When loading a shader, the following vertex attributes and uniform * location names are tried to be set automatically: * -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) * #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) @@ -85,7 +88,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -107,16 +110,17 @@ #ifndef RLGL_H #define RLGL_H -#define RLGL_VERSION "4.5" +#define RLGL_VERSION "5.0" -// Function specifiers in case library is build/used as a shared library (Windows) +// Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -#if defined(_WIN32) - #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) - #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) - #endif +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif // Function specifiers definition @@ -318,6 +322,39 @@ #define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA #define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER + +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 +#endif +#ifdef RL_SUPPORT_MESH_GPU_SKINNING +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 +#endif +#endif //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -346,6 +383,7 @@ typedef struct rlVertexBuffer { float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) @@ -354,7 +392,7 @@ typedef struct rlVertexBuffer { unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) #endif unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[4]; // OpenGL Vertex Buffer Objects id (4 types of vertex data) + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) } rlVertexBuffer; // Draw call type @@ -503,6 +541,10 @@ typedef enum { RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d } rlShaderUniformDataType; @@ -555,30 +597,33 @@ typedef enum { extern "C" { // Prevents name mangling of functions #endif -RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed -RLAPI void rlPushMatrix(void); // Push the current matrix to stack -RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack -RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix -RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix -RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix -RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix -RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far //------------------------------------------------------------------------------------ // Functions Declaration - Vertex level operations //------------------------------------------------------------------------------------ -RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) -RLAPI void rlEnd(void); // Finish vertex providing -RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int -RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float -RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float -RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float -RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float -RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte -RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float //------------------------------------------------------------------------------------ @@ -592,13 +637,13 @@ RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array ( RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) -RLAPI void rlEnableVertexBufferElement(unsigned int id);// Enable vertex buffer element (VBO element) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index -RLAPI void rlDisableVertexAttribute(unsigned int index);// Disable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index #if defined(GRAPHICS_API_OPENGL_11) -RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer -RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer #endif // Textures state @@ -617,11 +662,13 @@ RLAPI void rlDisableShader(void); // Disable shader progra // Framebuffer state RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) // General render state -RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlEnableColorBlend(void); // Enable color blending RLAPI void rlDisableColorBlend(void); // Disable color blending RLAPI void rlEnableDepthTest(void); // Enable depth test RLAPI void rlDisableDepthTest(void); // Disable depth test @@ -629,13 +676,14 @@ RLAPI void rlEnableDepthMask(void); // Enable depth write RLAPI void rlDisableDepthMask(void); // Disable depth write RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control RLAPI void rlSetCullFace(int mode); // Set face culling mode RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlEnablePointMode(void); // Enable point mode -RLAPI void rlDisableWireMode(void); // Disable wire mode ( and point ) maybe rename +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode RLAPI void rlSetLineWidth(float width); // Set the line drawing width RLAPI float rlGetLineWidth(void); // Get the line drawing width RLAPI void rlEnableSmoothLines(void); // Enable line aliasing @@ -671,48 +719,48 @@ RLAPI int *rlGetShaderLocsDefault(void); // Get default shader lo // Render batch management // NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode // but this render batch API is exposed in case of custom batches are required -RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system -RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system -RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) -RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) -RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch -RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits //------------------------------------------------------------------------------------------------------------------------ // Vertex buffers management -RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported -RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer attribute -RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load a new attributes element buffer -RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update GPU buffer with new data -RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements with new data -RLAPI void rlUnloadVertexArray(unsigned int vaoId); -RLAPI void rlUnloadVertexBuffer(unsigned int vboId); -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer); -RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); -RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value -RLAPI void rlDrawVertexArray(int offset, int count); -RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); -RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); -RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing // Textures management -RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture in GPU -RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) -RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format); // Load texture cubemap -RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update GPU texture with new data -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture -RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) // Framebuffer management (fbo) -RLAPI unsigned int rlLoadFramebuffer(int width, int height); // Load an empty framebuffer -RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer +RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU @@ -723,14 +771,15 @@ RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fSha RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) // Compute shader management RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program -RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) // Shader buffer storage object management (ssbo) RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) @@ -773,6 +822,12 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #if defined(RLGL_IMPLEMENTATION) +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT + #define GLAD_API_CALL_EXPORT_BUILD +#endif + #if defined(GRAPHICS_API_OPENGL_11) #if defined(__APPLE__) #include // OpenGL 1.1 library for OSX @@ -808,9 +863,9 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #define GL_GLEXT_PROTOTYPES #include // OpenGL ES 2.0 extensions library #elif defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 can be enabled on PLATFORM_DESKTOP, + // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) #define GLAD_GLES2_IMPLEMENTATION #include "external/glad_gles2.h" #else @@ -891,6 +946,14 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #endif +#ifndef GL_PROGRAM_POINT_SIZE + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + #if defined(GRAPHICS_API_OPENGL_11) #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 @@ -912,22 +975,28 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad // Default shader vertex attribute names to set location points #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS #endif #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP @@ -948,6 +1017,9 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) #endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES + #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +#endif #ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) #endif @@ -1042,6 +1114,9 @@ typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) static rlglData RLGL = { 0 }; #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 @@ -1072,8 +1147,15 @@ static const char *rlGetCompressedFormatName(int format); // Get compressed form static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) // Auxiliar matrix math functions +typedef struct rl_float16 { + float v[16]; +} rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix static Matrix rlMatrixIdentity(void); // Get identity matrix static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix //---------------------------------------------------------------------------------- // Module Functions Definition - Matrix operations @@ -1242,7 +1324,7 @@ void rlMultMatrixf(const float *matf) matf[2], matf[6], matf[10], matf[14], matf[3], matf[7], matf[11], matf[15] }; - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, mat); + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); } // Multiply the current matrix by a perspective matrix generated by parameters @@ -1316,6 +1398,25 @@ void rlViewport(int x, int y, int width, int height) glViewport(x, y, width, height); } +// Set clip planes distances +void rlSetClipPlanes(double nearPlane, double farPlane) +{ + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + //---------------------------------------------------------------------------------- // Module Functions Definition - Vertex level operations //---------------------------------------------------------------------------------- @@ -1333,7 +1434,7 @@ void rlBegin(int mode) } } -void rlEnd() { glEnd(); } +void rlEnd(void) { glEnd(); } void rlVertex2i(int x, int y) { glVertex2i(x, y); } void rlVertex2f(float x, float y) { glVertex2f(x, y); } void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } @@ -1402,8 +1503,8 @@ void rlVertex3f(float x, float y, float z) tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; } - // WARNING: We can't break primitives when launching a new batch. - // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices. + // WARNING: We can't break primitives when launching a new batch + // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) { @@ -1436,7 +1537,10 @@ void rlVertex3f(float x, float y, float z) RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - // WARNING: By default rlVertexBuffer struct does not store normals + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; // Add current color RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; @@ -1472,9 +1576,26 @@ void rlTexCoord2f(float x, float y) // NOTE: Normals limited to TRIANGLES only? void rlNormal3f(float x, float y, float z) { - RLGL.State.normalx = x; - RLGL.State.normaly = y; - RLGL.State.normalz = z; + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f/length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; } // Define one vertex (color) @@ -1713,6 +1834,16 @@ void rlEnableFramebuffer(unsigned int id) #endif } +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ + GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); +#endif + return fboId; +} + // Disable rendering to texture void rlDisableFramebuffer(void) { @@ -1729,6 +1860,14 @@ void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX #endif } +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(target, framebuffer); +#endif +} + // Activate multiple draw color buffers // NOTE: One color buffer is always active by default void rlActiveDrawBuffers(int count) @@ -1805,6 +1944,9 @@ void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } // Disable backface culling void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } + // Set face culling mode void rlSetCullFace(int mode) { @@ -1834,6 +1976,7 @@ void rlEnableWireMode(void) #endif } +// Enable point mode void rlEnablePointMode(void) { #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) @@ -1842,6 +1985,7 @@ void rlEnablePointMode(void) glEnable(GL_PROGRAM_POINT_SIZE); #endif } + // Disable wire mode void rlDisableWireMode(void) { @@ -1924,7 +2068,7 @@ void rlClearScreenBuffers(void) } // Check and log OpenGL error codes -void rlCheckErrors() +void rlCheckErrors(void) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) int check = 1; @@ -2122,7 +2266,10 @@ void rlglInit(int width, int height) RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; RLGL.currentBatch = &RLGL.defaultBatch; // Init stack matrices (emulating OpenGL 1.1) @@ -2273,7 +2420,7 @@ void rlLoadExtensions(void *loader) #elif defined(GRAPHICS_API_OPENGL_ES2) - #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) // TODO: Support GLAD loader for OpenGL ES 3.0 if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); @@ -2325,25 +2472,47 @@ void rlLoadExtensions(void *loader) } // Check instanced rendering support - if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // Web ANGLE + if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); - - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - else - { - if ((strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) && // Standard EXT - (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0)) + // Specific check + if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); + } + else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT { glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); - - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; } + else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); + } + + // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) + { + // GL_ANGLE_draw_instanced doesn't exist + if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + } + else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + } + + // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; } // Check NPOT textures support @@ -2567,6 +2736,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad #if defined(GRAPHICS_API_OPENGL_33) batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) @@ -2577,6 +2747,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; int k = 0; @@ -2626,16 +2797,23 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - // Vertex color buffer (shader-location = 3) + // Vertex normal buffer (shader-location = 2) glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); // Fill index buffer - glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); #if defined(GRAPHICS_API_OPENGL_33) glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); #endif @@ -2690,10 +2868,10 @@ void rlUnloadRenderBatch(rlRenderBatch batch) if (RLGL.ExtSupported.vao) { glBindVertexArray(batch.vertexBuffer[i].vaoId); - glDisableVertexAttribArray(0); - glDisableVertexAttribArray(1); - glDisableVertexAttribArray(2); - glDisableVertexAttribArray(3); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); glBindVertexArray(0); } @@ -2702,6 +2880,7 @@ void rlUnloadRenderBatch(rlRenderBatch batch) glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); // Delete VAOs from GPU (VRAM) if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); @@ -2709,6 +2888,7 @@ void rlUnloadRenderBatch(rlRenderBatch batch) // Free vertex arrays memory from CPU (RAM) RL_FREE(batch.vertexBuffer[i].vertices); RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); RL_FREE(batch.vertexBuffer[i].colors); RL_FREE(batch.vertexBuffer[i].indices); } @@ -2743,16 +2923,21 @@ void rlDrawRenderBatch(rlRenderBatch *batch) glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer - // Colors buffer + // Normals buffer glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer - // NOTE: glMapBuffer() causes sync issue. - // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job. - // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer(). + // NOTE: glMapBuffer() causes sync issue + // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job + // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new - // allocated pointer immediately even if GPU is still working with the previous data. + // allocated pointer immediately even if GPU is still working with the previous data // Another option: map the buffer object into client's memory // Probably this code could be moved somewhere else... @@ -2797,13 +2982,30 @@ void rlDrawRenderBatch(rlRenderBatch *batch) // Create modelview-projection matrix and upload to shader Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); - float matMVPfloat[16] = { - matMVP.m0, matMVP.m1, matMVP.m2, matMVP.m3, - matMVP.m4, matMVP.m5, matMVP.m6, matMVP.m7, - matMVP.m8, matMVP.m9, matMVP.m10, matMVP.m11, - matMVP.m12, matMVP.m13, matMVP.m14, matMVP.m15 - }; - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, matMVPfloat); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); else @@ -2818,12 +3020,17 @@ void rlDrawRenderBatch(rlRenderBatch *batch) glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - // Bind vertex attrib: color (shader-location = 3) + // Bind vertex attrib: normal (shader-location = 2) glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); } // Setup some default shader values @@ -2853,15 +3060,15 @@ void rlDrawRenderBatch(rlRenderBatch *batch) if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); else { -#if defined(GRAPHICS_API_OPENGL_33) + #if defined(GRAPHICS_API_OPENGL_33) // We need to define the number of indices to be processed: elementCount*6 // NOTE: The final parameter tells the GPU the offset in bytes from the // start of the index buffer to the location of the first index to process glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); -#endif + #endif } vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); @@ -3179,11 +3386,17 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) // Load texture cubemap // NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), // expected the following convention: +X, -X, +Y, -Y, +Z, -Z -unsigned int rlLoadTextureCubemap(const void *data, int size, int format) +unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) { unsigned int id = 0; #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int mipSize = size; + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + unsigned int dataSize = rlGetPixelDataSize(size, size, format); glGenTextures(1, &id); @@ -3194,24 +3407,28 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format) if (glInternalFormat != 0) { - // Load cubemap faces - for (unsigned int i = 0; i < 6; i++) + // Load cubemap faces/mipmaps + for (int i = 0; i < 6*mipmapCount; i++) { + int mipmapLevel = i/6; + int face = i%6; + if (data == NULL) { if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) { - if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) - || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) - TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); - else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, NULL); + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); } else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); } else { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, (unsigned char *)data + i*dataSize); - else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, dataSize, (unsigned char *)data + i*dataSize); + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); + else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); } #if defined(GRAPHICS_API_OPENGL_33) @@ -3230,11 +3447,23 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format) glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); } #endif + if (face == 5) + { + mipSize /= 2; + if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipSize < 1) mipSize = 1; + + dataSize = rlGetPixelDataSize(mipSize, mipSize, format); + } } } // Set cubemap texture sampling parameters - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); @@ -3378,7 +3607,6 @@ void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int #endif } - // Read texture pixel data void *rlReadTexturePixels(unsigned int id, int width, int height, int format) { @@ -3394,8 +3622,8 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); - // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding. - // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting. + // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding + // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) glPixelStorei(GL_PACK_ALIGNMENT, 1); @@ -3416,13 +3644,13 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) #if defined(GRAPHICS_API_OPENGL_ES2) // glGetTexImage() is not available on OpenGL ES 2.0 - // Texture width and height are required on OpenGL ES 2.0. There is no way to get it from texture id. + // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id // Two possible Options: // 1 - Bind texture to color fbo attachment and glReadPixels() // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() // We are using Option 1, just need to care for texture format on retrieval // NOTE: This behaviour could be conditioned by graphic driver... - unsigned int fboId = rlLoadFramebuffer(width, height); + unsigned int fboId = rlLoadFramebuffer(); glBindFramebuffer(GL_FRAMEBUFFER, fboId); glBindTexture(GL_TEXTURE_2D, 0); @@ -3476,7 +3704,7 @@ unsigned char *rlReadScreenPixels(int width, int height) //----------------------------------------------------------------------------------------- // Load a framebuffer to be used for rendering // NOTE: No textures attached -unsigned int rlLoadFramebuffer(int width, int height) +unsigned int rlLoadFramebuffer(void) { unsigned int fboId = 0; @@ -3582,7 +3810,7 @@ void rlUnloadFramebuffer(unsigned int id) else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, - // the texture image is automatically detached from the currently bound framebuffer. + // the texture image is automatically detached from the currently bound framebuffer glBindFramebuffer(GL_FRAMEBUFFER, 0); glDeleteFramebuffers(1, &id); @@ -3784,10 +4012,16 @@ unsigned int rlLoadVertexArray(void) } // Set vertex attribute -void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer) +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); #endif } @@ -3834,18 +4068,18 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) unsigned int fragmentShaderId = 0; // Compile vertex shader (if provided) + // NOTE: If not vertex shader is provided, use default one if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); - // In case no vertex shader was provided or compilation failed, we use default vertex shader - if (vertexShaderId == 0) vertexShaderId = RLGL.State.defaultVShaderId; + else vertexShaderId = RLGL.State.defaultVShaderId; // Compile fragment shader (if provided) + // NOTE: If not vertex shader is provided, use default one if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); - // In case no fragment shader was provided or compilation failed, we use default fragment shader - if (fragmentShaderId == 0) fragmentShaderId = RLGL.State.defaultFShaderId; + else fragmentShaderId = RLGL.State.defaultFShaderId; // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; - else + else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) { // One of or both shader are new, we need to compile a new shader program id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); @@ -3923,6 +4157,8 @@ unsigned int rlCompileShader(const char *shaderCode, int type) //case GL_GEOMETRY_SHADER: #if defined(GRAPHICS_API_OPENGL_43) case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; #endif default: break; } @@ -3938,6 +4174,8 @@ unsigned int rlCompileShader(const char *shaderCode, int type) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); RL_FREE(log); } + + shader = 0; } else { @@ -3948,6 +4186,8 @@ unsigned int rlCompileShader(const char *shaderCode, int type) //case GL_GEOMETRY_SHADER: #if defined(GRAPHICS_API_OPENGL_43) case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; #endif default: break; } @@ -3970,12 +4210,17 @@ unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) glAttachShader(program, fShaderId); // NOTE: Default attribute shader locations must be Bound before linking - glBindAttribLocation(program, 0, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(program, 1, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(program, 2, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(program, 3, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(program, 4, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(program, 5, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + +#ifdef RL_SUPPORT_MESH_GPU_SKINNING + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); +#endif // NOTE: If some attrib name is no found on the shader, it locations becomes -1 @@ -4008,7 +4253,7 @@ unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) else { // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero. + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero //GLint binarySize = 0; //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); @@ -4068,8 +4313,16 @@ void rlSetUniform(int locIndex, const void *value, int uniformType, int count) case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; + #if !defined(GRAPHICS_API_OPENGL_ES2) + case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; + #endif case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + + // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() } #endif } @@ -4103,12 +4356,31 @@ void rlSetUniformMatrix(int locIndex, Matrix mat) #endif } +// Set shader value uniform matrix +void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) + glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); +#elif defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL does not support Matrix transpose ("true" parameter) + // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix + glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); +#endif +} + // Set shader value uniform sampler void rlSetUniformSampler(int locIndex, unsigned int textureId) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Check if texture is already active - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) if (RLGL.State.activeTextureId[i] == textureId) return; + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } // Register a new active texture for the internal batch system // NOTE: Default texture is always activated as GL_TEXTURE0 @@ -4175,12 +4447,14 @@ unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) else { // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero. + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero //GLint binarySize = 0; //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); } +#else + TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); #endif return program; @@ -4205,6 +4479,8 @@ unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHi glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); #endif return ssbo; @@ -4215,7 +4491,10 @@ void rlUnloadShaderBuffer(unsigned int ssboId) { #if defined(GRAPHICS_API_OPENGL_43) glDeleteBuffers(1, &ssboId); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); #endif + } // Update SSBO buffer data @@ -4230,14 +4509,14 @@ void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSi // Get SSBO buffer size unsigned int rlGetShaderBufferSize(unsigned int id) { - long long size = 0; - #if defined(GRAPHICS_API_OPENGL_43) + GLint64 size = 0; glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size); -#endif - + glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); return (size > 0)? (unsigned int)size : 0; +#else + return 0; +#endif } // Read SSBO buffer data (GPU->CPU) @@ -4275,6 +4554,8 @@ void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool re rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); #endif } @@ -4353,7 +4634,7 @@ Matrix rlGetMatrixTransform(void) } // Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixProjectionStereo(int eye) +Matrix rlGetMatrixProjectionStereo(int eye) { Matrix mat = rlMatrixIdentity(); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) @@ -4363,7 +4644,7 @@ RLAPI Matrix rlGetMatrixProjectionStereo(int eye) } // Get internal view offset matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) { Matrix mat = rlMatrixIdentity(); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) @@ -4431,10 +4712,10 @@ void rlLoadDrawQuad(void) glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); // Bind vertex attributes (position, texcoords) - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords // Draw quad glBindVertexArray(quadVAO); @@ -4505,12 +4786,12 @@ void rlLoadDrawCube(void) // Bind vertex attributes (position, normals, texcoords) glBindVertexArray(cubeVAO); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals - glEnableVertexAttribArray(2); - glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); @@ -4589,7 +4870,16 @@ static void rlLoadShaderDefault(void) "out vec2 fragTexCoord; \n" "out vec4 fragColor; \n" #endif -#if defined(GRAPHICS_API_OPENGL_ES2) + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) "#version 100 \n" "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) "attribute vec3 vertexPosition; \n" @@ -4598,6 +4888,7 @@ static void rlLoadShaderDefault(void) "varying vec2 fragTexCoord; \n" "varying vec4 fragColor; \n" #endif + "uniform mat4 mvp; \n" "void main() \n" "{ \n" @@ -4632,7 +4923,21 @@ static void rlLoadShaderDefault(void) " finalColor = texelColor*colDiffuse*fragColor; \n" "} \n"; #endif -#if defined(GRAPHICS_API_OPENGL_ES2) + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_ES2) "#version 100 \n" "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) "varying vec2 fragTexCoord; \n" @@ -4658,14 +4963,14 @@ static void rlLoadShaderDefault(void) TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); // Set default shader locations: attributes locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexPosition"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexTexCoord"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexColor"); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); // Set default shader locations: uniform locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, "mvp"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "colDiffuse"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "texture0"); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); } else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); } @@ -4802,7 +5107,8 @@ static int rlGetPixelDataSize(int width, int height, int format) default: break; } - dataSize = width*height*bpp/8; // Total data size in bytes + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes // Most compressed formats works on 4x4 blocks, // if texture is smaller, minimum dataSize is 8 or 16 @@ -4817,6 +5123,31 @@ static int rlGetPixelDataSize(int width, int height, int format) // Auxiliar math functions +// Get float array of matrix data +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + // Get identity matrix static Matrix rlMatrixIdentity(void) { @@ -4856,4 +5187,76 @@ static Matrix rlMatrixMultiply(Matrix left, Matrix right) return result; } +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + #endif // RLGL_IMPLEMENTATION diff --git a/third_party/raylib/larch64/libraylib.a b/third_party/raylib/larch64/libraylib.a index 2bb6f985d9..b4eb7f2f51 100644 --- a/third_party/raylib/larch64/libraylib.a +++ b/third_party/raylib/larch64/libraylib.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fac99ffbab698b99a47019ff02ff839f7536c32996b5e7aa827ef4820b288212 -size 10630538 +oid sha256:d0df8ec252a3eff108ef773ba3c95b9de8bec016ebb49f99f237d8432e79e054 +size 3133756 diff --git a/third_party/raylib/setup.sh b/third_party/raylib/setup.sh index 3e51185743..e54ed6482f 100755 --- a/third_party/raylib/setup.sh +++ b/third_party/raylib/setup.sh @@ -4,33 +4,38 @@ set -e DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" cd $DIR +RAYLIB_PLATFORM="PLATFORM_DESKTOP" + ARCHNAME=$(uname -m) if [ -f /TICI ]; then ARCHNAME="larch64" + RAYLIB_PLATFORM="PLATFORM_COMMA" fi if [[ "$OSTYPE" == "darwin"* ]]; then ARCHNAME="Darwin" fi -if [ ! -d raylib_repo ]; then - git clone https://github.com/raysan5/raylib.git raylib_repo -fi - -cd raylib_repo -git fetch --tags origin 5.0 -git checkout 5.0 - -git clean -xdff . -mkdir build -cd build -cmake .. -make -j$(nproc) - INSTALL_DIR="$DIR/$ARCHNAME" rm -rf $INSTALL_DIR mkdir -p $INSTALL_DIR -rm -rf $DIR/include -cp $DIR/raylib_repo/build/raylib/libraylib.a $INSTALL_DIR/ -cp -r $DIR/raylib_repo/build/raylib/include $DIR +INSTALL_H_DIR="$DIR/include" +rm -rf $INSTALL_H_DIR +mkdir -p $INSTALL_H_DIR + +if [ ! -d raylib_repo ]; then + git clone -b master --no-tags https://github.com/commaai/raylib.git raylib_repo +fi + +cd raylib_repo + +COMMIT="591b3be34d84b8c924fcc8648cce9b496580a2e8" +git fetch origin $COMMIT +git reset --hard $COMMIT +git clean -xdff . + +cd src + +make -j$(nproc) PLATFORM=$RAYLIB_PLATFORM +sudo make install RAYLIB_INSTALL_PATH=$INSTALL_DIR RAYLIB_H_INSTALL_PATH=$INSTALL_H_DIR diff --git a/third_party/raylib/x86_64/libraylib.a b/third_party/raylib/x86_64/libraylib.a index 28aa5b21de..b7994b4fe9 100644 --- a/third_party/raylib/x86_64/libraylib.a +++ b/third_party/raylib/x86_64/libraylib.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c07c718e411baefd74fd761d18f18fcc681ccd606d477118acff96732d21791 -size 10233524 +oid sha256:76697e9a248b8af45e798137038fa5ec5d9e36c9b4565fa448aefbcd0d2ab113 +size 2769636 From adc347d12bba07f24b6dc30bb35ee4a9056e5c27 Mon Sep 17 00:00:00 2001 From: royjr Date: Fri, 29 Nov 2024 10:25:42 -0500 Subject: [PATCH 06/26] ui: fix prime spacing (#34127) fix prime spacing --- selfdrive/ui/qt/home.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index 9f179e0a38..f8aa3423d2 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -124,6 +124,7 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) { // left: PrimeAdWidget QStackedWidget *left_widget = new QStackedWidget(this); QVBoxLayout *left_prime_layout = new QVBoxLayout(); + left_prime_layout->setContentsMargins(0, 0, 0, 0); QWidget *prime_user = new PrimeUserWidget(); prime_user->setStyleSheet(R"( border-radius: 10px; From 049f6c1dd52e5da77e79c05606efd6034e44e87e Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 3 Dec 2024 01:55:30 +0800 Subject: [PATCH 07/26] cabana: introduce `OneShotHttpRequest` to prevent concurrent HTTP requests (#34136) add OneShotHttpRequest class for single-use HTTP requests --- tools/cabana/streams/routes.cc | 32 ++++++++++++++++++++------------ tools/cabana/streams/routes.h | 6 +++--- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/tools/cabana/streams/routes.cc b/tools/cabana/streams/routes.cc index c805e7d60d..613c0b7092 100644 --- a/tools/cabana/streams/routes.cc +++ b/tools/cabana/streams/routes.cc @@ -9,7 +9,19 @@ #include #include -#include "system/hardware/hw.h" +class OneShotHttpRequest : public HttpRequest { +public: + OneShotHttpRequest(QObject *parent) : HttpRequest(parent, false) {} + void send(const QString &url) { + if (reply) { + reply->disconnect(); + reply->abort(); + reply->deleteLater(); + reply = nullptr; + } + sendRequest(url); + } +}; // The RouteListWidget class extends QListWidget to display a custom message when empty class RouteListWidget : public QListWidget { @@ -29,7 +41,7 @@ public: QString empty_text_ = tr("No items"); }; -RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent) { +RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent), route_requester_(new OneShotHttpRequest(this)) { setWindowTitle(tr("Remote routes")); QFormLayout *layout = new QFormLayout(this); @@ -47,6 +59,7 @@ RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent) { period_selector_->addItem(tr("Last 6 months"), 180); // Connect signals and slots + QObject::connect(route_requester_, &HttpRequest::requestDone, this, &RoutesDialog::parseRouteList); connect(device_list_, QOverload::of(&QComboBox::currentIndexChanged), this, &RoutesDialog::fetchRoutes); connect(period_selector_, QOverload::of(&QComboBox::currentIndexChanged), this, &RoutesDialog::fetchRoutes); connect(route_list_, &QListWidget::itemDoubleClicked, this, &QDialog::accept); @@ -54,7 +67,7 @@ RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent) { QObject::connect(button_box, &QDialogButtonBox::rejected, this, &QDialog::reject); // Send request to fetch devices - HttpRequest *http = new HttpRequest(this, !Hardware::PC()); + HttpRequest *http = new HttpRequest(this, false); QObject::connect(http, &HttpRequest::requestDone, this, &RoutesDialog::parseDeviceList); http->sendRequest(CommaApi::BASE_URL + "/v1/me/devices/"); } @@ -82,9 +95,6 @@ void RoutesDialog::fetchRoutes() { route_list_->clear(); route_list_->setEmptyText(tr("Loading...")); - HttpRequest *http = new HttpRequest(this, !Hardware::PC()); - QObject::connect(http, &HttpRequest::requestDone, this, &RoutesDialog::parseRouteList); - // Construct URL with selected device and date range auto dongle_id = device_list_->currentData().toString(); QDateTime current = QDateTime::currentDateTime(); @@ -92,7 +102,7 @@ void RoutesDialog::fetchRoutes() { .arg(CommaApi::BASE_URL).arg(dongle_id) .arg(current.addDays(-(period_selector_->currentData().toInt())).toMSecsSinceEpoch()) .arg(current.toMSecsSinceEpoch()); - http->sendRequest(url); + route_requester_->sendRequest(url); } void RoutesDialog::parseRouteList(const QString &json, bool success, QNetworkReply::NetworkError err) { @@ -115,9 +125,7 @@ void RoutesDialog::parseRouteList(const QString &json, bool success, QNetworkRep sender()->deleteLater(); } -void RoutesDialog::accept() { - if (auto current_item = route_list_->currentItem()) { - route_ = current_item->data(Qt::UserRole).toString(); - } - QDialog::accept(); +QString RoutesDialog::route() { + auto current_item = route_list_->currentItem(); + return current_item ? current_item->data(Qt::UserRole).toString() : ""; } diff --git a/tools/cabana/streams/routes.h b/tools/cabana/streams/routes.h index 31e42fb075..ee50712212 100644 --- a/tools/cabana/streams/routes.h +++ b/tools/cabana/streams/routes.h @@ -6,15 +6,15 @@ #include "selfdrive/ui/qt/api.h" class RouteListWidget; +class OneShotHttpRequest; class RoutesDialog : public QDialog { Q_OBJECT public: RoutesDialog(QWidget *parent); - QString route() const { return route_; } + QString route(); protected: - void accept() override; void parseDeviceList(const QString &json, bool success, QNetworkReply::NetworkError err); void parseRouteList(const QString &json, bool success, QNetworkReply::NetworkError err); void fetchRoutes(); @@ -22,5 +22,5 @@ protected: QComboBox *device_list_; QComboBox *period_selector_; RouteListWidget *route_list_; - QString route_; + OneShotHttpRequest *route_requester_; }; From e02a6e09fe9bbeebccd909d98951cae2b52cd153 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 3 Dec 2024 01:55:44 +0800 Subject: [PATCH 08/26] cabana: fix UI highlight for inactive items and crash in saveHeaderState() on closeEvent (#34135) * Adjust the highlight color for inactive items to enhance visibility * Resolve the crash occurring in messages_widget->saveHeaderState() --- tools/cabana/mainwin.cc | 4 +++- tools/cabana/messageswidget.cc | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/cabana/mainwin.cc b/tools/cabana/mainwin.cc index 189f8ac18f..d3f868cd47 100644 --- a/tools/cabana/mainwin.cc +++ b/tools/cabana/mainwin.cc @@ -558,7 +558,9 @@ void MainWindow::closeEvent(QCloseEvent *event) { if (can && !can->liveStreaming()) { settings.video_splitter_state = video_splitter->saveState(); } - settings.message_header_state = messages_widget->saveHeaderState(); + if (messages_widget) { + settings.message_header_state = messages_widget->saveHeaderState(); + } QWidget::closeEvent(event); } diff --git a/tools/cabana/messageswidget.cc b/tools/cabana/messageswidget.cc index 5c0c2eaba6..ecb739a733 100644 --- a/tools/cabana/messageswidget.cc +++ b/tools/cabana/messageswidget.cc @@ -201,7 +201,7 @@ QVariant MessageListModel::data(const QModelIndex &index, int role) const { } }; - const static QString NA = QStringLiteral("N/A"); + const static QString NA = QStringLiteral("N/A"); const auto &item = items_[index.row()]; if (role == Qt::DisplayRole) { switch (index.column()) { @@ -217,8 +217,6 @@ QVariant MessageListModel::data(const QModelIndex &index, int role) const { return QVariant::fromValue((void*)(&can->lastMessage(item.id).colors)); } else if (role == BytesRole && index.column() == Column::DATA && item.id.source != INVALID_SOURCE) { return QVariant::fromValue((void*)(&can->lastMessage(item.id).dat)); - } else if (role == Qt::ForegroundRole && !isMessageActive(item.id)) { - return QApplication::palette().color(QPalette::Disabled, QPalette::Text); } else if (role == Qt::ToolTipRole && index.column() == Column::NAME) { auto msg = dbc()->msg(item.id); auto tooltip = item.name; @@ -379,7 +377,17 @@ void MessageListModel::sort(int column, Qt::SortOrder order) { // MessageView void MessageView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { - QTreeView::drawRow(painter, option, index); + const auto &item = ((MessageListModel*)model())->items_[index.row()]; + if (!isMessageActive(item.id)) { + QStyleOptionViewItem custom_option = option; + custom_option.palette.setBrush(QPalette::Text, custom_option.palette.color(QPalette::Disabled, QPalette::Text)); + auto color = QApplication::palette().color(QPalette::HighlightedText); + color.setAlpha(100); + custom_option.palette.setBrush(QPalette::HighlightedText, color); + QTreeView::drawRow(painter, custom_option, index); + } else { + QTreeView::drawRow(painter, option, index); + } QPen oldPen = painter->pen(); const int gridHint = style()->styleHint(QStyle::SH_Table_GridLineColor, &option, this); From 8f559d4f03d1e47c34aa39785a421f19c5d37aa7 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Mon, 2 Dec 2024 13:06:17 -0800 Subject: [PATCH 09/26] fix repo maintenance --- .github/workflows/repo-maintenance.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/repo-maintenance.yaml b/.github/workflows/repo-maintenance.yaml index c724c00c5e..ab0f3c1bee 100644 --- a/.github/workflows/repo-maintenance.yaml +++ b/.github/workflows/repo-maintenance.yaml @@ -28,7 +28,7 @@ jobs: git add . - name: update car docs run: | - scons -j$(nproc) --minimal opendbc + scons -j$(nproc) --minimal opendbc_repo PYTHONPATH=. python selfdrive/car/docs.py git add docs/CARS.md - name: Create Pull Request From 24dfa0e1bfe2563a4fa9120dfcfd3ba36967c636 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Mon, 2 Dec 2024 15:09:11 -0600 Subject: [PATCH 10/26] bump opendbc (#34139) * bump * bump * update docs * Update ref_commit --- docs/CARS.md | 4 ++-- opendbc_repo | 2 +- selfdrive/test/process_replay/ref_commit | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/CARS.md b/docs/CARS.md index 6861f411d2..2e2a614a38 100644 --- a/docs/CARS.md +++ b/docs/CARS.md @@ -167,7 +167,7 @@ A supported vehicle is one that just works when you install a comma device. All |Lexus|ES 2017-18|All|openpilot available[2](#footnotes)|19 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Lexus|ES 2019-24|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Lexus|ES Hybrid 2017-18|All|openpilot available[2](#footnotes)|19 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| -|Lexus|ES Hybrid 2019-24|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| +|Lexus|ES Hybrid 2019-25|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Lexus|GS F 2016|All|Stock|19 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Lexus|IS 2017-19|All|Stock|19 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Lexus|IS 2022-23|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 RJ45 cable (7 ft)
- 1 Toyota A connector
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| @@ -188,7 +188,7 @@ A supported vehicle is one that just works when you install a comma device. All |Lincoln|Aviator Plug-in Hybrid 2020-24|Co-Pilot360 Plus|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 Ford Q3 connector
- 1 RJ45 cable (7 ft)
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |MAN|eTGE 2020-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[1,12](#footnotes)|0 mph|31 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 USB-C coupler
- 1 VW J533 connector
- 1 angled mount (8 degrees)
- 1 comma 3X
- 1 harness box
- 1 long OBD-C cable
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |MAN|TGE 2017-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[1,12](#footnotes)|0 mph|31 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 USB-C coupler
- 1 VW J533 connector
- 1 angled mount (8 degrees)
- 1 comma 3X
- 1 harness box
- 1 long OBD-C cable
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| -|Mazda|CX-5 2022-24|All|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 Mazda connector
- 1 RJ45 cable (7 ft)
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| +|Mazda|CX-5 2022-25|All|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 Mazda connector
- 1 RJ45 cable (7 ft)
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Mazda|CX-9 2021-23|All|Stock|0 mph|28 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|
Parts- 1 Mazda connector
- 1 RJ45 cable (7 ft)
- 1 comma 3X
- 1 comma power v2
- 1 harness box
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 Nissan B connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 comma 3X
- 1 harness box
- 1 long OBD-C cable
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| |Nissan|Leaf 2018-23|ProPILOT Assist|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|
Parts- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 comma 3X
- 1 harness box
- 1 long OBD-C cable
- 1 mount
- 1 right angle OBD-C cable (1.5 ft)
Buy Here
|| diff --git a/opendbc_repo b/opendbc_repo index 8e349c3955..78df311372 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 8e349c395545b7d4ba59dcf317ef55baa591510c +Subproject commit 78df311372bd961aec66b933141f513d319b7906 diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index 6c92ba25d5..592bb4f676 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -4bf2792e5997c0d916fa9be4442fd4c4901f597a +6b43f700377cc3aea5ab01c642dde36947a1d382 From 556060f793412979a52aaaa8eb2b010517ffc6e4 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 2 Dec 2024 15:58:51 -0800 Subject: [PATCH 11/26] camerad: full buffer size for IFE processing (#34141) * camerad: full buffer size for IFE processing * assert * revert --------- Co-authored-by: Comma Device --- system/camerad/cameras/camera_common.cc | 21 ++++---- system/camerad/cameras/camera_common.h | 2 +- system/camerad/cameras/spectra.cc | 67 +++++++++++++------------ system/camerad/cameras/spectra.h | 13 ++--- 4 files changed, 55 insertions(+), 48 deletions(-) diff --git a/system/camerad/cameras/camera_common.cc b/system/camerad/cameras/camera_common.cc index ff02fe4364..b0193cf5df 100644 --- a/system/camerad/cameras/camera_common.cc +++ b/system/camerad/cameras/camera_common.cc @@ -65,16 +65,19 @@ void CameraBuf::init(cl_device_id device_id, cl_context context, SpectraCamera * const SensorInfo *sensor = cam->sensor.get(); is_raw = cam->is_raw; - camera_bufs_raw = std::make_unique(frame_buf_count); frame_metadata = std::make_unique(frame_buf_count); - // RAW + final frames from ISP - const int raw_frame_size = (sensor->frame_height + sensor->extra_height) * sensor->frame_stride; - for (int i = 0; i < frame_buf_count; i++) { - camera_bufs_raw[i].allocate(raw_frame_size); - camera_bufs_raw[i].init_cl(device_id, context); + // RAW frames from ISP + if (is_raw) { + camera_bufs_raw = std::make_unique(frame_buf_count); + + const int raw_frame_size = (sensor->frame_height + sensor->extra_height) * sensor->frame_stride; + for (int i = 0; i < frame_buf_count; i++) { + camera_bufs_raw[i].allocate(raw_frame_size); + camera_bufs_raw[i].init_cl(device_id, context); + } + LOGD("allocated %d CL buffers", frame_buf_count); } - LOGD("allocated %d CL buffers", frame_buf_count); out_img_width = sensor->frame_width; out_img_height = sensor->hdr_offset > 0 ? (sensor->frame_height - sensor->hdr_offset) / 2 : sensor->frame_height; @@ -83,8 +86,8 @@ void CameraBuf::init(cl_device_id device_id, cl_context context, SpectraCamera * // TODO: VENUS_BUFFER_SIZE should give the size, but it's too small. dependent on encoder settings? size_t nv12_size = (out_img_width <= 1344 ? 2900 : 2346)*cam->stride; - vipc_server->create_buffers_with_sizes(stream_type, YUV_BUFFER_COUNT, out_img_width, out_img_height, nv12_size, cam->stride, cam->uv_offset); - LOGD("created %d YUV vipc buffers with size %dx%d", YUV_BUFFER_COUNT, cam->stride, cam->y_height); + vipc_server->create_buffers_with_sizes(stream_type, VIPC_BUFFER_COUNT, out_img_width, out_img_height, nv12_size, cam->stride, cam->uv_offset); + LOGD("created %d YUV vipc buffers with size %dx%d", VIPC_BUFFER_COUNT, cam->stride, cam->y_height); imgproc = new ImgProc(device_id, context, this, sensor, cam->cc.camera_num, cam->stride, cam->uv_offset); } diff --git a/system/camerad/cameras/camera_common.h b/system/camerad/cameras/camera_common.h index e4cdb27e71..768626737a 100644 --- a/system/camerad/cameras/camera_common.h +++ b/system/camerad/cameras/camera_common.h @@ -8,7 +8,7 @@ #include "common/util.h" -const int YUV_BUFFER_COUNT = 20; +const int VIPC_BUFFER_COUNT = 18; typedef struct FrameMetadata { uint32_t frame_id; diff --git a/system/camerad/cameras/spectra.cc b/system/camerad/cameras/spectra.cc index b262ddba9a..178dd9ae17 100644 --- a/system/camerad/cameras/spectra.cc +++ b/system/camerad/cameras/spectra.cc @@ -242,6 +242,9 @@ SpectraCamera::SpectraCamera(SpectraMaster *master, const CameraConfig &config, cc(config), is_raw(raw) { mm.init(m->video0_fd); + + ife_buf_depth = is_raw ? 4 : VIPC_BUFFER_COUNT; + assert(ife_buf_depth < MAX_IFE_BUFS); } SpectraCamera::~SpectraCamera() { @@ -288,14 +291,15 @@ void SpectraCamera::camera_open(VisionIpcServer *v, cl_device_id device_id, cl_c linkDevices(); LOGD("camera init %d", cc.camera_num); - buf.init(device_id, ctx, this, v, FRAME_BUF_COUNT, cc.stream_type); + buf.init(device_id, ctx, this, v, ife_buf_depth, cc.stream_type); camera_map_bufs(); + enqueue_req_multi(1, ife_buf_depth, 0); } void SpectraCamera::enqueue_req_multi(uint64_t start, int n, bool dp) { for (uint64_t i = start; i < start + n; ++i) { - request_ids[(i - 1) % FRAME_BUF_COUNT] = i; - enqueue_buffer((i - 1) % FRAME_BUF_COUNT, dp); + request_ids[(i - 1) % ife_buf_depth] = i; + enqueue_buffer((i - 1) % ife_buf_depth, dp); } } @@ -670,7 +674,7 @@ void SpectraCamera::enqueue_buffer(int i, bool dp) { int ret; uint64_t request_id = request_ids[i]; - if (buf_handle_raw[i] && sync_objs[i]) { + if (sync_objs[i]) { // wait struct cam_sync_wait sync_wait = {0}; sync_wait.sync_obj = sync_objs[i]; @@ -733,31 +737,31 @@ void SpectraCamera::enqueue_buffer(int i, bool dp) { void SpectraCamera::camera_map_bufs() { int ret; - for (int i = 0; i < FRAME_BUF_COUNT; i++) { + for (int i = 0; i < ife_buf_depth; i++) { // configure ISP to put the image in place struct cam_mem_mgr_map_cmd mem_mgr_map_cmd = {0}; + mem_mgr_map_cmd.flags = CAM_MEM_FLAG_HW_READ_WRITE; mem_mgr_map_cmd.mmu_hdls[0] = m->device_iommu; + mem_mgr_map_cmd.num_hdl = 1; //mem_mgr_map_cmd.mmu_hdls[1] = m->icp_device_iommu; //mem_mgr_map_cmd.num_hdl = 2; - mem_mgr_map_cmd.num_hdl = 1; - mem_mgr_map_cmd.flags = CAM_MEM_FLAG_HW_READ_WRITE; - // RAW bayer images - mem_mgr_map_cmd.fd = buf.camera_bufs_raw[i].fd; - ret = do_cam_control(m->video0_fd, CAM_REQ_MGR_MAP_BUF, &mem_mgr_map_cmd, sizeof(mem_mgr_map_cmd)); - assert(ret == 0); - LOGD("map buf req: (fd: %d) 0x%x %d", buf.camera_bufs_raw[i].fd, mem_mgr_map_cmd.out.buf_handle, ret); - buf_handle_raw[i] = mem_mgr_map_cmd.out.buf_handle; - - // TODO: this needs to match camera bufs length - // final processed images - VisionBuf *vb = buf.vipc_server->get_buffer(buf.stream_type, i); - mem_mgr_map_cmd.fd = vb->fd; - ret = do_cam_control(m->video0_fd, CAM_REQ_MGR_MAP_BUF, &mem_mgr_map_cmd, sizeof(mem_mgr_map_cmd)); - LOGD("map buf req: (fd: %d) 0x%x %d", vb->fd, mem_mgr_map_cmd.out.buf_handle, ret); - buf_handle_yuv[i] = mem_mgr_map_cmd.out.buf_handle; + if (is_raw) { + // RAW bayer images + mem_mgr_map_cmd.fd = buf.camera_bufs_raw[i].fd; + ret = do_cam_control(m->video0_fd, CAM_REQ_MGR_MAP_BUF, &mem_mgr_map_cmd, sizeof(mem_mgr_map_cmd)); + assert(ret == 0); + LOGD("map buf req: (fd: %d) 0x%x %d", buf.camera_bufs_raw[i].fd, mem_mgr_map_cmd.out.buf_handle, ret); + buf_handle_raw[i] = mem_mgr_map_cmd.out.buf_handle; + } else { + // final processed images + VisionBuf *vb = buf.vipc_server->get_buffer(buf.stream_type, i); + mem_mgr_map_cmd.fd = vb->fd; + ret = do_cam_control(m->video0_fd, CAM_REQ_MGR_MAP_BUF, &mem_mgr_map_cmd, sizeof(mem_mgr_map_cmd)); + LOGD("map buf req: (fd: %d) 0x%x %d", vb->fd, mem_mgr_map_cmd.out.buf_handle, ret); + buf_handle_yuv[i] = mem_mgr_map_cmd.out.buf_handle; + } } - enqueue_req_multi(1, FRAME_BUF_COUNT, 0); } bool SpectraCamera::openSensor() { @@ -870,7 +874,7 @@ void SpectraCamera::configISP() { // allocate IFE memory, then configure it ife_cmd.init(m, 67984, 0x20, CAM_MEM_FLAG_HW_READ_WRITE | CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, - m->device_iommu, m->cdm_iommu, FRAME_BUF_COUNT); + m->device_iommu, m->cdm_iommu, ife_buf_depth); if (!is_raw) { ife_gamma_lut.init(m, 64*sizeof(uint32_t), 0x20, CAM_MEM_FLAG_HW_READ_WRITE | CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, @@ -925,7 +929,7 @@ void SpectraCamera::configICP() { // BPS CMD buffer unsigned char striping_out[] = "\x00"; - bps_cmd.init(m, FRAME_BUF_COUNT*ALIGNED_SIZE(464, 0x20), 0x20, + bps_cmd.init(m, ife_buf_depth*ALIGNED_SIZE(464, 0x20), 0x20, CAM_MEM_FLAG_HW_READ_WRITE | CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE | CAM_MEM_FLAG_HW_SHARED_ACCESS, m->icp_device_iommu); @@ -1046,9 +1050,8 @@ void SpectraCamera::camera_close() { ret = device_control(csiphy_fd, CAM_RELEASE_DEV, session_handle, csiphy_dev_handle); LOGD("release csiphy: %d", ret); - for (int i = 0; i < FRAME_BUF_COUNT; i++) { - release(m->video0_fd, buf_handle_yuv[i]); - release(m->video0_fd, buf_handle_raw[i]); + for (int i = 0; i < ife_buf_depth; i++) { + release(m->video0_fd, is_raw ? buf_handle_raw[i] : buf_handle_yuv[i]); } LOGD("released buffers"); } @@ -1071,13 +1074,13 @@ void SpectraCamera::handle_camera_event(const cam_req_mgr_message *event_data) { if (real_id != 0) { // next ready if (real_id == 1) {idx_offset = main_id;} - int buf_idx = (real_id - 1) % FRAME_BUF_COUNT; + int buf_idx = (real_id - 1) % ife_buf_depth; // check for skipped frames if (main_id > frame_id_last + 1 && !skipped) { LOGE("camera %d realign", cc.camera_num); clear_req_queue(); - enqueue_req_multi(real_id + 1, FRAME_BUF_COUNT - 1, 0); + enqueue_req_multi(real_id + 1, ife_buf_depth - 1, 0); skipped = true; } else if (main_id == frame_id_last + 1) { skipped = false; @@ -1086,7 +1089,7 @@ void SpectraCamera::handle_camera_event(const cam_req_mgr_message *event_data) { // check for dropped requests if (real_id > request_id_last + 1) { LOGE("camera %d dropped requests %ld %ld", cc.camera_num, real_id, request_id_last); - enqueue_req_multi(request_id_last + 1 + FRAME_BUF_COUNT, real_id - (request_id_last + 1), 0); + enqueue_req_multi(request_id_last + 1 + ife_buf_depth, real_id - (request_id_last + 1), 0); } // metas @@ -1099,12 +1102,12 @@ void SpectraCamera::handle_camera_event(const cam_req_mgr_message *event_data) { meta_data.timestamp_sof = timestamp; // this is timestamped in the kernel's SOF IRQ callback // dispatch - enqueue_req_multi(real_id + FRAME_BUF_COUNT, 1, 1); + enqueue_req_multi(real_id + ife_buf_depth, 1, 1); } else { // not ready if (main_id > frame_id_last + 10) { LOGE("camera %d reset after half second of no response", cc.camera_num); clear_req_queue(); - enqueue_req_multi(request_id_last + 1, FRAME_BUF_COUNT, 0); + enqueue_req_multi(request_id_last + 1, ife_buf_depth, 0); frame_id_last = main_id; skipped = true; } diff --git a/system/camerad/cameras/spectra.h b/system/camerad/cameras/spectra.h index ea5c563167..476722b664 100644 --- a/system/camerad/cameras/spectra.h +++ b/system/camerad/cameras/spectra.h @@ -12,7 +12,7 @@ #include "system/camerad/cameras/camera_common.h" #include "system/camerad/sensors/sensor.h" -#define FRAME_BUF_COUNT 4 +#define MAX_IFE_BUFS 20 const int MIPI_SETTLE_CNT = 33; // Calculated by camera_freqs.py @@ -116,6 +116,7 @@ public: // *** state *** + int ife_buf_depth = -1; bool open = false; bool enabled = true; CameraConfig cc; @@ -151,11 +152,11 @@ public: SpectraBuf bps_iq; SpectraBuf bps_striping; - int buf_handle_yuv[FRAME_BUF_COUNT] = {}; - int buf_handle_raw[FRAME_BUF_COUNT] = {}; - int sync_objs[FRAME_BUF_COUNT] = {}; - int sync_objs_bps_out[FRAME_BUF_COUNT] = {}; - uint64_t request_ids[FRAME_BUF_COUNT] = {}; + int buf_handle_yuv[MAX_IFE_BUFS] = {}; + int buf_handle_raw[MAX_IFE_BUFS] = {}; + int sync_objs[MAX_IFE_BUFS] = {}; + int sync_objs_bps_out[MAX_IFE_BUFS] = {}; + uint64_t request_ids[MAX_IFE_BUFS] = {}; uint64_t request_id_last = 0; uint64_t frame_id_last = 0; uint64_t idx_offset = 0; From 1bc1d2e020f8c49c5352ca2470c7d8cd6c26936e Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 2 Dec 2024 16:01:14 -0800 Subject: [PATCH 12/26] jenkins: only run pigeon and encoder tests on path diffs (#34142) --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5e4323d3cb..7867985fc1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -207,8 +207,8 @@ node { step("build", "cd system/manager && ./build.py"), step("test pandad", "pytest selfdrive/pandad/tests/test_pandad.py", [diffPaths: ["panda", "selfdrive/pandad/"]]), step("test power draw", "pytest -s system/hardware/tici/tests/test_power_draw.py"), - step("test encoder", "LD_LIBRARY_PATH=/usr/local/lib pytest system/loggerd/tests/test_encoder.py"), - step("test pigeond", "pytest system/ubloxd/tests/test_pigeond.py"), + step("test encoder", "LD_LIBRARY_PATH=/usr/local/lib pytest system/loggerd/tests/test_encoder.py", [diffPaths: ["system/loggerd/"]]), + step("test pigeond", "pytest system/ubloxd/tests/test_pigeond.py", [diffPaths: ["system/ubloxd/"]]), step("test manager", "pytest system/manager/test/test_manager.py"), ]) }, From 685dc5a80c1d0667c00861a34eaaaaa92741e86a Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 3 Dec 2024 12:17:02 +0800 Subject: [PATCH 13/26] selfdrive/debug: fix broken check_can_parser_performance.py (#34143) fix broken check_can_parser_performance.py --- selfdrive/debug/check_can_parser_performance.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/debug/check_can_parser_performance.py b/selfdrive/debug/check_can_parser_performance.py index 7a0db1926b..61aff0244f 100755 --- a/selfdrive/debug/check_can_parser_performance.py +++ b/selfdrive/debug/check_can_parser_performance.py @@ -29,7 +29,7 @@ if __name__ == '__main__': start_t = time.process_time_ns() for msg in msgs: can_list = can_capnp_to_list([msg]) - for cp in tm.CI.can_parsers: + for cp in tm.CI.can_parsers.values(): if cp is not None: cp.update_strings(can_list) ets.append((time.process_time_ns() - start_t) * 1e-6) From 43807746ff6d7ebd8d1a219c0f6438a2607b7290 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 3 Dec 2024 13:30:54 +0800 Subject: [PATCH 14/26] athenad: fix memory leak by closing Response objects (#34101) * fix memory leak by closing Response * use with --- system/athena/athenad.py | 12 ++++++------ system/athena/tests/test_athenad.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/system/athena/athenad.py b/system/athena/athenad.py index 909e99fa71..78285f018e 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -258,13 +258,13 @@ def upload_handler(end_event: threading.Event) -> None: sz = -1 cloudlog.event("athena.upload_handler.upload_start", fn=fn, sz=sz, network_type=network_type, metered=metered, retry_count=item.retry_count) - response = _do_upload(item, partial(cb, sm, item, tid, end_event)) - if response.status_code not in (200, 201, 401, 403, 412): - cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered) - retry_upload(tid, end_event) - else: - cloudlog.event("athena.upload_handler.success", fn=fn, sz=sz, network_type=network_type, metered=metered) + with _do_upload(item, partial(cb, sm, item, tid, end_event)) as response: + if response.status_code not in (200, 201, 401, 403, 412): + cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered) + retry_upload(tid, end_event) + else: + cloudlog.event("athena.upload_handler.success", fn=fn, sz=sz, network_type=network_type, metered=metered) UploadQueueCache.cache(upload_queue) except (requests.exceptions.Timeout, requests.exceptions.ConnectionError, requests.exceptions.SSLError): diff --git a/system/athena/tests/test_athenad.py b/system/athena/tests/test_athenad.py index a4dcbef67a..a6bfc68930 100644 --- a/system/athena/tests/test_athenad.py +++ b/system/athena/tests/test_athenad.py @@ -240,7 +240,7 @@ class TestAthenadMethods: @with_upload_handler def test_upload_handler_retry(self, mocker, host, status, retry): mock_put = mocker.patch('requests.put') - mock_put.return_value.status_code = status + mock_put.return_value.__enter__.return_value.status_code = status fn = self._create_file('qlog.zst') item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) From b33441213a04f04a6f760336de7eb66ebdf10e5c Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 2 Dec 2024 21:56:18 -0800 Subject: [PATCH 15/26] tools/op: add switch command (#34112) * tools/op: add switch command * fix * . * usage * fix --------- Co-authored-by: Maxime Desroches --- tools/op.sh | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/tools/op.sh b/tools/op.sh index 62d390c9b5..f01863e1b1 100755 --- a/tools/op.sh +++ b/tools/op.sh @@ -94,7 +94,7 @@ function op_check_git() { fi echo "Checking for git lfs files..." - if [[ $(file -b $OPENPILOT_ROOT/selfdrive/modeld/models/supercombo.onnx) == "data" ]]; then + if [[ $(file -b $OPENPILOT_ROOT/selfdrive/modeld/models/dmonitoring_model.onnx) == "data" ]]; then echo -e " ↳ [${GREEN}✔${NC}] git lfs files found." else echo -e " ↳ [${RED}✗${NC}] git lfs files not found! Run 'git lfs pull'" @@ -312,6 +312,30 @@ function op_sim() { op_run_command exec tools/sim/launch_openpilot.sh } +function op_switch() { + op_before_cmd + + REMOTE="origin" + if [ "$#" -gt 1 ]; then + REMOTE="$1" + shift + fi + + if [ -z "$1" ]; then + echo -e "${BOLD}${UNDERLINE}Usage:${NC} op switch [REMOTE] " + return 1 + fi + BRANCH="$1" + + git fetch "$REMOTE" "$BRANCH":"$BRANCH" + git checkout -f --recurse-submodules "$BRANCH" + git reset --hard "$BRANCH" + git clean -df + git submodule update --init --recursive + git submodule foreach git reset --hard + git submodule foreach git clean -df +} + function op_default() { echo "An openpilot helper" echo "" @@ -333,6 +357,7 @@ function op_default() { echo -e " ${BOLD}setup${NC} Install openpilot dependencies" echo -e " ${BOLD}build${NC} Run the openpilot build system in the current working directory" echo -e " ${BOLD}install${NC} Install the 'op' tool system wide" + echo -e " ${BOLD}switch${NC} Switch to a different git branch with a clean slate (nukes any changes)" echo "" echo -e "${BOLD}${UNDERLINE}Commands [Tooling]:${NC}" echo -e " ${BOLD}juggle${NC} Run PlotJuggler" @@ -388,6 +413,7 @@ function _op() { replay ) shift 1; op_replay "$@" ;; sim ) shift 1; op_sim "$@" ;; install ) shift 1; op_install "$@" ;; + switch ) shift 1; op_switch "$@" ;; post-commit ) shift 1; op_install_post_commit "$@" ;; * ) op_default "$@" ;; esac From 5160bee5437e58ab0ace59c6db1c6d7b416c4025 Mon Sep 17 00:00:00 2001 From: YassineYousfi Date: Mon, 2 Dec 2024 23:44:21 -0800 Subject: [PATCH 16/26] =?UTF-8?q?PlayStation=C2=AE=20model=20(#34133)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * e2a90efd-8986-4c97-8f55-22725cdee8b9/400 * bea47b6f-c2f9-460f-9658-73f202756294/400 * 7e8efd49-f1a4-4355-912e-610633e0e7f9/390 * 7e8efd49-f1a4-4355-912e-610633e0e7f9/400 --------- Co-authored-by: Bruce Wayne --- selfdrive/modeld/models/supercombo.onnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/modeld/models/supercombo.onnx b/selfdrive/modeld/models/supercombo.onnx index 06b7875362..fe3532b89e 100644 --- a/selfdrive/modeld/models/supercombo.onnx +++ b/selfdrive/modeld/models/supercombo.onnx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:663f58026cdf0b5c8e079a8a1591c8e2b5fa7e5c0f29a882011a17c405af10f4 +oid sha256:66f3fa03aa1f61ed2ff84a954d3eca5d5fe9ef95bb484edc4044b63ff5b6e2ab size 50320584 From 7aeabc37d0502c34b8a3fe009d29ef32f36f602d Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 4 Dec 2024 05:00:22 +0800 Subject: [PATCH 17/26] cabana: add support to fetch preserved routes (#34146) add support to fetch preserved routes --- tools/cabana/streams/routes.cc | 37 ++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/tools/cabana/streams/routes.cc b/tools/cabana/streams/routes.cc index 613c0b7092..5915c98065 100644 --- a/tools/cabana/streams/routes.cc +++ b/tools/cabana/streams/routes.cc @@ -46,7 +46,7 @@ RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent), route_requester_( QFormLayout *layout = new QFormLayout(this); layout->addRow(tr("Device"), device_list_ = new QComboBox(this)); - layout->addRow(tr("Duration"), period_selector_ = new QComboBox(this)); + layout->addRow(period_selector_ = new QComboBox(this)); layout->addRow(route_list_ = new RouteListWidget(this)); auto button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); layout->addRow(button_box); @@ -57,6 +57,7 @@ RoutesDialog::RoutesDialog(QWidget *parent) : QDialog(parent), route_requester_( period_selector_->addItem(tr("Last 2 weeks"), 14); period_selector_->addItem(tr("Last month"), 30); period_selector_->addItem(tr("Last 6 months"), 180); + period_selector_->addItem(tr("Preserved"), -1); // Connect signals and slots QObject::connect(route_requester_, &HttpRequest::requestDone, this, &RoutesDialog::parseRouteList); @@ -94,35 +95,41 @@ void RoutesDialog::fetchRoutes() { route_list_->clear(); route_list_->setEmptyText(tr("Loading...")); - // Construct URL with selected device and date range - auto dongle_id = device_list_->currentData().toString(); - QDateTime current = QDateTime::currentDateTime(); - QString url = QString("%1/v1/devices/%2/routes_segments?start=%3&end=%4") - .arg(CommaApi::BASE_URL).arg(dongle_id) - .arg(current.addDays(-(period_selector_->currentData().toInt())).toMSecsSinceEpoch()) - .arg(current.toMSecsSinceEpoch()); - route_requester_->sendRequest(url); + QString url = QString("%1/v1/devices/%2").arg(CommaApi::BASE_URL, device_list_->currentText()); + int period = period_selector_->currentData().toInt(); + if (period == -1) { + url += "/routes/preserved"; + } else { + QDateTime now = QDateTime::currentDateTime(); + url += QString("/routes_segments?start=%1&end=%2") + .arg(now.addDays(-period).toMSecsSinceEpoch()) + .arg(now.toMSecsSinceEpoch()); + } + route_requester_->send(url); } void RoutesDialog::parseRouteList(const QString &json, bool success, QNetworkReply::NetworkError err) { if (success) { for (const QJsonValue &route : QJsonDocument::fromJson(json.toUtf8()).array()) { - uint64_t start_time = route["start_time_utc_millis"].toDouble(); - uint64_t end_time = route["end_time_utc_millis"].toDouble(); - auto datetime = QDateTime::fromMSecsSinceEpoch(start_time); - auto item = new QListWidgetItem(QString("%1 %2min").arg(datetime.toString()).arg((end_time - start_time) / (1000 * 60))); + QDateTime from, to; + if (period_selector_->currentData().toInt() == -1) { + from = QDateTime::fromString(route["start_time"].toString(), Qt::ISODateWithMs); + to = QDateTime::fromString(route["end_time"].toString(), Qt::ISODateWithMs); + } else { + from = QDateTime::fromMSecsSinceEpoch(route["start_time_utc_millis"].toDouble()); + to = QDateTime::fromMSecsSinceEpoch(route["end_time_utc_millis"].toDouble()); + } + auto item = new QListWidgetItem(QString("%1 %2min").arg(from.toString()).arg(from.secsTo(to) / 60)); item->setData(Qt::UserRole, route["fullname"].toString()); route_list_->addItem(item); } - // Select first route if available if (route_list_->count() > 0) route_list_->setCurrentRow(0); } else { QMessageBox::warning(this, tr("Error"), tr("Failed to fetch routes. Check your network connection.")); reject(); } route_list_->setEmptyText(tr("No items")); - sender()->deleteLater(); } QString RoutesDialog::route() { From c4edfa8b25b17baca384be2ee80ba5e6ad0474d3 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Tue, 3 Dec 2024 14:16:28 -0800 Subject: [PATCH 18/26] camerad: fix running AR0231 in single road cam mode (#34148) Co-authored-by: Comma Device --- system/camerad/cameras/camera_qcom2.cc | 4 ++-- system/camerad/cameras/spectra.cc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/system/camerad/cameras/camera_qcom2.cc b/system/camerad/cameras/camera_qcom2.cc index ef5a03085b..4f9f52a22d 100644 --- a/system/camerad/cameras/camera_qcom2.cc +++ b/system/camerad/cameras/camera_qcom2.cc @@ -69,10 +69,10 @@ public: }; void CameraState::init(VisionIpcServer *v, cl_device_id device_id, cl_context ctx) { - if (!camera.enabled) return; - camera.camera_open(v, device_id, ctx); + if (!camera.enabled) return; + fl_pix = camera.cc.focal_len / camera.sensor->pixel_size_mm; set_exposure_rect(); diff --git a/system/camerad/cameras/spectra.cc b/system/camerad/cameras/spectra.cc index 178dd9ae17..adaa5d5cc9 100644 --- a/system/camerad/cameras/spectra.cc +++ b/system/camerad/cameras/spectra.cc @@ -264,12 +264,12 @@ int SpectraCamera::clear_req_queue() { } void SpectraCamera::camera_open(VisionIpcServer *v, cl_device_id device_id, cl_context ctx) { - if (!enabled) return; - if (!openSensor()) { return; } + if (!enabled) return; + // size is driven by all the HW that handles frames, // the video encoder has certain alignment requirements in this case stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, sensor->frame_width); From 1ec2c56b4ec282f2923c62ff29f874be55623e1a Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Tue, 3 Dec 2024 14:59:15 -0800 Subject: [PATCH 19/26] gc old DM init param --- common/params.cc | 1 - selfdrive/modeld/dmonitoringmodeld.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/common/params.cc b/common/params.cc index 9e62ed582c..2011b52131 100644 --- a/common/params.cc +++ b/common/params.cc @@ -112,7 +112,6 @@ std::unordered_map keys = { {"DisablePowerDown", PERSISTENT}, {"DisableUpdates", PERSISTENT}, {"DisengageOnAccelerator", PERSISTENT}, - {"DmModelInitialized", CLEAR_ON_ONROAD_TRANSITION}, {"DongleId", PERSISTENT}, {"DoReboot", CLEAR_ON_MANAGER_START}, {"DoShutdown", CLEAR_ON_MANAGER_START}, diff --git a/selfdrive/modeld/dmonitoringmodeld.py b/selfdrive/modeld/dmonitoringmodeld.py index 31440c1295..7f04939c65 100755 --- a/selfdrive/modeld/dmonitoringmodeld.py +++ b/selfdrive/modeld/dmonitoringmodeld.py @@ -12,7 +12,6 @@ from cereal import messaging from cereal.messaging import PubMaster, SubMaster from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf from openpilot.common.swaglog import cloudlog -from openpilot.common.params import Params from openpilot.common.realtime import set_realtime_priority from openpilot.selfdrive.modeld.runners import ModelRunner, Runtime from openpilot.selfdrive.modeld.models.commonmodel_pyx import CLContext @@ -126,7 +125,6 @@ def main(): cl_context = CLContext() model = ModelState(cl_context) cloudlog.warning("models loaded, dmonitoringmodeld starting") - Params().put_bool("DmModelInitialized", True) cloudlog.warning("connecting to driver stream") vipc_client = VisionIpcClient("camerad", VisionStreamType.VISION_STREAM_DRIVER, True, cl_context) From 3d54c383abe20466e756020033cdb241445be641 Mon Sep 17 00:00:00 2001 From: Lee Jong Mun <43285072+crwusiz@users.noreply.github.com> Date: Wed, 4 Dec 2024 08:31:22 +0900 Subject: [PATCH 20/26] manager: garbage collect old process (#34149) --- system/manager/process_config.py | 1 - 1 file changed, 1 deletion(-) diff --git a/system/manager/process_config.py b/system/manager/process_config.py index f5f983700e..d26fc19afe 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -89,7 +89,6 @@ procs = [ PythonProcess("deleter", "system.loggerd.deleter", always_run), PythonProcess("dmonitoringd", "selfdrive.monitoring.dmonitoringd", driverview, enabled=(not PC or WEBCAM)), PythonProcess("qcomgpsd", "system.qcomgpsd.qcomgpsd", qcomgps, enabled=TICI), - #PythonProcess("ugpsd", "system.ugpsd", only_onroad, enabled=TICI), PythonProcess("pandad", "selfdrive.pandad.pandad", always_run), PythonProcess("paramsd", "selfdrive.locationd.paramsd", only_onroad), NativeProcess("ubloxd", "system/ubloxd", ["./ubloxd"], ublox, enabled=TICI), From a22d6cd0d31b19b0d218812008b0a18011f286bf Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Tue, 3 Dec 2024 19:58:00 -0800 Subject: [PATCH 21/26] raylib: disable build on ubuntu focal (#34150) build --- system/ui/SConscript | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/system/ui/SConscript b/system/ui/SConscript index 0e164efb92..e97282b54e 100644 --- a/system/ui/SConscript +++ b/system/ui/SConscript @@ -1,18 +1,23 @@ +import subprocess + Import('env', 'arch', 'common') renv = env.Clone() -rayutil = env.Library("rayutil", ['raylib/util.cc'], LIBS='raylib') -linked_libs = ['raylib', rayutil, common] -renv['LIBPATH'] += [f'#third_party/raylib/{arch}/'] +UBUNTU_FOCAL = int(subprocess.check_output('[ -f /etc/os-release ] && . /etc/os-release && [ "$ID" = "ubuntu" ] && [ "$VERSION_ID" = "20.04" ] && echo 1 || echo 0', shell=True, encoding='utf-8').rstrip()) -mac_frameworks = [] -if arch == "Darwin": - mac_frameworks += ['OpenCL', 'CoreVideo', 'Cocoa', 'GLUT', 'CoreFoundation', 'OpenGL', 'IOKit'] -elif arch == 'larch64': - linked_libs += ['GLESv2', 'GL', 'EGL', 'wayland-client', 'wayland-egl'] -else: - linked_libs += ['OpenCL', 'dl', 'pthread'] +if not UBUNTU_FOCAL: + rayutil = env.Library("rayutil", ['raylib/util.cc'], LIBS='raylib') + linked_libs = ['raylib', rayutil, common] + renv['LIBPATH'] += [f'#third_party/raylib/{arch}/'] -if arch != 'aarch64': - renv.Program("spinner", ["raylib/spinner.cc"], LIBS=linked_libs, FRAMEWORKS=mac_frameworks) + mac_frameworks = [] + if arch == "Darwin": + mac_frameworks += ['OpenCL', 'CoreVideo', 'Cocoa', 'GLUT', 'CoreFoundation', 'OpenGL', 'IOKit'] + elif arch == 'larch64': + linked_libs += ['GLESv2', 'GL', 'EGL', 'wayland-client', 'wayland-egl'] + else: + linked_libs += ['OpenCL', 'dl', 'pthread'] + + if arch != 'aarch64': + renv.Program("spinner", ["raylib/spinner.cc"], LIBS=linked_libs, FRAMEWORKS=mac_frameworks) From 75bf7568938da87233ae2f496e0baa1b23df199a Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Tue, 3 Dec 2024 21:54:41 -0800 Subject: [PATCH 22/26] raylib: add touch support (#34151) bump raylib --- third_party/raylib/larch64/libraylib.a | 4 ++-- third_party/raylib/setup.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/third_party/raylib/larch64/libraylib.a b/third_party/raylib/larch64/libraylib.a index b4eb7f2f51..ccf80f1108 100644 --- a/third_party/raylib/larch64/libraylib.a +++ b/third_party/raylib/larch64/libraylib.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0df8ec252a3eff108ef773ba3c95b9de8bec016ebb49f99f237d8432e79e054 -size 3133756 +oid sha256:2682a70d41ec1894e060fb1bc6795dd93bf51aeee1ad779b4b0f6e82f1ff6efc +size 3140268 diff --git a/third_party/raylib/setup.sh b/third_party/raylib/setup.sh index e54ed6482f..c5f4e325ea 100755 --- a/third_party/raylib/setup.sh +++ b/third_party/raylib/setup.sh @@ -30,7 +30,7 @@ fi cd raylib_repo -COMMIT="591b3be34d84b8c924fcc8648cce9b496580a2e8" +COMMIT="5b56f44b1f1014300fbf03b636571f2bbdfc0d05" git fetch origin $COMMIT git reset --hard $COMMIT git clean -xdff . From 8f7bbe4ee3d0671d9a31145150c1de648b5055e4 Mon Sep 17 00:00:00 2001 From: DevTekVE Date: Wed, 4 Dec 2024 19:51:09 +0100 Subject: [PATCH 23/26] macos: use /tmp instead of /dev/shm (#34097) * No /dev/shm on MacOS so we go to tmp instead given that the /dev/shm makes tests not really work fine on mac * Cleanups Fix cereal messaging tests * keep msgq stock More shm updates for macos * typo * fix return * Semicolon... --- cereal/messaging/tests/test_services.py | 2 +- common/prefix.h | 2 +- common/prefix.py | 2 +- common/watchdog.cc | 3 ++- selfdrive/test/process_replay/process_replay.py | 5 ++--- system/hardware/hw.h | 8 ++++++++ system/hardware/hw.py | 7 +++++++ system/manager/manager.py | 6 +++--- system/manager/process.py | 3 ++- 9 files changed, 27 insertions(+), 11 deletions(-) diff --git a/cereal/messaging/tests/test_services.py b/cereal/messaging/tests/test_services.py index 01e859a5a3..8bfd2ea978 100644 --- a/cereal/messaging/tests/test_services.py +++ b/cereal/messaging/tests/test_services.py @@ -17,5 +17,5 @@ class TestServices: def test_generated_header(self): with tempfile.NamedTemporaryFile(suffix=".h") as f: - ret = os.system(f"python3 {services.__file__} > {f.name} && clang++ {f.name}") + ret = os.system(f"python3 {services.__file__} > {f.name} && clang++ {f.name} -std=c++11") assert ret == 0, "generated services header is not valid C" diff --git a/common/prefix.h b/common/prefix.h index 11d0bc1066..2612c05d4f 100644 --- a/common/prefix.h +++ b/common/prefix.h @@ -13,7 +13,7 @@ public: if (prefix.empty()) { prefix = util::random_string(15); } - msgq_path = "/dev/shm/" + prefix; + msgq_path = Path::shm_path() + "/" + prefix; bool ret = util::create_directories(msgq_path, 0777); assert(ret); setenv("OPENPILOT_PREFIX", prefix.c_str(), 1); diff --git a/common/prefix.py b/common/prefix.py index 3292acae86..762ae70fb4 100644 --- a/common/prefix.py +++ b/common/prefix.py @@ -11,7 +11,7 @@ from openpilot.system.hardware.hw import DEFAULT_DOWNLOAD_CACHE_ROOT class OpenpilotPrefix: def __init__(self, prefix: str = None, clean_dirs_on_exit: bool = True, shared_download_cache: bool = False): self.prefix = prefix if prefix else str(uuid.uuid4().hex[0:15]) - self.msgq_path = os.path.join('/dev/shm', self.prefix) + self.msgq_path = os.path.join(Paths.shm_path(), self.prefix) self.clean_dirs_on_exit = clean_dirs_on_exit self.shared_download_cache = shared_download_cache diff --git a/common/watchdog.cc b/common/watchdog.cc index 3483ad21c2..44e8c83e6d 100644 --- a/common/watchdog.cc +++ b/common/watchdog.cc @@ -2,8 +2,9 @@ #include "common/watchdog.h" #include "common/util.h" +#include "system/hardware/hw.h" -const std::string watchdog_fn_prefix = "/dev/shm/wd_"; // + +const std::string watchdog_fn_prefix = Path::shm_path() + "/wd_"; // + bool watchdog_kick(uint64_t ts) { static std::string fn = watchdog_fn_prefix + std::to_string(getpid()); diff --git a/selfdrive/test/process_replay/process_replay.py b/selfdrive/test/process_replay/process_replay.py index 448dc6896d..45210f1648 100755 --- a/selfdrive/test/process_replay/process_replay.py +++ b/selfdrive/test/process_replay/process_replay.py @@ -5,13 +5,13 @@ import copy import json import heapq import signal -import platform from collections import Counter, OrderedDict from dataclasses import dataclass, field from typing import Any from collections.abc import Callable, Iterable from tqdm import tqdm import capnp +from openpilot.system.hardware.hw import Paths import cereal.messaging as messaging from cereal import car @@ -780,8 +780,7 @@ def generate_params_config(lr=None, CP=None, fingerprint=None, custom_params=Non def generate_environ_config(CP=None, fingerprint=None, log_dir=None) -> dict[str, Any]: environ_dict = {} - if platform.system() != "Darwin": - environ_dict["PARAMS_ROOT"] = "/dev/shm/params" + environ_dict["PARAMS_ROOT"] = f"{Paths.shm_path()}/params" if log_dir is not None: environ_dict["LOG_ROOT"] = log_dir diff --git a/system/hardware/hw.h b/system/hardware/hw.h index 394807ccb5..d2083a5985 100644 --- a/system/hardware/hw.h +++ b/system/hardware/hw.h @@ -47,4 +47,12 @@ namespace Path { } return "/tmp/comma_download_cache" + Path::openpilot_prefix() + "/"; } + + inline std::string shm_path() { + #ifdef __APPLE__ + return"/tmp"; + #else + return "/dev/shm"; + #endif + } } // namespace Path diff --git a/system/hardware/hw.py b/system/hardware/hw.py index 694299d72e..dc36dc0474 100644 --- a/system/hardware/hw.py +++ b/system/hardware/hw.py @@ -1,4 +1,5 @@ import os +import platform from pathlib import Path from openpilot.system.hardware import PC @@ -56,3 +57,9 @@ class Paths: return Paths.comma_home() else: return "/tmp/.comma" + + @staticmethod + def shm_path() -> str: + if PC and platform.system() == "Darwin": + return "/tmp" # This is not really shared memory on macOS, but it's the closest we can get + return "/dev/shm" diff --git a/system/manager/manager.py b/system/manager/manager.py index 9ebbdf422d..4a5da353e9 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -17,7 +17,7 @@ from openpilot.system.manager.process_config import managed_processes from openpilot.system.athena.registration import register, UNREGISTERED_DONGLE_ID from openpilot.common.swaglog import cloudlog, add_file_handler from openpilot.system.version import get_build_metadata, terms_version, training_version - +from openpilot.system.hardware.hw import Paths def manager_init() -> None: @@ -52,11 +52,11 @@ def manager_init() -> None: # Create folders needed for msgq try: - os.mkdir("/dev/shm") + os.mkdir(Paths.shm_path()) except FileExistsError: pass except PermissionError: - print("WARNING: failed to make /dev/shm") + print(f"WARNING: failed to make {Paths.shm_path()}") # set version params params.put("Version", build_metadata.openpilot.version) diff --git a/system/manager/process.py b/system/manager/process.py index 10c8f74f9d..0e9c9b9804 100644 --- a/system/manager/process.py +++ b/system/manager/process.py @@ -16,8 +16,9 @@ import openpilot.system.sentry as sentry from openpilot.common.basedir import BASEDIR from openpilot.common.params import Params from openpilot.common.swaglog import cloudlog +from openpilot.system.hardware.hw import Paths -WATCHDOG_FN = "/dev/shm/wd_" +WATCHDOG_FN = f"{Paths.shm_path()}/wd_" ENABLE_WATCHDOG = os.getenv("NO_WATCHDOG") is None From c6e4241bad175cc2767af5fa096752c2a4d71746 Mon Sep 17 00:00:00 2001 From: commaci-public <60409688+commaci-public@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:34:54 -0800 Subject: [PATCH 24/26] [bot] Update Python packages (#34140) * Update Python packages * pin * fstring * this too --------- Co-authored-by: Vehicle Researcher Co-authored-by: Maxime Desroches --- msgq_repo | 2 +- panda | 2 +- pyproject.toml | 4 + scripts/code_stats.py | 10 +- scripts/waste.py | 4 +- selfdrive/debug/can_printer.py | 2 +- selfdrive/debug/fingerprint_from_route.py | 2 +- selfdrive/debug/get_fingerprint.py | 2 +- selfdrive/selfdrived/tests/test_alerts.py | 2 +- system/hardware/pc/hardware.py | 2 +- system/hardware/tici/hardware.py | 4 +- system/qcomgpsd/qcomgpsd.py | 4 +- system/qcomgpsd/structs.py | 2 +- system/ubloxd/tests/print_gps_stats.py | 2 +- tools/camerastream/compressed_vipc.py | 6 +- tools/latencylogger/latency_logger.py | 4 +- tools/scripts/fetch_image_from_route.py | 4 +- tools/sim/lib/manual_ctrl.py | 4 +- uv.lock | 2056 +++++++++++---------- 19 files changed, 1103 insertions(+), 1015 deletions(-) diff --git a/msgq_repo b/msgq_repo index e621ce0763..434ed2312c 160000 --- a/msgq_repo +++ b/msgq_repo @@ -1 +1 @@ -Subproject commit e621ce0763803ea821f9b41a20b0b77d83ab6c97 +Subproject commit 434ed2312c980b5504a4a75001d04c3ecbddf93f diff --git a/panda b/panda index 2fbf0c5ff8..c7cc2deaf0 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 2fbf0c5ff86f2e94021d7c937b9f8eb6839af484 +Subproject commit c7cc2deaf046403899b5bcc964b9f48bfd508534 diff --git a/pyproject.toml b/pyproject.toml index c27ebcdb4f..2bfcc19650 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,9 @@ dependencies = [ # body / webrtcd "aiohttp", "aiortc", + # aiortc does not put an upper bound on pyopenssl and is now incompatible + # with the latest release + "pyopenssl < 24.3.0", "pyaudio", # panda @@ -239,6 +242,7 @@ exclude = [ "cereal", "panda", "opendbc", + "opendbc_repo", "rednose_repo", "tinygrad_repo", "teleoprtc", diff --git a/scripts/code_stats.py b/scripts/code_stats.py index 3189cd7cc1..1ffc8901bd 100755 --- a/scripts/code_stats.py +++ b/scripts/code_stats.py @@ -37,7 +37,7 @@ for f in sorted(pyf): lns = len(src.split("\n")) tree = ast.parse(src) Analyzer().visit(tree) - print("%5d %s %s" % (lns, f, xbit)) + print(f"{lns:5d} {f} {xbit}") if 'test' in f: testlns += lns elif f.startswith(('tools/', 'scripts/', 'selfdrive/debug')): @@ -47,8 +47,8 @@ for f in sorted(pyf): else: tlns += lns -print("%d lines of openpilot python" % tlns) -print("%d lines of car ports" % carlns) -print("%d lines of tools/scripts/debug" % scriptlns) -print("%d lines of tests" % testlns) +print(f"{tlns} lines of openpilot python") +print(f"{carlns} lines of car ports") +print(f"{scriptlns} lines of tools/scripts/debug") +print(f"{testlns} lines of tests") #print(sorted(list(imps))) diff --git a/scripts/waste.py b/scripts/waste.py index 0764ff77c3..bdee09d3f6 100755 --- a/scripts/waste.py +++ b/scripts/waste.py @@ -16,9 +16,9 @@ def waste(core): j = 0 while 1: if (i % 100) == 0: - setproctitle("%3d: %8d" % (core, i)) + setproctitle(f"{core:3d}: {i:8d}") lt = time.monotonic() - print("%3d: %8d %f %.2f" % (core, i, lt-st, j)) + print(f"{core:3d}: {i:8d} {lt-st:f} {j:.2f}") st = lt i += 1 j = np.sum(np.matmul(m1, m2)) diff --git a/selfdrive/debug/can_printer.py b/selfdrive/debug/can_printer.py index b93e48ba73..f2ed6730d3 100755 --- a/selfdrive/debug/can_printer.py +++ b/selfdrive/debug/can_printer.py @@ -28,7 +28,7 @@ def can_printer(bus, max_msg, addr, ascii_decode): x = binascii.hexlify(msgs[_addr][-1]).decode('ascii') freq = len(msgs[_addr]) / (time.monotonic() - start) if max_msg is None or _addr < max_msg: - dd += "%04X(%4d)(%6d)(%3dHz) %s %s\n" % (_addr, _addr, len(msgs[_addr]), freq, x.ljust(20), a) + dd += f"{_addr:04X}({_addr:4d})({len(msgs[_addr]):6d})({freq:3}dHz) {x.ljust(20)} {a}\n" print(dd) lp = time.monotonic() diff --git a/selfdrive/debug/fingerprint_from_route.py b/selfdrive/debug/fingerprint_from_route.py index 9da388999b..179ff4c838 100755 --- a/selfdrive/debug/fingerprint_from_route.py +++ b/selfdrive/debug/fingerprint_from_route.py @@ -22,7 +22,7 @@ def get_fingerprint(lr): msgs[c.address] = len(c.dat) # show CAN fingerprint - fingerprint = ', '.join("%d: %d" % v for v in sorted(msgs.items())) + fingerprint = ', '.join(f"{v[0]}: {v[1]}" for v in sorted(msgs.items())) print(f"\nfound {len(msgs)} messages. CAN fingerprint:\n") print(fingerprint) diff --git a/selfdrive/debug/get_fingerprint.py b/selfdrive/debug/get_fingerprint.py index 14f6c0e33c..75c3d5579f 100755 --- a/selfdrive/debug/get_fingerprint.py +++ b/selfdrive/debug/get_fingerprint.py @@ -25,7 +25,7 @@ while True: if c.src % 0x80 == 0 and c.address < 0x800 and c.address not in (0x7df, 0x7e0, 0x7e8): msgs[c.address] = len(c.dat) - fingerprint = ', '.join("%d: %d" % v for v in sorted(msgs.items())) + fingerprint = ', '.join(f"{v[0]}: {v[1]}" for v in sorted(msgs.items())) print(f"number of messages {len(msgs)}:") print(f"fingerprint {fingerprint}") diff --git a/selfdrive/selfdrived/tests/test_alerts.py b/selfdrive/selfdrived/tests/test_alerts.py index f6a0e365fc..55bb8f019d 100644 --- a/selfdrive/selfdrived/tests/test_alerts.py +++ b/selfdrive/selfdrived/tests/test_alerts.py @@ -42,7 +42,7 @@ class TestAlerts: for name, e in events.items(): if not name.endswith("DEPRECATED"): - fail_msg = "%s @%d not in EVENTS" % (name, e) + fail_msg = f"{name} @{e} not in EVENTS" assert e in EVENTS.keys(), fail_msg # ensure alert text doesn't exceed allowed width diff --git a/system/hardware/pc/hardware.py b/system/hardware/pc/hardware.py index a2cbafeae8..c778f6429b 100644 --- a/system/hardware/pc/hardware.py +++ b/system/hardware/pc/hardware.py @@ -21,7 +21,7 @@ class Pc(HardwareBase): print("uninstall") def get_imei(self, slot): - return "%015d" % random.randint(0, 1 << 32) + return f"{random.randint(0, 1 << 32):015d}" def get_serial(self): return "cccccccc" diff --git a/system/hardware/tici/hardware.py b/system/hardware/tici/hardware.py index 2692fc128a..c53ef586a3 100644 --- a/system/hardware/tici/hardware.py +++ b/system/hardware/tici/hardware.py @@ -323,8 +323,8 @@ class Tici(HardwareBase): os.system("sudo poweroff") def get_thermal_config(self): - return ThermalConfig(cpu=(["cpu%d-silver-usr" % i for i in range(4)] + - ["cpu%d-gold-usr" % i for i in range(4)], 1000), + return ThermalConfig(cpu=([f"cpu{i}-silver-usr" for i in range(4)] + + [f"cpu{i}-gold-usr" for i in range(4)], 1000), gpu=(("gpu0-usr", "gpu1-usr"), 1000), mem=("ddr-usr", 1000), bat=(None, 1), diff --git a/system/qcomgpsd/qcomgpsd.py b/system/qcomgpsd/qcomgpsd.py index 43ddb89939..e768ec32e9 100755 --- a/system/qcomgpsd/qcomgpsd.py +++ b/system/qcomgpsd/qcomgpsd.py @@ -273,7 +273,7 @@ def main() -> NoReturn: (pending_msgs, log_outer_length), inner_log_packet = unpack_from(' 0: - cloudlog.debug("have %d pending messages" % pending_msgs) + cloudlog.debug(f"have {pending_msgs} pending messages") assert log_outer_length == len(inner_log_packet) (log_inner_length, log_type, log_time), log_payload = unpack_from(' NoReturn: continue if DEBUG: - print("%.4f: got log: %x len %d" % (time.time(), log_type, len(log_payload))) + print(f"{time.time():.4f}: got log: {log_type} len {len(log_payload)}") if log_type == LOG_GNSS_OEMDRE_MEASUREMENT_REPORT: msg = messaging.new_message('qcomGnss', valid=True) diff --git a/system/qcomgpsd/structs.py b/system/qcomgpsd/structs.py index f97704bbee..497493a0bf 100644 --- a/system/qcomgpsd/structs.py +++ b/system/qcomgpsd/structs.py @@ -322,7 +322,7 @@ def parse_struct(ss): cnt = int(nam.split("[")[1].split("]")[0]) st += st[-1]*(cnt-1) for i in range(cnt): - nams.append("%s[%d]" % (nam.split("[")[0], i)) + nams.append(f'{nam.split("[")[0]}[{i}]') else: nams.append(nam) return st, nams diff --git a/system/ubloxd/tests/print_gps_stats.py b/system/ubloxd/tests/print_gps_stats.py index edf94c060a..8d190f9ec1 100755 --- a/system/ubloxd/tests/print_gps_stats.py +++ b/system/ubloxd/tests/print_gps_stats.py @@ -13,7 +13,7 @@ if __name__ == "__main__": cnos = [] for m in ug.measurementReport.measurements: cnos.append(m.cno) - print("Sats: %d Accuracy: %.2f m cnos" % (ug.measurementReport.numMeas, gle.horizontalAccuracy), sorted(cnos)) + print(f"Sats: {ug.measurementReport.numMeas} Accuracy: {gle.horizontalAccuracy:.2f} m cnos", sorted(cnos)) except Exception: pass sm.update() diff --git a/tools/camerastream/compressed_vipc.py b/tools/camerastream/compressed_vipc.py index cbea060920..8c773f9dfe 100755 --- a/tools/camerastream/compressed_vipc.py +++ b/tools/camerastream/compressed_vipc.py @@ -101,9 +101,9 @@ def decoder(addr, vipc_server, vst, nvidia, W, H, debug=False): pc_latency = (time.monotonic()-time_q[0])*1000 time_q = time_q[1:] if debug: - print("%2d %4d %.3f %.3f roll %6.2f ms latency %6.2f ms + %6.2f ms + %6.2f ms = %6.2f ms" - % (len(msgs), evta.idx.encodeId, evt.logMonoTime/1e9, evta.idx.timestampEof/1e6, frame_latency, - process_latency, network_latency, pc_latency, process_latency+network_latency+pc_latency ), len(evta.data), sock_name) + print(f"{len(msgs):2d} {evta.idx.encodeId:4d} {evt.logMonoTime/1e9:.3f} {evta.idx.timestampEof/1e6:.3f} \ + roll {frame_latency:6.2f} ms latency {process_latency:6.2f} ms + {network_latency:6.2f} ms + {pc_latency:6.2f} ms \ + = {process_latency+network_latency+pc_latency:6.2f} ms", len(evta.data), sock_name) class CompressedVipc: diff --git a/tools/latencylogger/latency_logger.py b/tools/latencylogger/latency_logger.py index 32df0da4b5..65cb6e6c2c 100755 --- a/tools/latencylogger/latency_logger.py +++ b/tools/latencylogger/latency_logger.py @@ -168,9 +168,9 @@ def print_timestamps(timestamps, durations, start_times, relative): print(" "+service) events = timestamps[frame_id][service] for event, time in sorted(events, key = lambda x: x[1]): - print(" "+'%-53s%-53s' %(event, str((time-t0)/1e6))) + print(" "+f'{event:<53s}{str((time-t0)/1e6):<53s}') for event, time in durations[frame_id][service]: - print(" "+'%-53s%-53s' %(event, str(time*1000))) + print(" "+f'{event:<53s}{str(time*1000):<53s}') def graph_timestamps(timestamps, start_times, end_times, relative, offset_services=False, title=""): plt.rcParams.update({'font.size': 18}) diff --git a/tools/scripts/fetch_image_from_route.py b/tools/scripts/fetch_image_from_route.py index b59e7c895e..521f1597ec 100755 --- a/tools/scripts/fetch_image_from_route.py +++ b/tools/scripts/fetch_image_from_route.py @@ -31,11 +31,11 @@ print("got api response") segments = r.json()[camera] if segment >= len(segments): - raise Exception("segment %d not found, got %d segments" % (segment, len(segments))) + raise Exception(f"segment {segment} not found, got {len(segments)} segments") fr = FrameReader(segments[segment]) if frame >= fr.frame_count: - raise Exception("frame %d not found, got %d frames" % (frame, fr.frame_count)) + raise Exception("frame {frame} not found, got {fr.frame_count} frames") im = Image.fromarray(fr.get(frame, count=1, pix_fmt="rgb24")[0]) fn = f"uxxx_{route.replace('|', '_')}_{segment}_{frame}.png" diff --git a/tools/sim/lib/manual_ctrl.py b/tools/sim/lib/manual_ctrl.py index 972f7023bb..c2be0d0458 100755 --- a/tools/sim/lib/manual_ctrl.py +++ b/tools/sim/lib/manual_ctrl.py @@ -133,8 +133,8 @@ def wheel_poll_thread(q: 'Queue[str]') -> NoReturn: button_name_list.append(btn_name) button_states[btn_name] = 0 - print('%d axes found: %s' % (num_axes, ', '.join(axis_name_list))) - print('%d buttons found: %s' % (num_buttons, ', '.join(button_name_list))) + print(f'{num_axes} axes found: {", ".join(axis_name_list)}') + print(f'{num_buttons} buttons found: {", ".join(button_name_list)}') # Enable FF import evdev diff --git a/uv.lock b/uv.lock index b21add8e9c..4ae1288bed 100644 --- a/uv.lock +++ b/uv.lock @@ -11,16 +11,16 @@ resolution-markers = [ [[package]] name = "aiohappyeyeballs" -version = "2.4.3" +version = "2.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bc/69/2f6d5a019bd02e920a3417689a89887b39ad1e350b562f9955693d900c40/aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586", size = 21809 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/55/e4373e888fdacb15563ef6fa9fa8c8252476ea071e96fb46defac9f18bf2/aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745", size = 21977 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/d8/120cd0fe3e8530df0539e71ba9683eade12cae103dd7543e50d15f737917/aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572", size = 14742 }, + { url = "https://files.pythonhosted.org/packages/b9/74/fbb6559de3607b3300b9be3cc64e97548d55678e44623db17820dbd20002/aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8", size = 14756 }, ] [[package]] name = "aiohttp" -version = "3.11.2" +version = "3.11.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -31,38 +31,38 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/68/97e4fab2add44bbd4b0107379d6900e80556c9a5d8ff548385690807b3f6/aiohttp-3.11.2.tar.gz", hash = "sha256:68d1f46f9387db3785508f5225d3acbc5825ca13d9c29f2b5cce203d5863eb79", size = 7658216 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/24/d5c0aed3ed90896f8505786e3a1e348fd9c61284ef21f54ee9cdf8b92e4f/aiohttp-3.11.9.tar.gz", hash = "sha256:a9266644064779840feec0e34f10a89b3ff1d2d6b751fe90017abcad1864fa7c", size = 7668012 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/0b/19fd7fca18e288edf050c39504504dd58f836e43df70a05322276fe65d46/aiohttp-3.11.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:50e0aee4adc9abcd2109c618a8d1b2c93b85ac277b24a003ab147d91e068b06d", size = 706493 }, - { url = "https://files.pythonhosted.org/packages/59/82/be16718d07bb9bbdf12b06c248019e254bdf5f55d8565f0e015754cb924c/aiohttp-3.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9aa4e68f1e4f303971ec42976fb170204fb5092de199034b57199a1747e78a2d", size = 466353 }, - { url = "https://files.pythonhosted.org/packages/8c/19/9303464572565e3c3791ba8bfe07ab6cc071b36513b69e5a37ea2656b7a4/aiohttp-3.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d84930b4145991214602372edd7305fc76b700220db79ac0dd57d3afd0f0a1ca", size = 453879 }, - { url = "https://files.pythonhosted.org/packages/d8/f4/0b47884b3e8ef8916207abea6bcfe43b31380cc06dea23ad3a4335d1c61f/aiohttp-3.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ec8afd362356b8798c8caa806e91deb3f0602d8ffae8e91d2d3ced2a90c35e", size = 1684883 }, - { url = "https://files.pythonhosted.org/packages/b6/ff/f9f701e1edc002dd19b1de1a75aeeee2a912988dca368b24d01cd7e57a9d/aiohttp-3.11.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb0544a0e8294a5a5e20d3cacdaaa9a911d7c0a9150f5264aef36e7d8fdfa07e", size = 1741049 }, - { url = "https://files.pythonhosted.org/packages/1d/6a/7f2bb6b527462b61cfb95d305f918d8090fb5408b330e3fdb949f2d44c2a/aiohttp-3.11.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7b0a1618060e3f5aa73d3526ca2108a16a1b6bf86612cd0bb2ddcbef9879d06", size = 1780767 }, - { url = "https://files.pythonhosted.org/packages/42/8b/e379af81ff3ca28ed3b0ba050cd67365c2b33a575e8cdcd932baa51adf39/aiohttp-3.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d878a0186023ac391861958035174d0486f3259cabf8fd94e591985468da3ea", size = 1676641 }, - { url = "https://files.pythonhosted.org/packages/50/a8/2be8e7042edae7767cef5461ab383a73e13b45bcd07d74a3a0ccc97c6d1b/aiohttp-3.11.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e33a7eddcd07545ccf5c3ab230f60314a17dc33e285475e8405e26e21f02660", size = 1619605 }, - { url = "https://files.pythonhosted.org/packages/16/23/79966a67a7301f15cabe0d350e703f6d55fc111268912fe9ad9425af4dfd/aiohttp-3.11.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4d7fad8c456d180a6d2f44c41cfab4b80e2e81451815825097db48b8293f59d5", size = 1643102 }, - { url = "https://files.pythonhosted.org/packages/f0/81/cc0c32f49879e96d11a363be4cdd396944d8725d366352bd8dbc7e6f112e/aiohttp-3.11.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d954ba0eae7f33884d27dc00629ca4389d249eb8d26ca07c30911257cae8c96", size = 1647233 }, - { url = "https://files.pythonhosted.org/packages/cf/b3/cbf424e5bd888adf7d28dcd905454d6a03ebca9aa3904ed1d9b4c960cae8/aiohttp-3.11.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:afa55e863224e664a782effa62245df73fdfc55aee539bed6efacf35f6d4e4b7", size = 1730812 }, - { url = "https://files.pythonhosted.org/packages/64/88/7ee1985eead8949508c4cd74465a43ac51fd46fd3bb6b1a1bd61dead4dbb/aiohttp-3.11.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:10a5f91c319d9d4afba812f72984816b5fcd20742232ff7ecc1610ffbf3fc64d", size = 1751332 }, - { url = "https://files.pythonhosted.org/packages/75/47/d4318c6dc66b91236e65c46b76813d9a63db8b546c6cb6ccd49b1fad5f53/aiohttp-3.11.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6e8e19a80ba194db5c06915a9df23c0c06e0e9ca9a4db9386a6056cca555a027", size = 1692518 }, - { url = "https://files.pythonhosted.org/packages/ef/4b/7ed90469a6f471d032d6cdee08c5a1efa48fd45b467e90f98ef497ee388a/aiohttp-3.11.2-cp311-cp311-win32.whl", hash = "sha256:9c8d1db4f65bbc9d75b7b271d68fb996f1c8c81a525263862477d93611856c2d", size = 414673 }, - { url = "https://files.pythonhosted.org/packages/7b/92/74c4c5736e82de1d2575f3347d4fde42dad31979d7238706f118854c402c/aiohttp-3.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:2adb967454e10e69478ba4a8d8afbba48a7c7a8619216b7c807f8481cc66ddfb", size = 440662 }, - { url = "https://files.pythonhosted.org/packages/0e/f8/e342cfe27681b1f846f05e7374800deec8162067094ae28e7ab4d7c3bfdf/aiohttp-3.11.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f833a80d9de9307d736b6af58c235b17ef7f90ebea7b9c49cd274dec7a66a2f1", size = 702017 }, - { url = "https://files.pythonhosted.org/packages/de/8c/e15aec18009ef73f6f1b1e4c077ce27d0c7045643106eda058f329eac364/aiohttp-3.11.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:382f853516664d2ebfc75dc01da4a10fdef5edcb335fe7b45cf471ce758ecb18", size = 461696 }, - { url = "https://files.pythonhosted.org/packages/4c/c6/2ea8c333f6c26cc48eb35e7bc369124ece9591bb8ef236cf72cb568da4f7/aiohttp-3.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d3a2bcf6c81639a165da93469e1e0aff67c956721f3fa9c0560f07dd1e505116", size = 454142 }, - { url = "https://files.pythonhosted.org/packages/ea/d4/259a3883bafe107ab43aff367afb59b8a92a89269130340422176e01ef98/aiohttp-3.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de3b4d5fb5d69749104b880a157f38baeea7765c93d9cd3837cedd5b84729e10", size = 1678074 }, - { url = "https://files.pythonhosted.org/packages/cc/ae/849abce780c9f4d765c8b18f9be77a6dae3165452cfe99aed346b016fa30/aiohttp-3.11.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a90a0dc4b054b5af299a900bf950fe8f9e3e54322bc405005f30aa5cacc5c98", size = 1734328 }, - { url = "https://files.pythonhosted.org/packages/1a/9d/ea38bfedcb327d16ce8123ab70d924e3d8c935e166d3de42537024da239f/aiohttp-3.11.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32334f35824811dd20a12cc90825d000e6b50faaeaa71408d42269151a66140d", size = 1788462 }, - { url = "https://files.pythonhosted.org/packages/26/e4/5deb69474fbadcbbe272f61fc31a75ad5e8b831a619fcb80c8d9c5be2ab6/aiohttp-3.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cba0b8d25aa2d450762f3dd6df85498f5e7c3ad0ddeb516ef2b03510f0eea32", size = 1686944 }, - { url = "https://files.pythonhosted.org/packages/e2/2d/deb6af863dc31af4f443e951ec8afefac44caf2b1603a34b8fcf372d58e4/aiohttp-3.11.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bbb2dbc2701ab7e9307ca3a8fa4999c5b28246968e0a0202a5afabf48a42e22", size = 1618178 }, - { url = "https://files.pythonhosted.org/packages/1d/7b/0bb81a27a9f48599ff6662c7a79a4a6aa5c3ee4fe03c91d1fea060259c75/aiohttp-3.11.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97fba98fc5d9ccd3d33909e898d00f2494d6a9eec7cbda3d030632e2c8bb4d00", size = 1635351 }, - { url = "https://files.pythonhosted.org/packages/56/52/c96ba7e70cc9b12e16c28239d740a2625d2d8abb57827648da06f173a18b/aiohttp-3.11.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0ebdf5087e2ce903d8220cc45dcece90c2199ae4395fd83ca616fcc81010db2c", size = 1649162 }, - { url = "https://files.pythonhosted.org/packages/7d/be/18699f1767cfb4b236c9334e6829ebf94c5dbc36d72502fd4df82fc20eb9/aiohttp-3.11.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:122768e3ae9ce74f981b46edefea9c6e5a40aea38aba3ac50168e6370459bf20", size = 1697112 }, - { url = "https://files.pythonhosted.org/packages/bb/b0/2a357d4bbb4fb11284827e9db2ad6d16119779affc1271ae791ee3242ceb/aiohttp-3.11.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5587da333b7d280a312715b843d43e734652aa382cba824a84a67c81f75b338b", size = 1728003 }, - { url = "https://files.pythonhosted.org/packages/e3/15/2da3f1300eb993f8a011545ad4b82d56ed6e684fc38a043fa79b629eec35/aiohttp-3.11.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:85de9904bc360fd29a98885d2bfcbd4e02ab33c53353cb70607f2bea2cb92468", size = 1688295 }, - { url = "https://files.pythonhosted.org/packages/2b/6e/b1e643188e4f26bae8d3c9aed7a40fee21ec71fb36ca1868fb6ad83c1a44/aiohttp-3.11.2-cp312-cp312-win32.whl", hash = "sha256:b470de64d17156c37e91effc109d3b032b39867000e2c126732fe01d034441f9", size = 409773 }, - { url = "https://files.pythonhosted.org/packages/6d/2c/5f45a92c3858e0c1b9072f5429cf68e4918ec5c7c32ebe38305faa7761fe/aiohttp-3.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:3f617a48b70f4843d54f52440ea1e58da6bdab07b391a3a6aed8d3b311a4cc04", size = 436230 }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d65424fb507f414fb363b210dff29406462ba1e15893ccaabf9dbb1eaf13/aiohttp-3.11.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:afcda759a69c6a8be3aae764ec6733155aa4a5ad9aad4f398b52ba4037942fe3", size = 707624 }, + { url = "https://files.pythonhosted.org/packages/23/3d/7d2797b1b0bd60d548ab927c879fada2bfad0705c6055f250eefd1790bb9/aiohttp-3.11.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5bba6b83fde4ca233cfda04cbd4685ab88696b0c8eaf76f7148969eab5e248a", size = 467506 }, + { url = "https://files.pythonhosted.org/packages/9f/41/5796191183588f3ed469db3a32e13aa23da51693b65ac66890d66e1f9b98/aiohttp-3.11.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:442356e8924fe1a121f8c87866b0ecdc785757fd28924b17c20493961b3d6697", size = 454577 }, + { url = "https://files.pythonhosted.org/packages/1c/6c/03753bf70534c442635480b91f0d9bf98dc726cccd6a707a384bfef40875/aiohttp-3.11.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f737fef6e117856400afee4f17774cdea392b28ecf058833f5eca368a18cf1bf", size = 1684693 }, + { url = "https://files.pythonhosted.org/packages/84/1b/40e3866a0f0851c7406779b0c010efb6d135814a1107deda2c72c14a527e/aiohttp-3.11.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea142255d4901b03f89cb6a94411ecec117786a76fc9ab043af8f51dd50b5313", size = 1742652 }, + { url = "https://files.pythonhosted.org/packages/cf/77/1ce991ea0ba2acac23df8ade94e554c5d077e7c3b0110a7495ce4d4d1c92/aiohttp-3.11.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1e9e447856e9b7b3d38e1316ae9a8c92e7536ef48373de758ea055edfd5db5", size = 1784415 }, + { url = "https://files.pythonhosted.org/packages/fb/91/43a53cc3b559b0edf863fd2dde69ab8fec58602fbe94484a687dc375d41b/aiohttp-3.11.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7f6173302f8a329ca5d1ee592af9e628d3ade87816e9958dcf7cdae2841def7", size = 1674140 }, + { url = "https://files.pythonhosted.org/packages/88/64/6893b99cb4fa43e92d39cc788ceb003ffd9aa3e5aa4f9a73ba796be14a3e/aiohttp-3.11.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c6147c6306f537cff59409609508a1d2eff81199f0302dd456bb9e7ea50c39", size = 1618798 }, + { url = "https://files.pythonhosted.org/packages/44/0f/f1d62912c4507411b84bb1f651c0029bc99848dcf36f89787843789940c1/aiohttp-3.11.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e9d036a9a41fc78e8a3f10a86c2fc1098fca8fab8715ba9eb999ce4788d35df0", size = 1652997 }, + { url = "https://files.pythonhosted.org/packages/54/71/9ef035c1ac7b8c1f54925396be4b3f633d757ab06fb7f45c975e10303e82/aiohttp-3.11.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2ac9fd83096df36728da8e2f4488ac3b5602238f602706606f3702f07a13a409", size = 1649014 }, + { url = "https://files.pythonhosted.org/packages/4e/66/3dcf6ca727dbf20ac79ef09ad367e6d41ae06943423800f21b8749fca205/aiohttp-3.11.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d3108f0ad5c6b6d78eec5273219a5bbd884b4aacec17883ceefaac988850ce6e", size = 1731893 }, + { url = "https://files.pythonhosted.org/packages/79/3b/b6ee96bef06f8bae0764c0fd8ecbd363e79fac2056b0fa79ede2a8673e30/aiohttp-3.11.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:96bbec47beb131bbf4bae05d8ef99ad9e5738f12717cfbbf16648b78b0232e87", size = 1754135 }, + { url = "https://files.pythonhosted.org/packages/f0/42/9a44c25105c232f1bbed50664ebc30de740e08d1d8de880836536ae5bc92/aiohttp-3.11.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fc726c3fa8f606d07bd2b500e5dc4c0fd664c59be7788a16b9e34352c50b6b6b", size = 1691731 }, + { url = "https://files.pythonhosted.org/packages/23/18/6d0d5873f6e1b2ce24520d4473998c246b3849724b4522cd3839e20f829f/aiohttp-3.11.9-cp311-cp311-win32.whl", hash = "sha256:5720ebbc7a1b46c33a42d489d25d36c64c419f52159485e55589fbec648ea49a", size = 415406 }, + { url = "https://files.pythonhosted.org/packages/f4/e9/472aa43749d48b3de28e4b16a5a663555e7b832d3b7fa9a3ceb766b1287e/aiohttp-3.11.9-cp311-cp311-win_amd64.whl", hash = "sha256:17af09d963fa1acd7e4c280e9354aeafd9e3d47eaa4a6bfbd2171ad7da49f0c5", size = 441501 }, + { url = "https://files.pythonhosted.org/packages/fa/43/b3c28a7e8f8b5e8ef0bea9fcabe8e99787c70fa526e5bc8185fd89f46434/aiohttp-3.11.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c1f2d7fd583fc79c240094b3e7237d88493814d4b300d013a42726c35a734bc9", size = 703661 }, + { url = "https://files.pythonhosted.org/packages/f3/2c/be4624671e5ed344fca9196d0823eb6a17383cbe13d051d22d3a1f6ecbf7/aiohttp-3.11.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d4b8a1b6c7a68c73191f2ebd3bf66f7ce02f9c374e309bdb68ba886bbbf1b938", size = 463054 }, + { url = "https://files.pythonhosted.org/packages/d6/21/8d14fa0bdae468ebe419df1764583ecc9e995a2ccd8a11ee8146a09fb5e5/aiohttp-3.11.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd3f711f4c99da0091ced41dccdc1bcf8be0281dc314d6d9c6b6cf5df66f37a9", size = 455006 }, + { url = "https://files.pythonhosted.org/packages/42/de/3fc5e94a24bf079709e9fed3572ebb5efb32f0995baf08a985ee9f517b0b/aiohttp-3.11.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44cb1a1326a0264480a789e6100dc3e07122eb8cd1ad6b784a3d47d13ed1d89c", size = 1681364 }, + { url = "https://files.pythonhosted.org/packages/69/e0/bd9346efcdd3344284e4b4088bc2c720065176bd9180517bdc7097218903/aiohttp-3.11.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7a7ddf981a0b953ade1c2379052d47ccda2f58ab678fca0671c7c7ca2f67aac2", size = 1735986 }, + { url = "https://files.pythonhosted.org/packages/9b/a5/549ce29e21ebf555dcf5c81e19e6eb30eb8de26f8da304f05a28d6d66d8c/aiohttp-3.11.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ffa45cc55b18d4ac1396d1ddb029f139b1d3480f1594130e62bceadf2e1a838", size = 1792263 }, + { url = "https://files.pythonhosted.org/packages/7a/2b/23124c04701e0d2e215be59bf445c33602b1ccc4d9acb7bccc2ec20c892d/aiohttp-3.11.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cca505829cdab58c2495ff418c96092d225a1bbd486f79017f6de915580d3c44", size = 1690838 }, + { url = "https://files.pythonhosted.org/packages/af/a6/ebb8be53787c57dd7dd8b9617357af60d603ccd2fbf7a9e306f33178894b/aiohttp-3.11.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44d323aa80a867cb6db6bebb4bbec677c6478e38128847f2c6b0f70eae984d72", size = 1618311 }, + { url = "https://files.pythonhosted.org/packages/9b/3c/cb8e5af30e33775539b4a6ea818eb16b0b01f68ce7a2fa77dff5df3dee80/aiohttp-3.11.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b2fab23003c4bb2249729a7290a76c1dda38c438300fdf97d4e42bf78b19c810", size = 1640417 }, + { url = "https://files.pythonhosted.org/packages/16/2d/62593ce65e5811ea46e521644e03d0c47345bf9b6c2e6efcb759915d6aa3/aiohttp-3.11.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:be0c7c98e38a1e3ad7a6ff64af8b6d6db34bf5a41b1478e24c3c74d9e7f8ed42", size = 1645507 }, + { url = "https://files.pythonhosted.org/packages/4f/6b/810981c99932665a225d7bdffacbda512dde6f11364ce11477662e457115/aiohttp-3.11.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5cc5e0d069c56645446c45a4b5010d4b33ac6c5ebfd369a791b5f097e46a3c08", size = 1701090 }, + { url = "https://files.pythonhosted.org/packages/1c/01/79c8d156534c034207ccbb94a51f1ae4a625834a31e27670175f1e1e79b2/aiohttp-3.11.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9bcf97b971289be69638d8b1b616f7e557e1342debc7fc86cf89d3f08960e411", size = 1733598 }, + { url = "https://files.pythonhosted.org/packages/c0/8f/873f0d3a47ec203ccd04dbd623f2428b6010ba6b11107aa9b44ad0ebfc86/aiohttp-3.11.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c7333e7239415076d1418dbfb7fa4df48f3a5b00f8fdf854fca549080455bc14", size = 1693573 }, + { url = "https://files.pythonhosted.org/packages/2f/8c/a4964108383eb8f0e5a85ee0fdc00f9f0bdf28bb6a751be05a63c047ccbe/aiohttp-3.11.9-cp312-cp312-win32.whl", hash = "sha256:9384b07cfd3045b37b05ed002d1c255db02fb96506ad65f0f9b776b762a7572e", size = 410354 }, + { url = "https://files.pythonhosted.org/packages/c8/9e/79aed1b3e110a02081ca47ba4a27d7e20040af241643a2e527c668634f22/aiohttp-3.11.9-cp312-cp312-win_amd64.whl", hash = "sha256:f5252ba8b43906f206048fa569debf2cd0da0316e8d5b4d25abe53307f573941", size = 436657 }, ] [[package]] @@ -80,7 +80,7 @@ wheels = [ [[package]] name = "aiortc" -version = "1.9.0" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aioice" }, @@ -92,15 +92,15 @@ dependencies = [ { name = "pylibsrtp" }, { name = "pyopenssl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/32/e9b01e2271124643e5dc15c273f2bb8155efebf5bc2115407441ac62f4c5/aiortc-1.9.0.tar.gz", hash = "sha256:03faa76d76ef0e5989ac10386898b029369756102217230e2fcd4b029c50b303", size = 1168973 } +sdist = { url = "https://files.pythonhosted.org/packages/35/85/6716217e91790f08d382fcf48eea83ace2874732ab5872a649623ebcfd93/aiortc-1.7.0.tar.gz", hash = "sha256:4fd900797b419a9189443b7c95a2ce4bf5aa0d9542d8d19edfabf30aa5fbc296", size = 1167708 } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/01/db89910fc4dfb72ca25fd9a41326762a490d93d39d2fc4aac3f86c05857d/aiortc-1.9.0-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e3e67c1970c2cffacac53c8f161df264efc62b22721c64a621940935028ee087", size = 1216069 }, - { url = "https://files.pythonhosted.org/packages/4c/6d/76ed96521080492c7264eacf73a8cba2202f1ff9f59af1776c5a2532f332/aiortc-1.9.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d893cb3d4ffa0ff4f9bb03a88f0a700cdbcd4c0dc060a46c59a27ccd1c890663", size = 896012 }, - { url = "https://files.pythonhosted.org/packages/8c/87/1f666108764fa5b557bed4f0fd5e2acccd739bb2cca2b766dcacb53e5669/aiortc-1.9.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:176b4eb38d833667f87cf719a7a3e105e25a35b138b30893294418c1c96e38db", size = 1779113 }, - { url = "https://files.pythonhosted.org/packages/32/03/f3233e936f7a81549bd95f33f3d304e2a9211cb35d819d74570c0718b1ac/aiortc-1.9.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44b610f36b8d17123855dfbe915fa6874201765b8a2c7fd9cf72d14cf417740", size = 1896322 }, - { url = "https://files.pythonhosted.org/packages/96/99/6672cf57777801c6ddacc13e1ee07f8c2151d0847a4f81455eeec998eaed/aiortc-1.9.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55505adb31d56cba19a1ef8ad6aa9b727ccdba2a83bfbfb4aa79ef3c472026a6", size = 1918600 }, - { url = "https://files.pythonhosted.org/packages/76/e3/bdb76e7e51bc4fc7a5869597de2effad073ccf5ef14de3aed742d7384107/aiortc-1.9.0-cp38-abi3-win32.whl", hash = "sha256:680b703e35870e301535c930bfe32e7d012224a91ce51531aba45a3124ef07cc", size = 923055 }, - { url = "https://files.pythonhosted.org/packages/6a/df/de098b31a3fbf1117f6d4cb84c14518636054e3c95a9d9f693a1123c95b3/aiortc-1.9.0-cp38-abi3-win_amd64.whl", hash = "sha256:de5e7020cfc2d2d9fb95690926ff2e3b3c30cd4f5f5bc68d5b6756a8eebb686e", size = 1009610 }, + { url = "https://files.pythonhosted.org/packages/00/f3/8b51c79e6296bd76b3154a0a977472f2416e5d806dc210604416e3548b0b/aiortc-1.7.0-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aba47eac61ee7fb7e89876f40e4132aa66a13ed2a730dff003342e57219f34c0", size = 1219242 }, + { url = "https://files.pythonhosted.org/packages/52/5d/628f937106e66f4b40f861c1167924ab45ec19063cf5bcceb2dc0740c8e9/aiortc-1.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:169abaaa0c11a1695942b3eeea9d9032ea4992c6e84958c1b31c6ba22fcf4b0e", size = 895380 }, + { url = "https://files.pythonhosted.org/packages/f2/f8/86d23644e87e22156a9446ec844b21a83a3db52900a7e67f562c359c3817/aiortc-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5323a347d02d53989e61944eead19e550d930afbb872dd0fb51b3d065aaa833", size = 1778678 }, + { url = "https://files.pythonhosted.org/packages/46/8a/815f0d619a08b89c5505aced5e5f598d463b4cb21c091cf7fb9549084285/aiortc-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71c18762ebfeb239352705672e598c57f0e56e5c1b7955dba27651c801c56ea2", size = 1895896 }, + { url = "https://files.pythonhosted.org/packages/96/1e/3aa111508a82bbebfab65fda06c93dc68f7215f12dfa65d24f3a3d1df641/aiortc-1.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:817526c2e429a1ef1226ca9cdb4ff3c5d03857eb31de0f5a00433dc4cb5569f3", size = 1918175 }, + { url = "https://files.pythonhosted.org/packages/52/1d/90d2465efb01f81a9866352dd5c754402e7e092d2af3f0d966f4f26bae09/aiortc-1.7.0-cp38-abi3-win32.whl", hash = "sha256:a63c4da5c4a9d96ef6e3948c1f4675e02b0b908605eff4cea8b5e2fa5a34da4e", size = 922594 }, + { url = "https://files.pythonhosted.org/packages/c9/eb/b2c920d1fbdd25a9f116ec5ff2c070e795d63e4dcb9bb2e78fef5b67df64/aiortc-1.7.0-cp38-abi3-win_amd64.whl", hash = "sha256:e60f19f810a552690bf6e969429c624df39af2b5079ee0d95fb75d110b978e20", size = 1009193 }, ] [[package]] @@ -126,22 +126,22 @@ wheels = [ [[package]] name = "av" -version = "12.3.0" +version = "11.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/f8/5adeeae0c42a7130933d168b8d84a21c98a32cb9fcf9222e2541ed0d9c7b/av-12.3.0.tar.gz", hash = "sha256:04b1892562aff3277efc79f32bd8f1d0cbb64ed011241cb3e96f9ad471816c22", size = 3833953 } +sdist = { url = "https://files.pythonhosted.org/packages/21/e8/fadad78511fd108e17f0df1dd2a29755020e92345791e4fe207d304a0cd4/av-11.0.0.tar.gz", hash = "sha256:48223f000a252070f8e700ff634bb7fb3aa1b7bc7e450373029fbdd6f369ac31", size = 3652129 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/20/256fa4fc4ef9bb46fdc4be4662e13a30b0334487c955961f3816d94db04b/av-12.3.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:cc06a806419fddc7102150ffe353c7d96b99b95fd12864280c91c851603fd4cb", size = 24658122 }, - { url = "https://files.pythonhosted.org/packages/5d/45/a9d0475539b4f49deb34f3da558de31cefc6be867d5c0603d575a8485069/av-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e2130ff622a574d3d5d6e88ac335efcdd98c375bb341f87d9fe540830a746f5", size = 19923068 }, - { url = "https://files.pythonhosted.org/packages/af/27/1f2b3e46059c6618fd76ba12a96b49dc8515a426cd477032cd33f80505e8/av-12.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8b9bd99f916ff4d1278654e94658e6ace7ca60f6321f254d09c8cd81d9095b", size = 32555100 }, - { url = "https://files.pythonhosted.org/packages/28/34/759741d397a8bdbb8a359b8b5d49832a444b26c9a7f79c0f88be76a6b979/av-12.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e375d1d89a5c6edfd9f66701fdb6cc9161cc1ff99d15ff0bda21ee1ad38e9e0", size = 31936355 }, - { url = "https://files.pythonhosted.org/packages/b4/6e/77426cb92117c941b0f759908bc83f34f259b11b353acb5de95972b452f7/av-12.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9066fd8d86548e12d587cbfe7b852159e48ff3c732271c3032668d4bd7c599", size = 34416598 }, - { url = "https://files.pythonhosted.org/packages/ff/d3/4b0fddcd54d0a88ee7e035f239ebb56ce139fac8e02ee0942c43746a66ff/av-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bfaa9864560e43d45d254ed95f70ab1aab24a2fa0cc35ac99eef362f1453bec0", size = 25975217 }, - { url = "https://files.pythonhosted.org/packages/e4/c1/0636bccf5a1a2c935952614b9d34d8d8aae078c9773a60efb5376702f499/av-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5174e995772ebe33561980dca625f830aea8d39a4338728dedb41ae7dc2605af", size = 24669628 }, - { url = "https://files.pythonhosted.org/packages/ef/7d/9126abdafe20fa73d2c19fd108450363253cfea283c350618cc1434f473c/av-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:028d8b40308536f740dace3efd0178eb96825b414897c9594fb74136532901cb", size = 19928928 }, - { url = "https://files.pythonhosted.org/packages/27/75/c1b9e0aa4bd0d8b8311f366b6b38f6c6600d66baddfe2888accc7f76b1f5/av-12.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030791ecc6185776d832d19ce196f61daf3e17e591a9bb6fd181280e1754138", size = 32793461 }, - { url = "https://files.pythonhosted.org/packages/5a/06/1364c445f8a8ab4870f0f5c4530b496257ae09de7fa01b6108525abea8b9/av-12.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3703a35481fda5798a27bf6208c1ec3b61c18931625771fb3c9fd870539c7d7", size = 32217647 }, - { url = "https://files.pythonhosted.org/packages/27/08/220d5a1ae7e7830d66d041c71e607c1f5df2e3598b12fb406b0d7c2defa7/av-12.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32f3eef56b2df289db6105f9fe2ebc9a8134a8adbd62190daeb8e22c4ff47794", size = 34746451 }, - { url = "https://files.pythonhosted.org/packages/96/67/9f1c444864d4f3e3773100b9ed20e670f80d5575b7a8fd53cca20de9d681/av-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:62d036ee8321d67190887012c3dbcd1ad83248603cc29ea75fbb75835b8d6e6e", size = 25977611 }, + { url = "https://files.pythonhosted.org/packages/f1/5c/cf3ce979e5c8790607e1fc968cb71191f1cc2d861a704f7f363a835b0b4d/av-11.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d9bac0de62f09e2cb4e2132b5a46a89bc31c898189aa285b484c17351d991afe", size = 26889261 }, + { url = "https://files.pythonhosted.org/packages/a5/e1/9dac2ed9ec0c4317937c856c3c079959c986a34ef4bc92e9d8deba15b84c/av-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2122ff8bdace4ce50207920f37de472517921e2ca1f0503464f748fdb8e20506", size = 20479854 }, + { url = "https://files.pythonhosted.org/packages/7a/5e/c528306d8e0738f8daa8c3b2eaed60c0cbebcea4c311e07628a0f3fc5934/av-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:527d840697fee6ad4cf47eba987eaf30cd76bd96b2d20eaa907e166b9b8065c8", size = 32036985 }, + { url = "https://files.pythonhosted.org/packages/21/49/f89b2187abdf29bee28969935bfd8654f81c1f021ef87fec510efc06afa1/av-11.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abeaedddfca9101886eb6fc47318c5f5ece8480d330d73aacf6917d7421981a2", size = 31377709 }, + { url = "https://files.pythonhosted.org/packages/a6/45/f0c2a87e7cae809a58dbf90ecfa4be342414d4b208f47cb97f41fb77eb3f/av-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13790fbb889b955baf885fe3761e923e85537ef414173465ec293177cedb7b99", size = 33723195 }, + { url = "https://files.pythonhosted.org/packages/64/aa/0e6e9cd8fcdaebf40e48ebe97fa4fed49fc87b5812f98595fc602900b223/av-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc27e27f52480287f44226ad4ae3eb53346bf027959d0f00a9154530bd98b371", size = 25886793 }, + { url = "https://files.pythonhosted.org/packages/3a/c9/126d8667835521b943321300211b53730e5d6c8ed6a47b99970a550a0b16/av-11.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:892583e2c6b8c2500e5d24310f499caefcdaa2e48c8f7169ad41041aaaf4da11", size = 26896259 }, + { url = "https://files.pythonhosted.org/packages/38/55/7b78acd536ae2aad9e5e57e6f1814d82c69fe1181832d06bb5f952d1d4ff/av-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6943679d70a9f4de974049e7ae2cf0b20afe0d7ddab650526c02a6cf9adcd08f", size = 20484450 }, + { url = "https://files.pythonhosted.org/packages/46/da/32b8528e9029ed1d252e3e47b5f40deb4ad13175e30704128db5a0fae8ab/av-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6d73b038ccf1df5c16bc643eee5c694fb7732e09375e2f4903c1f4ce90dfb72", size = 32347096 }, + { url = "https://files.pythonhosted.org/packages/04/53/b0ff1a8231c4e75d10306daaa7ed3ee5ed526acb21ca659a6c68d9d94ec9/av-11.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c83422db3333e97b9680700df5185139352fc3a568b14179da3bdcbeb2f0e91b", size = 31724790 }, + { url = "https://files.pythonhosted.org/packages/4d/d8/fb59d2db535305027b006d87355dd6a38c99d61380673412af27c222e4ca/av-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8413900f6a3639e0088c018a3a516a1656d4d16799e7aa759a16ddf3bd268e2b", size = 34111124 }, + { url = "https://files.pythonhosted.org/packages/c4/f1/c49ceb3081ef1ec858feb36a3bad24b2b73ec088227ba3bc66b74b82bacc/av-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:908e49ee336223801d8f2f7dca5a1deb64e9d8256138b8e7a79013b682a6ebb5", size = 25891334 }, ] [[package]] @@ -338,7 +338,7 @@ name = "coloredlogs" version = "15.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "humanfriendly" }, + { name = "humanfriendly", marker = "platform_system != 'Darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520 } wheels = [ @@ -378,30 +378,30 @@ wheels = [ [[package]] name = "coverage" -version = "7.6.7" +version = "7.6.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bf/68/26895f8b068e384b1ec9ab122565b913b735e6b4c618b3d265a280607edc/coverage-7.6.7.tar.gz", hash = "sha256:d79d4826e41441c9a118ff045e4bccb9fdbdcb1d02413e7ea6eb5c87b5439d24", size = 799938 } +sdist = { url = "https://files.pythonhosted.org/packages/ab/75/aecfd0a3adbec6e45753976bc2a9fed62b42cea9a206d10fd29244a77953/coverage-7.6.8.tar.gz", hash = "sha256:8b2b8503edb06822c86d82fa64a4a5cb0760bb8f31f26e138ec743f422f37cfc", size = 801425 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/d7/1bf7bb0943237149ad01977190ac5c2e17add1f4fe7cabc06401682137f6/coverage-7.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e61b0e77ff4dddebb35a0e8bb5a68bf0f8b872407d8d9f0c726b65dfabe2469", size = 206979 }, - { url = "https://files.pythonhosted.org/packages/83/eb/863b2cd654353b94c6ad834008df813424bf3e8f110e5f655fe5dc4c423b/coverage-7.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1a5407a75ca4abc20d6252efeb238377a71ce7bda849c26c7a9bece8680a5d99", size = 207431 }, - { url = "https://files.pythonhosted.org/packages/35/c9/d7a02a9654c41174fb99402c0fbd9583d0d2cb8714e7f948117fa7f919c4/coverage-7.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df002e59f2d29e889c37abd0b9ee0d0e6e38c24f5f55d71ff0e09e3412a340ec", size = 239368 }, - { url = "https://files.pythonhosted.org/packages/11/64/6c43a0ec43e5ddc5e09b0b589e3fd31def05fc463920d084e5af35fe527d/coverage-7.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673184b3156cba06154825f25af33baa2671ddae6343f23175764e65a8c4c30b", size = 236769 }, - { url = "https://files.pythonhosted.org/packages/1c/dc/e77d98ae433c556c29328712a07fed0e6d159a63b2ec81039ce0a13a24a3/coverage-7.6.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69ad502f1a2243f739f5bd60565d14a278be58be4c137d90799f2c263e7049a", size = 238634 }, - { url = "https://files.pythonhosted.org/packages/cc/84/50df3a8426d686057496171b4ccdb64528dacc4f42e94dceb7de3c598a69/coverage-7.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60dcf7605c50ea72a14490d0756daffef77a5be15ed1b9fea468b1c7bda1bc3b", size = 237562 }, - { url = "https://files.pythonhosted.org/packages/2e/0f/9560196247574c1ccdab64cb923d69119fd5abd5b3db28d601ab2b452861/coverage-7.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9c2eb378bebb2c8f65befcb5147877fc1c9fbc640fc0aad3add759b5df79d55d", size = 236197 }, - { url = "https://files.pythonhosted.org/packages/df/14/38b7c081e86e845df1867143ddb6e05bf8395f60ab3923c023a56d97cca1/coverage-7.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c0317288f032221d35fa4cbc35d9f4923ff0dfd176c79c9b356e8ef8ef2dff4", size = 236970 }, - { url = "https://files.pythonhosted.org/packages/8b/f3/af34f814ca3814f798878ae368b638edb91298595470614f5265f3f416fa/coverage-7.6.7-cp311-cp311-win32.whl", hash = "sha256:951aade8297358f3618a6e0660dc74f6b52233c42089d28525749fc8267dccd2", size = 209557 }, - { url = "https://files.pythonhosted.org/packages/5a/9e/5d1080d83d752873bd9dedea5524c0f5fe68a3d5e1e58c590865bd724591/coverage-7.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:5e444b8e88339a2a67ce07d41faabb1d60d1004820cee5a2c2b54e2d8e429a0f", size = 210402 }, - { url = "https://files.pythonhosted.org/packages/84/30/30e9df650b9038962c62d900b093a17414d5b43b4d07d47b8698d9e7ce26/coverage-7.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f07ff574986bc3edb80e2c36391678a271d555f91fd1d332a1e0f4b5ea4b6ea9", size = 207172 }, - { url = "https://files.pythonhosted.org/packages/88/8b/e28f86412317b9514692fd6f9d8ac6faa12494c3f470c3c63f202e10c756/coverage-7.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:49ed5ee4109258973630c1f9d099c7e72c5c36605029f3a91fe9982c6076c82b", size = 207406 }, - { url = "https://files.pythonhosted.org/packages/ac/46/da1bd9a3a893f74f5ce85f35e2755fcb00a80ed21e18d300c54f64938b1c/coverage-7.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e8796434a8106b3ac025fd15417315d7a58ee3e600ad4dbcfddc3f4b14342c", size = 240424 }, - { url = "https://files.pythonhosted.org/packages/f6/12/af8e932496de1997bf4a36785d025ddac6427cbaf6954f26c2edaf21a58a/coverage-7.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b925300484a3294d1c70f6b2b810d6526f2929de954e5b6be2bf8caa1f12c1", size = 237456 }, - { url = "https://files.pythonhosted.org/packages/60/a2/23eb11eb60f825a84397cb94701d6f41d2e8e88ad7d0ba2b4339f38435fb/coverage-7.6.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c42ec2c522e3ddd683dec5cdce8e62817afb648caedad9da725001fa530d354", size = 239527 }, - { url = "https://files.pythonhosted.org/packages/47/9e/63b318bc469308a32b0fbd6c80e2ea05dd7a2b7e840a46b3974843083a8c/coverage-7.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0266b62cbea568bd5e93a4da364d05de422110cbed5056d69339bd5af5685433", size = 239011 }, - { url = "https://files.pythonhosted.org/packages/99/47/1e84b067df3f021dfbc9cba09ec9acd4cb64938648a234e5bdf3006fd08b/coverage-7.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e5f2a0f161d126ccc7038f1f3029184dbdf8f018230af17ef6fd6a707a5b881f", size = 237316 }, - { url = "https://files.pythonhosted.org/packages/12/9d/96baaafc948d4a0ef2248a611d41051eea0917ef881d744879dd20be7c4a/coverage-7.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c132b5a22821f9b143f87446805e13580b67c670a548b96da945a8f6b4f2efbb", size = 238980 }, - { url = "https://files.pythonhosted.org/packages/87/d9/97af1886ca3f612d0cea2999d33e90d2f5b8fdf9bedc2d3bc75883efec4c/coverage-7.6.7-cp312-cp312-win32.whl", hash = "sha256:7c07de0d2a110f02af30883cd7dddbe704887617d5c27cf373362667445a4c76", size = 209801 }, - { url = "https://files.pythonhosted.org/packages/f8/4d/1e31c2018b1b3738154639f94188b1f54098fbf0f80c7ec104928576d0bb/coverage-7.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:fd49c01e5057a451c30c9b892948976f5d38f2cbd04dc556a82743ba8e27ed8c", size = 210587 }, + { url = "https://files.pythonhosted.org/packages/ab/9f/e98211980f6e2f439e251737482aa77906c9b9c507824c71a2ce7eea0402/coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4", size = 207093 }, + { url = "https://files.pythonhosted.org/packages/fd/c7/8bab83fb9c20f7f8163c5a20dcb62d591b906a214a6dc6b07413074afc80/coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94", size = 207536 }, + { url = "https://files.pythonhosted.org/packages/1e/d6/00243df625f1b282bb25c83ce153ae2c06f8e7a796a8d833e7235337b4d9/coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4", size = 239482 }, + { url = "https://files.pythonhosted.org/packages/1e/07/faf04b3eeb55ffc2a6f24b65dffe6e0359ec3b283e6efb5050ea0707446f/coverage-7.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be32da0c3827ac9132bb488d331cb32e8d9638dd41a0557c5569d57cf22c9c1", size = 236886 }, + { url = "https://files.pythonhosted.org/packages/43/23/c79e497bf4d8fcacd316bebe1d559c765485b8ec23ac4e23025be6bfce09/coverage-7.6.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e6c85bbdc809383b509d732b06419fb4544dca29ebe18480379633623baafb", size = 238749 }, + { url = "https://files.pythonhosted.org/packages/b5/e5/791bae13be3c6451e32ef7af1192e711c6a319f3c597e9b218d148fd0633/coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8", size = 237679 }, + { url = "https://files.pythonhosted.org/packages/05/c6/bbfdfb03aada601fb8993ced17468c8c8e0b4aafb3097026e680fabb7ce1/coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a", size = 236317 }, + { url = "https://files.pythonhosted.org/packages/67/f9/f8e5a4b2ce96d1b0e83ae6246369eb8437001dc80ec03bb51c87ff557cd8/coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0", size = 237084 }, + { url = "https://files.pythonhosted.org/packages/f0/70/b05328901e4debe76e033717e1452d00246c458c44e9dbd893e7619c2967/coverage-7.6.8-cp311-cp311-win32.whl", hash = "sha256:629a1ba2115dce8bf75a5cce9f2486ae483cb89c0145795603d6554bdc83e801", size = 209638 }, + { url = "https://files.pythonhosted.org/packages/70/55/1efa24f960a2fa9fbc44a9523d3f3c50ceb94dd1e8cd732168ab2dc41b07/coverage-7.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:fb9fc32399dca861584d96eccd6c980b69bbcd7c228d06fb74fe53e007aa8ef9", size = 210506 }, + { url = "https://files.pythonhosted.org/packages/76/ce/3edf581c8fe429ed8ced6e6d9ac693c25975ef9093413276dab6ed68a80a/coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee", size = 207285 }, + { url = "https://files.pythonhosted.org/packages/09/9c/cf102ab046c9cf8895c3f7aadcde6f489a4b2ec326757e8c6e6581829b5e/coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a", size = 207522 }, + { url = "https://files.pythonhosted.org/packages/39/06/42aa6dd13dbfca72e1fd8ffccadbc921b6e75db34545ebab4d955d1e7ad3/coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d", size = 240543 }, + { url = "https://files.pythonhosted.org/packages/a0/20/2932971dc215adeca8eeff446266a7fef17a0c238e881ffedebe7bfa0669/coverage-7.6.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fe47da3e4fda5f1abb5709c156eca207eacf8007304ce3019eb001e7a7204cb", size = 237577 }, + { url = "https://files.pythonhosted.org/packages/ac/85/4323ece0cd5452c9522f4b6e5cc461e6c7149a4b1887c9e7a8b1f4e51146/coverage-7.6.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:202a2d645c5a46b84992f55b0a3affe4f0ba6b4c611abec32ee88358db4bb649", size = 239646 }, + { url = "https://files.pythonhosted.org/packages/77/52/b2537487d8f36241e518e84db6f79e26bc3343b14844366e35b090fae0d4/coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787", size = 239128 }, + { url = "https://files.pythonhosted.org/packages/7c/99/7f007762012186547d0ecc3d328da6b6f31a8c99f05dc1e13dcd929918cd/coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c", size = 237434 }, + { url = "https://files.pythonhosted.org/packages/97/53/e9b5cf0682a1cab9352adfac73caae0d77ae1d65abc88975d510f7816389/coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443", size = 239095 }, + { url = "https://files.pythonhosted.org/packages/0c/50/054f0b464fbae0483217186478eefa2e7df3a79917ed7f1d430b6da2cf0d/coverage-7.6.8-cp312-cp312-win32.whl", hash = "sha256:9e89d5c8509fbd6c03d0dd1972925b22f50db0792ce06324ba069f10787429ad", size = 209895 }, + { url = "https://files.pythonhosted.org/packages/df/d0/09ba870360a27ecf09e177ca2ff59d4337fc7197b456f22ceff85cffcfa5/coverage-7.6.8-cp312-cp312-win_amd64.whl", hash = "sha256:379c111d3558272a2cae3d8e57e6b6e6f4fe652905692d54bad5ea0ca37c5ad4", size = 210684 }, ] [package.optional-dependencies] @@ -661,10 +661,10 @@ name = "gymnasium" version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cloudpickle" }, - { name = "farama-notifications" }, - { name = "numpy" }, - { name = "typing-extensions" }, + { name = "cloudpickle", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "farama-notifications", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "numpy", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "typing-extensions", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4e/12/1047b8fdbfcdce74022048d916e844ad7e6e1114d81d26a7aed657e3a76d/gymnasium-1.0.0.tar.gz", hash = "sha256:9d2b66f30c1b34fe3c2ce7fae65ecf365d0e9982d2b3d860235e773328a3b403", size = 821389 } wheels = [ @@ -676,7 +676,7 @@ name = "humanfriendly" version = "10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyreadline3", marker = "sys_platform == 'win32'" }, + { name = "pyreadline3", marker = "platform_system != 'Darwin' and sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702 } wheels = [ @@ -928,7 +928,7 @@ wheels = [ [[package]] name = "matplotlib" -version = "3.9.2" +version = "3.9.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, @@ -941,20 +941,20 @@ dependencies = [ { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/d8/3d7f706c69e024d4287c1110d74f7dabac91d9843b99eadc90de9efc8869/matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92", size = 36088381 } +sdist = { url = "https://files.pythonhosted.org/packages/75/9f/562ed484b11ac9f4bb4f9d2d7546954ec106a8c0f06cc755d6f63e519274/matplotlib-3.9.3.tar.gz", hash = "sha256:cd5dbbc8e25cad5f706845c4d100e2c8b34691b412b93717ce38d8ae803bcfa5", size = 36113438 } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/c2/f9d7fe80a8fcce9bb128d1381c6fe41a8d286d7e18395e273002e8e0fa34/matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772", size = 7902925 }, - { url = "https://files.pythonhosted.org/packages/28/ba/8be09886eb56ac04a218a1dc3fa728a5c4cac60b019b4f1687885166da00/matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41", size = 7773193 }, - { url = "https://files.pythonhosted.org/packages/e6/9a/5991972a560db3ab621312a7ca5efec339ae2122f25901c0846865c4b72f/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f", size = 8202378 }, - { url = "https://files.pythonhosted.org/packages/01/75/6c7ce560e95714a10fcbb3367d1304975a1a3e620f72af28921b796403f3/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447", size = 8314361 }, - { url = "https://files.pythonhosted.org/packages/6e/49/dc7384c6c092958e0b75e754efbd9e52500154939c3d715789cee9fb8a53/matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e", size = 9091428 }, - { url = "https://files.pythonhosted.org/packages/8b/ce/15b0bb2fb29b3d46211d8ca740b96b5232499fc49200b58b8d571292c9a6/matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7", size = 7829377 }, - { url = "https://files.pythonhosted.org/packages/82/de/54f7f38ce6de79cb77d513bb3eaa4e0b1031e9fd6022214f47943fa53a88/matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9", size = 7892511 }, - { url = "https://files.pythonhosted.org/packages/35/3e/5713b84a02b24b2a4bd4d6673bfc03017e6654e1d8793ece783b7ed4d484/matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d", size = 7769370 }, - { url = "https://files.pythonhosted.org/packages/5b/bd/c404502aa1824456d2862dd6b9b0c1917761a51a32f7f83ff8cf94b6d117/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7", size = 8193260 }, - { url = "https://files.pythonhosted.org/packages/27/75/de5b9cd67648051cae40039da0c8cbc497a0d99acb1a1f3d087cd66d27b7/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c", size = 8306310 }, - { url = "https://files.pythonhosted.org/packages/de/e3/2976e4e54d7ee76eaf54b7639fdc10a223d05c2bdded7045233e9871e469/matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e", size = 9086717 }, - { url = "https://files.pythonhosted.org/packages/d2/92/c2b9464a0562feb6ae780bdc152364810862e07ef5e6affa2b7686028db2/matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3", size = 7832805 }, + { url = "https://files.pythonhosted.org/packages/12/ac/66ac58c42aad9ac0ed665746a8a36ecbd16a6c908527c305f9504c04fc2c/matplotlib-3.9.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:cf2a60daf6cecff6828bc608df00dbc794380e7234d2411c0ec612811f01969d", size = 7886350 }, + { url = "https://files.pythonhosted.org/packages/db/43/1274be2b1922858c7a43f0d6e00571fe24696788c7b5a8c980127af24a96/matplotlib-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:213d6dc25ce686516208d8a3e91120c6a4fdae4a3e06b8505ced5b716b50cc04", size = 7771966 }, + { url = "https://files.pythonhosted.org/packages/5f/89/f1bcc6b62707df427a5e6a34be59191da81d96e63d3f92cb61e948bcbca7/matplotlib-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c52f48eb75fcc119a4fdb68ba83eb5f71656999420375df7c94cc68e0e14686e", size = 8201827 }, + { url = "https://files.pythonhosted.org/packages/13/53/b178d51478109f7a700edc94757dd07112e9a0c7a158653b99434b74f9fb/matplotlib-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c93796b44fa111049b88a24105e947f03c01966b5c0cc782e2ee3887b790a3", size = 8314794 }, + { url = "https://files.pythonhosted.org/packages/d6/57/d0ef6cef13ed0f55e37472cc458f2f1f8c4fe9aac69f794be7ccd0702d03/matplotlib-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cd1077b9a09b16d8c3c7075a8add5ffbfe6a69156a57e290c800ed4d435bef1d", size = 9091489 }, + { url = "https://files.pythonhosted.org/packages/33/97/40a1bed11f7817ba553afd2e7662e7364e3bac7ce4040835391eb558c86e/matplotlib-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:c96eeeb8c68b662c7747f91a385688d4b449687d29b691eff7068a4602fe6dc4", size = 7829997 }, + { url = "https://files.pythonhosted.org/packages/74/d5/eb2338d21b2d36511f9417230413fa0c30fc82283b33dc0e3643969f3b50/matplotlib-3.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a361bd5583bf0bcc08841df3c10269617ee2a36b99ac39d455a767da908bbbc", size = 7883049 }, + { url = "https://files.pythonhosted.org/packages/e5/52/3910833a073e7182ab3ae03810ed418f71c7fdcd65e2862cda1c6a14ffc1/matplotlib-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e14485bb1b83eeb3d55b6878f9560240981e7bbc7a8d4e1e8c38b9bd6ec8d2de", size = 7768285 }, + { url = "https://files.pythonhosted.org/packages/92/67/69df4b6636e40e964788b003535561ea3e98e33e46df4d96fa8c34ef99e6/matplotlib-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8d279f78844aad213c4935c18f8292a9432d51af2d88bca99072c903948045", size = 8192626 }, + { url = "https://files.pythonhosted.org/packages/40/d6/70a196b0cf62e0a5bc64ccab07816ab4f6c98db0414a55280331a481a5bf/matplotlib-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6c12514329ac0d03128cf1dcceb335f4fbf7c11da98bca68dca8dcb983153a9", size = 8305687 }, + { url = "https://files.pythonhosted.org/packages/c3/43/ef6ab78dd2d8eb362c1e5a31f9cec5ece5761e6143a519153d716d85e590/matplotlib-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6e9de2b390d253a508dd497e9b5579f3a851f208763ed67fdca5dc0c3ea6849c", size = 9087208 }, + { url = "https://files.pythonhosted.org/packages/30/cb/36844affc69490652b5a99296b9fcee530b96621e23d3143a4839f30fb22/matplotlib-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d796272408f8567ff7eaa00eb2856b3a00524490e47ad505b0b4ca6bb8a7411f", size = 7833105 }, ] [[package]] @@ -971,22 +971,22 @@ name = "metadrive-simulator" version = "0.4.2.3" source = { url = "https://github.com/commaai/metadrive/releases/download/MetaDrive-minimal/metadrive_simulator-0.4.2.3-py3-none-any.whl" } dependencies = [ - { name = "filelock" }, - { name = "gymnasium" }, - { name = "lxml" }, - { name = "matplotlib" }, - { name = "numpy" }, - { name = "opencv-python-headless" }, - { name = "panda3d" }, - { name = "panda3d-gltf" }, - { name = "pillow" }, - { name = "progressbar" }, - { name = "psutil" }, - { name = "pygments" }, - { name = "requests" }, - { name = "shapely" }, - { name = "tqdm" }, - { name = "yapf" }, + { name = "filelock", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "gymnasium", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "lxml", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "matplotlib", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "numpy", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "opencv-python-headless", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "panda3d", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "panda3d-gltf", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "pillow", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "progressbar", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "psutil", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "pygments", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "requests", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "shapely", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "tqdm", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "yapf", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] wheels = [ { url = "https://github.com/commaai/metadrive/releases/download/MetaDrive-minimal/metadrive_simulator-0.4.2.3-py3-none-any.whl", hash = "sha256:6242d4e37e6c592d5eb1cadf497637540d3b754b89813a88c50a93c7fc88b02d" }, @@ -1232,38 +1232,38 @@ wheels = [ [[package]] name = "onnxruntime" -version = "1.20.0" +version = "1.20.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coloredlogs" }, - { name = "flatbuffers" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "protobuf" }, - { name = "sympy" }, + { name = "coloredlogs", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, + { name = "flatbuffers", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, + { name = "numpy", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, + { name = "packaging", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, + { name = "protobuf", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, + { name = "sympy", marker = "platform_machine == 'aarch64' and platform_system == 'Linux'" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/db/f9f3a2cac589f557c1227d27e288eeb248830613dd1a5b5c17f26894e802/onnxruntime-1.20.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a831b720d0a7be8241a230cb06f592e8bb66652d7cea54ce02d83769651fdee", size = 11946136 }, - { url = "https://files.pythonhosted.org/packages/53/d8/93706484c8e0db2dfde8559e74b5a9ab74d203a0471671121188c212f7cb/onnxruntime-1.20.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:041fefe60af844ebd90f344c84f908201490555cd0a6d78dd0a7acdc27b59972", size = 13318583 }, - { url = "https://files.pythonhosted.org/packages/8d/bd/4b15cfc8242577376ed8eb8f10239422945cfa7e52b89db487ceea912c3b/onnxruntime-1.20.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51e7b34e398089c4ed8d0f50722d7a64a4d5f11b38c4a42576458a03c6dbc72e", size = 11942243 }, - { url = "https://files.pythonhosted.org/packages/ba/db/7e65fcf45f5485193158999c194470f40be4bb6c82ec7e70401f78220dec/onnxruntime-1.20.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e259378ff2843321e0bf4552adcbee48822c91d77d42dde78b87dcdf10ad01f", size = 13313619 }, + { url = "https://files.pythonhosted.org/packages/a5/da/c44bf9bd66cd6d9018a921f053f28d819445c4d84b4dd4777271b0fe52a2/onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6243e34d74423bdd1edf0ae9596dd61023b260f546ee17d701723915f06a9f7", size = 11955227 }, + { url = "https://files.pythonhosted.org/packages/11/ac/4120dfb74c8e45cce1c664fc7f7ce010edd587ba67ac41489f7432eb9381/onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5eec64c0269dcdb8d9a9a53dc4d64f87b9e0c19801d9321246a53b7eb5a7d1bc", size = 13331703 }, + { url = "https://files.pythonhosted.org/packages/c5/9d/a42a84e10f1744dd27c6f2f9280cc3fb98f869dd19b7cd042e391ee2ab61/onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f56e898815963d6dc4ee1c35fc6c36506466eff6d16f3cb9848cea4e8c8172", size = 11952833 }, + { url = "https://files.pythonhosted.org/packages/47/42/2f71f5680834688a9c81becbe5c5bb996fd33eaed5c66ae0606c3b1d6a02/onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb71a814f66517a65628c9e4a2bb530a6edd2cd5d87ffa0af0f6f773a027d99e", size = 13333903 }, ] [[package]] name = "onnxruntime-gpu" -version = "1.20.0" +version = "1.20.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coloredlogs" }, - { name = "flatbuffers" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "protobuf" }, - { name = "sympy" }, + { name = "coloredlogs", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, + { name = "flatbuffers", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, + { name = "numpy", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, + { name = "packaging", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, + { name = "protobuf", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, + { name = "sympy", marker = "(platform_machine != 'aarch64' and platform_system != 'Darwin') or (platform_system != 'Darwin' and platform_system != 'Linux')" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/60/d0/9baa124f0276a186175c4e819d62ed75416096b0f7ff058296989d4712ff/onnxruntime_gpu-1.20.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6338fdfc955489b1d4329498f7f07640c000f92eae8933de293adc5f5ed480f5", size = 291504604 }, - { url = "https://files.pythonhosted.org/packages/ed/cd/98ea1ef90c5e51de69239881522a4c115a009dba99d83fd8e2606b33358d/onnxruntime_gpu-1.20.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:06398420c363b7e400de98deb8bc238fcff98adafe8eeda6ff96a94e20713ac0", size = 291507294 }, + { url = "https://files.pythonhosted.org/packages/e0/a5/5c2287d61f359c7342e9d59d1e3dd728a982dea85f846c7af305a801c3ca/onnxruntime_gpu-1.20.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1795e8bc6f9a1488a4d51d242edc4232a5ae60ec44ab4d4b0a7c65b3d17fcbff", size = 291519550 }, + { url = "https://files.pythonhosted.org/packages/91/a8/6984a2fb070be372a866108e3e85c9eb6e8f0378a8567a66967d80befb75/onnxruntime_gpu-1.20.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1951f96cd534c6151721e552606d0d792ea6a4c3e57e2f10eed17cca8105e953", size = 291510989 }, ] [[package]] @@ -1271,7 +1271,7 @@ name = "opencv-python-headless" version = "4.10.0.84" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy" }, + { name = "numpy", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2f/7e/d20f68a5f1487adf19d74378d349932a386b1ece3be9be9915e5986db468/opencv-python-headless-4.10.0.84.tar.gz", hash = "sha256:f2017c6101d7c2ef8d7bc3b414c37ff7f54d64413a1847d89970b6b7069b4e1a", size = 95117755 } wheels = [ @@ -1307,6 +1307,7 @@ dependencies = [ { name = "pycapnp" }, { name = "pycryptodome" }, { name = "pyjwt" }, + { name = "pyopenssl" }, { name = "pyserial" }, { name = "pyzmq" }, { name = "requests" }, @@ -1411,6 +1412,7 @@ requires-dist = [ { name = "pycryptodome" }, { name = "pyjwt" }, { name = "pyopencl", marker = "platform_machine != 'aarch64' and extra == 'dev'" }, + { name = "pyopenssl", specifier = "<24.3.0" }, { name = "pyprof2calltree", marker = "extra == 'dev'" }, { name = "pyqt5", marker = "platform_machine == 'x86_64' and extra == 'dev'", specifier = "==5.15.2" }, { name = "pyserial" }, @@ -1478,8 +1480,8 @@ name = "panda3d-gltf" version = "0.13" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "panda3d" }, - { name = "panda3d-simplepbr" }, + { name = "panda3d", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "panda3d-simplepbr", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/07/7f/9f18fc3fa843a080acb891af6bcc12262e7bdf1d194a530f7042bebfc81f/panda3d-gltf-0.13.tar.gz", hash = "sha256:d06d373bdd91cf530909b669f43080e599463bbf6d3ef00c3558bad6c6b19675", size = 25573 } wheels = [ @@ -1491,8 +1493,8 @@ name = "panda3d-simplepbr" version = "0.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "panda3d" }, - { name = "typing-extensions" }, + { name = "panda3d", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "typing-extensions", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b1/af/505608eef09d7f9b822e69dc7631cd14102650b8fe1b6f60d9562d2788d9/panda3d-simplepbr-0.12.0.tar.gz", hash = "sha256:c71d490afeeb3a90455dcfde1d30c41f321a38742a97d18834e5c31016331ed5", size = 1929980 } wheels = [ @@ -1597,57 +1599,57 @@ sdist = { url = "https://files.pythonhosted.org/packages/a3/a6/b8e451f6cff1c99b4 [[package]] name = "propcache" -version = "0.2.0" +version = "0.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/4d/5e5a60b78dbc1d464f8a7bbaeb30957257afdc8512cbb9dfd5659304f5cd/propcache-0.2.0.tar.gz", hash = "sha256:df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70", size = 40951 } +sdist = { url = "https://files.pythonhosted.org/packages/20/c8/2a13f78d82211490855b2fb303b6721348d0787fdd9a12ac46d99d3acde1/propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64", size = 41735 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/1c/71eec730e12aec6511e702ad0cd73c2872eccb7cad39de8ba3ba9de693ef/propcache-0.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:63f13bf09cc3336eb04a837490b8f332e0db41da66995c9fd1ba04552e516354", size = 80811 }, - { url = "https://files.pythonhosted.org/packages/89/c3/7e94009f9a4934c48a371632197406a8860b9f08e3f7f7d922ab69e57a41/propcache-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608cce1da6f2672a56b24a015b42db4ac612ee709f3d29f27a00c943d9e851de", size = 46365 }, - { url = "https://files.pythonhosted.org/packages/c0/1d/c700d16d1d6903aeab28372fe9999762f074b80b96a0ccc953175b858743/propcache-0.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:466c219deee4536fbc83c08d09115249db301550625c7fef1c5563a584c9bc87", size = 45602 }, - { url = "https://files.pythonhosted.org/packages/2e/5e/4a3e96380805bf742712e39a4534689f4cddf5fa2d3a93f22e9fd8001b23/propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc2db02409338bf36590aa985a461b2c96fce91f8e7e0f14c50c5fcc4f229016", size = 236161 }, - { url = "https://files.pythonhosted.org/packages/a5/85/90132481183d1436dff6e29f4fa81b891afb6cb89a7306f32ac500a25932/propcache-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ed8db0a556343d566a5c124ee483ae113acc9a557a807d439bcecc44e7dfbb", size = 244938 }, - { url = "https://files.pythonhosted.org/packages/4a/89/c893533cb45c79c970834274e2d0f6d64383ec740be631b6a0a1d2b4ddc0/propcache-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91997d9cb4a325b60d4e3f20967f8eb08dfcb32b22554d5ef78e6fd1dda743a2", size = 243576 }, - { url = "https://files.pythonhosted.org/packages/8c/56/98c2054c8526331a05f205bf45cbb2cda4e58e56df70e76d6a509e5d6ec6/propcache-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c7dde9e533c0a49d802b4f3f218fa9ad0a1ce21f2c2eb80d5216565202acab4", size = 236011 }, - { url = "https://files.pythonhosted.org/packages/2d/0c/8b8b9f8a6e1abd869c0fa79b907228e7abb966919047d294ef5df0d136cf/propcache-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffcad6c564fe6b9b8916c1aefbb37a362deebf9394bd2974e9d84232e3e08504", size = 224834 }, - { url = "https://files.pythonhosted.org/packages/18/bb/397d05a7298b7711b90e13108db697732325cafdcd8484c894885c1bf109/propcache-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:97a58a28bcf63284e8b4d7b460cbee1edaab24634e82059c7b8c09e65284f178", size = 224946 }, - { url = "https://files.pythonhosted.org/packages/25/19/4fc08dac19297ac58135c03770b42377be211622fd0147f015f78d47cd31/propcache-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:945db8ee295d3af9dbdbb698cce9bbc5c59b5c3fe328bbc4387f59a8a35f998d", size = 217280 }, - { url = "https://files.pythonhosted.org/packages/7e/76/c79276a43df2096ce2aba07ce47576832b1174c0c480fe6b04bd70120e59/propcache-0.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39e104da444a34830751715f45ef9fc537475ba21b7f1f5b0f4d71a3b60d7fe2", size = 220088 }, - { url = "https://files.pythonhosted.org/packages/c3/9a/8a8cf428a91b1336b883f09c8b884e1734c87f724d74b917129a24fe2093/propcache-0.2.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c5ecca8f9bab618340c8e848d340baf68bcd8ad90a8ecd7a4524a81c1764b3db", size = 233008 }, - { url = "https://files.pythonhosted.org/packages/25/7b/768a8969abd447d5f0f3333df85c6a5d94982a1bc9a89c53c154bf7a8b11/propcache-0.2.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c436130cc779806bdf5d5fae0d848713105472b8566b75ff70048c47d3961c5b", size = 237719 }, - { url = "https://files.pythonhosted.org/packages/ed/0d/e5d68ccc7976ef8b57d80613ac07bbaf0614d43f4750cf953f0168ef114f/propcache-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:191db28dc6dcd29d1a3e063c3be0b40688ed76434622c53a284e5427565bbd9b", size = 227729 }, - { url = "https://files.pythonhosted.org/packages/05/64/17eb2796e2d1c3d0c431dc5f40078d7282f4645af0bb4da9097fbb628c6c/propcache-0.2.0-cp311-cp311-win32.whl", hash = "sha256:5f2564ec89058ee7c7989a7b719115bdfe2a2fb8e7a4543b8d1c0cc4cf6478c1", size = 40473 }, - { url = "https://files.pythonhosted.org/packages/83/c5/e89fc428ccdc897ade08cd7605f174c69390147526627a7650fb883e0cd0/propcache-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e2e54267980349b723cff366d1e29b138b9a60fa376664a157a342689553f71", size = 44921 }, - { url = "https://files.pythonhosted.org/packages/7c/46/a41ca1097769fc548fc9216ec4c1471b772cc39720eb47ed7e38ef0006a9/propcache-0.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ee7606193fb267be4b2e3b32714f2d58cad27217638db98a60f9efb5efeccc2", size = 80800 }, - { url = "https://files.pythonhosted.org/packages/75/4f/93df46aab9cc473498ff56be39b5f6ee1e33529223d7a4d8c0a6101a9ba2/propcache-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:91ee8fc02ca52e24bcb77b234f22afc03288e1dafbb1f88fe24db308910c4ac7", size = 46443 }, - { url = "https://files.pythonhosted.org/packages/0b/17/308acc6aee65d0f9a8375e36c4807ac6605d1f38074b1581bd4042b9fb37/propcache-0.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e900bad2a8456d00a113cad8c13343f3b1f327534e3589acc2219729237a2e8", size = 45676 }, - { url = "https://files.pythonhosted.org/packages/65/44/626599d2854d6c1d4530b9a05e7ff2ee22b790358334b475ed7c89f7d625/propcache-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f52a68c21363c45297aca15561812d542f8fc683c85201df0bebe209e349f793", size = 246191 }, - { url = "https://files.pythonhosted.org/packages/f2/df/5d996d7cb18df076debae7d76ac3da085c0575a9f2be6b1f707fe227b54c/propcache-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e41d67757ff4fbc8ef2af99b338bfb955010444b92929e9e55a6d4dcc3c4f09", size = 251791 }, - { url = "https://files.pythonhosted.org/packages/2e/6d/9f91e5dde8b1f662f6dd4dff36098ed22a1ef4e08e1316f05f4758f1576c/propcache-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a64e32f8bd94c105cc27f42d3b658902b5bcc947ece3c8fe7bc1b05982f60e89", size = 253434 }, - { url = "https://files.pythonhosted.org/packages/3c/e9/1b54b7e26f50b3e0497cd13d3483d781d284452c2c50dd2a615a92a087a3/propcache-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55346705687dbd7ef0d77883ab4f6fabc48232f587925bdaf95219bae072491e", size = 248150 }, - { url = "https://files.pythonhosted.org/packages/a7/ef/a35bf191c8038fe3ce9a414b907371c81d102384eda5dbafe6f4dce0cf9b/propcache-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00181262b17e517df2cd85656fcd6b4e70946fe62cd625b9d74ac9977b64d8d9", size = 233568 }, - { url = "https://files.pythonhosted.org/packages/97/d9/d00bb9277a9165a5e6d60f2142cd1a38a750045c9c12e47ae087f686d781/propcache-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6994984550eaf25dd7fc7bd1b700ff45c894149341725bb4edc67f0ffa94efa4", size = 229874 }, - { url = "https://files.pythonhosted.org/packages/8e/78/c123cf22469bdc4b18efb78893e69c70a8b16de88e6160b69ca6bdd88b5d/propcache-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:56295eb1e5f3aecd516d91b00cfd8bf3a13991de5a479df9e27dd569ea23959c", size = 225857 }, - { url = "https://files.pythonhosted.org/packages/31/1b/fd6b2f1f36d028820d35475be78859d8c89c8f091ad30e377ac49fd66359/propcache-0.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:439e76255daa0f8151d3cb325f6dd4a3e93043e6403e6491813bcaaaa8733887", size = 227604 }, - { url = "https://files.pythonhosted.org/packages/99/36/b07be976edf77a07233ba712e53262937625af02154353171716894a86a6/propcache-0.2.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f6475a1b2ecb310c98c28d271a30df74f9dd436ee46d09236a6b750a7599ce57", size = 238430 }, - { url = "https://files.pythonhosted.org/packages/0d/64/5822f496c9010e3966e934a011ac08cac8734561842bc7c1f65586e0683c/propcache-0.2.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3444cdba6628accf384e349014084b1cacd866fbb88433cd9d279d90a54e0b23", size = 244814 }, - { url = "https://files.pythonhosted.org/packages/fd/bd/8657918a35d50b18a9e4d78a5df7b6c82a637a311ab20851eef4326305c1/propcache-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a9d9b4d0a9b38d1c391bb4ad24aa65f306c6f01b512e10a8a34a2dc5675d348", size = 235922 }, - { url = "https://files.pythonhosted.org/packages/a8/6f/ec0095e1647b4727db945213a9f395b1103c442ef65e54c62e92a72a3f75/propcache-0.2.0-cp312-cp312-win32.whl", hash = "sha256:69d3a98eebae99a420d4b28756c8ce6ea5a29291baf2dc9ff9414b42676f61d5", size = 40177 }, - { url = "https://files.pythonhosted.org/packages/20/a2/bd0896fdc4f4c1db46d9bc361c8c79a9bf08ccc08ba054a98e38e7ba1557/propcache-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ad9c9b99b05f163109466638bd30ada1722abb01bbb85c739c50b6dc11f92dc3", size = 44446 }, - { url = "https://files.pythonhosted.org/packages/3d/b6/e6d98278f2d49b22b4d033c9f792eda783b9ab2094b041f013fc69bcde87/propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036", size = 11603 }, + { url = "https://files.pythonhosted.org/packages/bc/0f/2913b6791ebefb2b25b4efd4bb2299c985e09786b9f5b19184a88e5778dd/propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16", size = 79297 }, + { url = "https://files.pythonhosted.org/packages/cf/73/af2053aeccd40b05d6e19058419ac77674daecdd32478088b79375b9ab54/propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717", size = 45611 }, + { url = "https://files.pythonhosted.org/packages/3c/09/8386115ba7775ea3b9537730e8cf718d83bbf95bffe30757ccf37ec4e5da/propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3", size = 45146 }, + { url = "https://files.pythonhosted.org/packages/03/7a/793aa12f0537b2e520bf09f4c6833706b63170a211ad042ca71cbf79d9cb/propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9", size = 232136 }, + { url = "https://files.pythonhosted.org/packages/f1/38/b921b3168d72111769f648314100558c2ea1d52eb3d1ba7ea5c4aa6f9848/propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787", size = 239706 }, + { url = "https://files.pythonhosted.org/packages/14/29/4636f500c69b5edea7786db3c34eb6166f3384b905665ce312a6e42c720c/propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465", size = 238531 }, + { url = "https://files.pythonhosted.org/packages/85/14/01fe53580a8e1734ebb704a3482b7829a0ef4ea68d356141cf0994d9659b/propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af", size = 231063 }, + { url = "https://files.pythonhosted.org/packages/33/5c/1d961299f3c3b8438301ccfbff0143b69afcc30c05fa28673cface692305/propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7", size = 220134 }, + { url = "https://files.pythonhosted.org/packages/00/d0/ed735e76db279ba67a7d3b45ba4c654e7b02bc2f8050671ec365d8665e21/propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f", size = 220009 }, + { url = "https://files.pythonhosted.org/packages/75/90/ee8fab7304ad6533872fee982cfff5a53b63d095d78140827d93de22e2d4/propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54", size = 212199 }, + { url = "https://files.pythonhosted.org/packages/eb/ec/977ffaf1664f82e90737275873461695d4c9407d52abc2f3c3e24716da13/propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505", size = 214827 }, + { url = "https://files.pythonhosted.org/packages/57/48/031fb87ab6081764054821a71b71942161619549396224cbb242922525e8/propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82", size = 228009 }, + { url = "https://files.pythonhosted.org/packages/1a/06/ef1390f2524850838f2390421b23a8b298f6ce3396a7cc6d39dedd4047b0/propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca", size = 231638 }, + { url = "https://files.pythonhosted.org/packages/38/2a/101e6386d5a93358395da1d41642b79c1ee0f3b12e31727932b069282b1d/propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e", size = 222788 }, + { url = "https://files.pythonhosted.org/packages/db/81/786f687951d0979007e05ad9346cd357e50e3d0b0f1a1d6074df334b1bbb/propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034", size = 40170 }, + { url = "https://files.pythonhosted.org/packages/cf/59/7cc7037b295d5772eceb426358bb1b86e6cab4616d971bd74275395d100d/propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3", size = 44404 }, + { url = "https://files.pythonhosted.org/packages/4c/28/1d205fe49be8b1b4df4c50024e62480a442b1a7b818e734308bb0d17e7fb/propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a", size = 79588 }, + { url = "https://files.pythonhosted.org/packages/21/ee/fc4d893f8d81cd4971affef2a6cb542b36617cd1d8ce56b406112cb80bf7/propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0", size = 45825 }, + { url = "https://files.pythonhosted.org/packages/4a/de/bbe712f94d088da1d237c35d735f675e494a816fd6f54e9db2f61ef4d03f/propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d", size = 45357 }, + { url = "https://files.pythonhosted.org/packages/7f/14/7ae06a6cf2a2f1cb382586d5a99efe66b0b3d0c6f9ac2f759e6f7af9d7cf/propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4", size = 241869 }, + { url = "https://files.pythonhosted.org/packages/cc/59/227a78be960b54a41124e639e2c39e8807ac0c751c735a900e21315f8c2b/propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d", size = 247884 }, + { url = "https://files.pythonhosted.org/packages/84/58/f62b4ffaedf88dc1b17f04d57d8536601e4e030feb26617228ef930c3279/propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5", size = 248486 }, + { url = "https://files.pythonhosted.org/packages/1c/07/ebe102777a830bca91bbb93e3479cd34c2ca5d0361b83be9dbd93104865e/propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24", size = 243649 }, + { url = "https://files.pythonhosted.org/packages/ed/bc/4f7aba7f08f520376c4bb6a20b9a981a581b7f2e385fa0ec9f789bb2d362/propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff", size = 229103 }, + { url = "https://files.pythonhosted.org/packages/fe/d5/04ac9cd4e51a57a96f78795e03c5a0ddb8f23ec098b86f92de028d7f2a6b/propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f", size = 226607 }, + { url = "https://files.pythonhosted.org/packages/e3/f0/24060d959ea41d7a7cc7fdbf68b31852331aabda914a0c63bdb0e22e96d6/propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec", size = 221153 }, + { url = "https://files.pythonhosted.org/packages/77/a7/3ac76045a077b3e4de4859a0753010765e45749bdf53bd02bc4d372da1a0/propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348", size = 222151 }, + { url = "https://files.pythonhosted.org/packages/e7/af/5e29da6f80cebab3f5a4dcd2a3240e7f56f2c4abf51cbfcc99be34e17f0b/propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6", size = 233812 }, + { url = "https://files.pythonhosted.org/packages/8c/89/ebe3ad52642cc5509eaa453e9f4b94b374d81bae3265c59d5c2d98efa1b4/propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6", size = 238829 }, + { url = "https://files.pythonhosted.org/packages/e9/2f/6b32f273fa02e978b7577159eae7471b3cfb88b48563b1c2578b2d7ca0bb/propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518", size = 230704 }, + { url = "https://files.pythonhosted.org/packages/5c/2e/f40ae6ff5624a5f77edd7b8359b208b5455ea113f68309e2b00a2e1426b6/propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246", size = 40050 }, + { url = "https://files.pythonhosted.org/packages/3b/77/a92c3ef994e47180862b9d7d11e37624fb1c00a16d61faf55115d970628b/propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1", size = 44117 }, + { url = "https://files.pythonhosted.org/packages/41/b6/c5319caea262f4821995dca2107483b94a3345d4607ad797c76cb9c36bcc/propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54", size = 11818 }, ] [[package]] name = "protobuf" -version = "5.28.3" +version = "5.29.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/74/6e/e69eb906fddcb38f8530a12f4b410699972ab7ced4e21524ece9d546ac27/protobuf-5.28.3.tar.gz", hash = "sha256:64badbc49180a5e401f373f9ce7ab1d18b63f7dd4a9cdc43c92b9f0b481cef7b", size = 422479 } +sdist = { url = "https://files.pythonhosted.org/packages/6a/bb/8e59a30b83102a37d24f907f417febb58e5f544d4f124dd1edcd12e078bf/protobuf-5.29.0.tar.gz", hash = "sha256:445a0c02483869ed8513a585d80020d012c6dc60075f96fa0563a724987b1001", size = 424944 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/c5/05163fad52d7c43e124a545f1372d18266db36036377ad29de4271134a6a/protobuf-5.28.3-cp310-abi3-win32.whl", hash = "sha256:0c4eec6f987338617072592b97943fdbe30d019c56126493111cf24344c1cc24", size = 419624 }, - { url = "https://files.pythonhosted.org/packages/9c/4c/4563ebe001ff30dca9d7ed12e471fa098d9759712980cde1fd03a3a44fb7/protobuf-5.28.3-cp310-abi3-win_amd64.whl", hash = "sha256:91fba8f445723fcf400fdbe9ca796b19d3b1242cd873907979b9ed71e4afe868", size = 431464 }, - { url = "https://files.pythonhosted.org/packages/1c/f2/baf397f3dd1d3e4af7e3f5a0382b868d25ac068eefe1ebde05132333436c/protobuf-5.28.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a3f6857551e53ce35e60b403b8a27b0295f7d6eb63d10484f12bc6879c715687", size = 414743 }, - { url = "https://files.pythonhosted.org/packages/85/50/cd61a358ba1601f40e7d38bcfba22e053f40ef2c50d55b55926aecc8fec7/protobuf-5.28.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:3fa2de6b8b29d12c61911505d893afe7320ce7ccba4df913e2971461fa36d584", size = 316511 }, - { url = "https://files.pythonhosted.org/packages/5d/ae/3257b09328c0b4e59535e497b0c7537d4954038bdd53a2f0d2f49d15a7c4/protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:712319fbdddb46f21abb66cd33cb9e491a5763b2febd8f228251add221981135", size = 316624 }, - { url = "https://files.pythonhosted.org/packages/ad/c3/2377c159e28ea89a91cf1ca223f827ae8deccb2c9c401e5ca233cd73002f/protobuf-5.28.3-py3-none-any.whl", hash = "sha256:cee1757663fa32a1ee673434fcf3bf24dd54763c79690201208bafec62f19eed", size = 169511 }, + { url = "https://files.pythonhosted.org/packages/31/cc/98140acbcc3e3a58c679d50dd4f04c3687bdd19690f388c65bb1ae4c1e5e/protobuf-5.29.0-cp310-abi3-win32.whl", hash = "sha256:ea7fb379b257911c8c020688d455e8f74efd2f734b72dc1ea4b4d7e9fd1326f2", size = 422709 }, + { url = "https://files.pythonhosted.org/packages/c9/91/38fb97b0cbe96109fa257536ad49dffdac3c8f86b46d9c85dc9e949b5291/protobuf-5.29.0-cp310-abi3-win_amd64.whl", hash = "sha256:34a90cf30c908f47f40ebea7811f743d360e202b6f10d40c02529ebd84afc069", size = 434510 }, + { url = "https://files.pythonhosted.org/packages/da/97/faeca508d61b231372cdc3006084fd97f21f3c8c726a2de5f2ebb8e4ab78/protobuf-5.29.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c931c61d0cc143a2e756b1e7f8197a508de5365efd40f83c907a9febf36e6b43", size = 417827 }, + { url = "https://files.pythonhosted.org/packages/eb/d6/c6a45a285374ab14499a9ef5a69e4e7b4911e641465681c1d602518d6ab2/protobuf-5.29.0-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:85286a47caf63b34fa92fdc1fd98b649a8895db595cfa746c5286eeae890a0b1", size = 319576 }, + { url = "https://files.pythonhosted.org/packages/ee/2e/cc46181ddce0940647d21a8341bf2eddad247a5d030e8c30c7a342793978/protobuf-5.29.0-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:0d10091d6d03537c3f902279fcf11e95372bdd36a79556311da0487455791b20", size = 319672 }, + { url = "https://files.pythonhosted.org/packages/7c/6c/dd1f0e8372ec2a8006102871d8da1466b116f3328db96972e19bf24f09ca/protobuf-5.29.0-py3-none-any.whl", hash = "sha256:88c4af76a73183e21061881360240c0cdd3c39d263b4e8fb570aaf83348d608f", size = 172553 }, ] [[package]] @@ -1667,24 +1669,24 @@ wheels = [ [[package]] name = "pyarrow" -version = "18.0.0" +version = "18.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/41/6bfd027410ba2cc35da4682394fdc4285dc345b1d99f7bd55e96255d0c7d/pyarrow-18.0.0.tar.gz", hash = "sha256:a6aa027b1a9d2970cf328ccd6dbe4a996bc13c39fd427f502782f5bdb9ca20f5", size = 1118457 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/7b/640785a9062bb00314caa8a387abce547d2a420cf09bd6c715fe659ccffb/pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73", size = 1118671 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/63/a4854246fb3d1387e176e2989d919b8186ce3806ca244fbed27217608708/pyarrow-18.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d5795e37c0a33baa618c5e054cd61f586cf76850a251e2b21355e4085def6280", size = 29532160 }, - { url = "https://files.pythonhosted.org/packages/53/dc/9a6672fb35d36323f4548b08064fb264353024538f60adaedf0c6df6b31d/pyarrow-18.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:5f0510608ccd6e7f02ca8596962afb8c6cc84c453e7be0da4d85f5f4f7b0328a", size = 30844030 }, - { url = "https://files.pythonhosted.org/packages/8e/f9/cfcee70dcb48bc0fee6265a5d2502ea85ccdab54957fd2dd5b327dfc8807/pyarrow-18.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616ea2826c03c16e87f517c46296621a7c51e30400f6d0a61be645f203aa2b93", size = 39177238 }, - { url = "https://files.pythonhosted.org/packages/17/de/cd37c379dc1aa379956b15d9c89ff920cf48c239f64fbed0ca97dffa3acc/pyarrow-18.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1824f5b029ddd289919f354bc285992cb4e32da518758c136271cf66046ef22", size = 40089208 }, - { url = "https://files.pythonhosted.org/packages/dd/80/83453dcceaa49d7aa42b0b6aaa7a0797231b9aee1cc213f286e0be3bdf89/pyarrow-18.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6dd1b52d0d58dd8f685ced9971eb49f697d753aa7912f0a8f50833c7a7426319", size = 38606715 }, - { url = "https://files.pythonhosted.org/packages/18/f4/5687ead1672920b5ed8840398551cc3a96a1389be68b68d18aca3944e525/pyarrow-18.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:320ae9bd45ad7ecc12ec858b3e8e462578de060832b98fc4d671dee9f10d9954", size = 40040879 }, - { url = "https://files.pythonhosted.org/packages/49/11/ea314ad45f45d3245f0768dba711fd3d5deb25a9e08af298d0924ab94aee/pyarrow-18.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:2c992716cffb1088414f2b478f7af0175fd0a76fea80841b1706baa8fb0ebaad", size = 25105360 }, - { url = "https://files.pythonhosted.org/packages/e4/ea/a7f77688e6c529723b37589af4db3e7179414e223878301907c5bd49d6bc/pyarrow-18.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:e7ab04f272f98ebffd2a0661e4e126036f6936391ba2889ed2d44c5006237802", size = 29493113 }, - { url = "https://files.pythonhosted.org/packages/79/8a/a3af902af623a1cf4f9d4d27d81e634caf1585a819b7530728a8147e391c/pyarrow-18.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:03f40b65a43be159d2f97fd64dc998f769d0995a50c00f07aab58b0b3da87e1f", size = 30833386 }, - { url = "https://files.pythonhosted.org/packages/46/1e/f38b22e12e2ce9ee7c9d805ce234f68b23a0568b9a6bea223e3a99ca0068/pyarrow-18.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be08af84808dff63a76860847c48ec0416928a7b3a17c2f49a072cac7c45efbd", size = 39170798 }, - { url = "https://files.pythonhosted.org/packages/f8/fb/fd0ef3e0f03227ab183f8dc941f4ef59636d8c382e246954601dd29cf1b0/pyarrow-18.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c70c1965cde991b711a98448ccda3486f2a336457cf4ec4dca257a926e149c9", size = 40103326 }, - { url = "https://files.pythonhosted.org/packages/7c/bd/5de139adba486db5ccc1b7ecab51e328a9dce354c82c6d26c2f642b178d3/pyarrow-18.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:00178509f379415a3fcf855af020e3340254f990a8534294ec3cf674d6e255fd", size = 38583592 }, - { url = "https://files.pythonhosted.org/packages/8d/1f/9bb3b3a644892d631dbbe99053cdb5295092d2696b4bcd3d21f29624c689/pyarrow-18.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a71ab0589a63a3e987beb2bc172e05f000a5c5be2636b4b263c44034e215b5d7", size = 40043128 }, - { url = "https://files.pythonhosted.org/packages/74/39/323621402c2b1ce7ba600d03c81cf9645b862350d7c495f3fcef37850d1d/pyarrow-18.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe92efcdbfa0bcf2fa602e466d7f2905500f33f09eb90bf0bcf2e6ca41b574c8", size = 25075300 }, + { url = "https://files.pythonhosted.org/packages/9e/4d/a4988e7d82f4fbc797715db4185939a658eeffb07a25bab7262bed1ea076/pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854", size = 29554860 }, + { url = "https://files.pythonhosted.org/packages/59/03/3a42c5c1e4bd4c900ab62aa1ff6b472bdb159ba8f1c3e5deadab7222244f/pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c", size = 30867076 }, + { url = "https://files.pythonhosted.org/packages/75/7e/332055ac913373e89256dce9d14b7708f55f7bd5be631456c897f0237738/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21", size = 39212135 }, + { url = "https://files.pythonhosted.org/packages/8c/64/5099cdb325828722ef7ffeba9a4696f238eb0cdeae227f831c2d77fcf1bd/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6", size = 40125195 }, + { url = "https://files.pythonhosted.org/packages/83/88/1938d783727db1b178ff71bc6a6143d7939e406db83a9ec23cad3dad325c/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe", size = 38641884 }, + { url = "https://files.pythonhosted.org/packages/5e/b5/9e14e9f7590e0eaa435ecea84dabb137284a4dbba7b3c337b58b65b76d95/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0", size = 40076877 }, + { url = "https://files.pythonhosted.org/packages/4d/a3/817ac7fe0891a2d66e247e223080f3a6a262d8aefd77e11e8c27e6acf4e1/pyarrow-18.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a", size = 25119811 }, + { url = "https://files.pythonhosted.org/packages/6a/50/12829e7111b932581e51dda51d5cb39207a056c30fe31ef43f14c63c4d7e/pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d", size = 29514620 }, + { url = "https://files.pythonhosted.org/packages/d1/41/468c944eab157702e96abab3d07b48b8424927d4933541ab43788bb6964d/pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee", size = 30856494 }, + { url = "https://files.pythonhosted.org/packages/68/f9/29fb659b390312a7345aeb858a9d9c157552a8852522f2c8bad437c29c0a/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992", size = 39203624 }, + { url = "https://files.pythonhosted.org/packages/6e/f6/19360dae44200e35753c5c2889dc478154cd78e61b1f738514c9f131734d/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54", size = 40139341 }, + { url = "https://files.pythonhosted.org/packages/bb/e6/9b3afbbcf10cc724312e824af94a2e993d8ace22994d823f5c35324cebf5/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33", size = 38618629 }, + { url = "https://files.pythonhosted.org/packages/3a/2e/3b99f8a3d9e0ccae0e961978a0d0089b25fb46ebbcfb5ebae3cca179a5b3/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30", size = 40078661 }, + { url = "https://files.pythonhosted.org/packages/76/52/f8da04195000099d394012b8d42c503d7041b79f778d854f410e5f05049a/pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99", size = 25092330 }, ] [[package]] @@ -1812,11 +1814,11 @@ wheels = [ [[package]] name = "pyjwt" -version = "2.10.0" +version = "2.10.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/05/324952ded002de746f87b21066b9373080bb5058f64cf01c4d62784b8186/pyjwt-2.10.0.tar.gz", hash = "sha256:7628a7eb7938959ac1b26e819a1df0fd3259505627b575e4bad6d08f76db695c", size = 87687 } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/1d/ef9b066e7ef60494c94173dc9f0b9adf5d9ec5f888109f5c669f53d4144b/PyJWT-2.10.0-py3-none-any.whl", hash = "sha256:543b77207db656de204372350926bed5a86201c4cbff159f623f79c7bb487a15", size = 23002 }, + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 }, ] [package.optional-dependencies] @@ -1865,7 +1867,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/7d/ff/4c6f31a4f08979f12 [[package]] name = "pyobjc" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2022,122 +2024,127 @@ dependencies = [ { name = "pyobjc-framework-vision", marker = "platform_release >= '17.0'" }, { name = "pyobjc-framework-webkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e0/20/722e33f62631370c1475d773cadf4290d3c6f3a0e9d025fa6e2528270eaa/pyobjc-10.3.1.tar.gz", hash = "sha256:476dd5c72394e4cfcdac6dfd756839011a0159353247f45e3e07cc0b3536c9d4", size = 10975 } +sdist = { url = "https://files.pythonhosted.org/packages/c8/89/982c55c5f4fc9ae1f22fb92b4dc003424df1d43da67f305d0a62ee00f6ac/pyobjc-10.3.2.tar.gz", hash = "sha256:1f35f3f8fc48028f2fdca48f55ac72073fe8980b9fa11a94b86ad69f50c9bd75", size = 10976 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/a5/4b9ed66894d804dc57c13b7fdb8f65ed831f13514216ce736e1455dfe214/pyobjc-10.3.1-py3-none-any.whl", hash = "sha256:dfa9ff44a353b9d0bf1245c25c94d1eee6d0cb26d9c5433bbcd67a265f7654ae", size = 4050 }, + { url = "https://files.pythonhosted.org/packages/74/70/6097a795974795dbe645d6ae57ef4d5147002445eb02dbeef4778a264757/pyobjc-10.3.2-py3-none-any.whl", hash = "sha256:b46e480c8988d17b87b89095c9f74d3cb6f0334aaa38690d02cfd614aa12c71c", size = 4069 }, ] [[package]] name = "pyobjc-core" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b7/40/a38d78627bd882d86c447db5a195ff307001ae02c1892962c656f2fd6b83/pyobjc_core-10.3.1.tar.gz", hash = "sha256:b204a80ccc070f9ab3f8af423a3a25a6fd787e228508d00c4c30f8ac538ba720", size = 935027 } +sdist = { url = "https://files.pythonhosted.org/packages/5d/07/2b3d63c0349fe4cf34d787a52a22faa156225808db2d1531fe58fabd779d/pyobjc_core-10.3.2.tar.gz", hash = "sha256:dbf1475d864ce594288ce03e94e3a98dc7f0e4639971eb1e312bdf6661c21e0e", size = 935182 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/69/e782f176bb5ac71473563f4e5cf825c48b1d7d1fbe1fadde201027804e45/pyobjc_core-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:899d3c84d2933d292c808f385dc881a140cf08632907845043a333a9d7c899f9", size = 775224 }, - { url = "https://files.pythonhosted.org/packages/cd/4d/d5d552b209fbca644cf9e0115a4cef8bc5f6726a44303eb7ae8d8a920a9e/pyobjc_core-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:6ff5823d13d0a534cdc17fa4ad47cf5bee4846ce0fd27fc40012e12b46db571b", size = 825968 }, + { url = "https://files.pythonhosted.org/packages/8e/11/f28af2cb4446743c8515f40f8dfac1bc078566c4a5cd7dcc6d24219ff3c9/pyobjc_core-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cea5e77659619ad93c782ca07644b6efe7d7ec6f59e46128843a0a87c1af511a", size = 775537 }, + { url = "https://files.pythonhosted.org/packages/13/89/8808fe75efb03b29e082f9d12da31d55d5be3f55260c7b4e4cde7ebf81af/pyobjc_core-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:16644a92fb9661de841ba6115e5354db06a1d193a5e239046e840013c7b3874d", size = 826024 }, ] [[package]] name = "pyobjc-framework-accessibility" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/24/20/18a45998ae8bf9ce532a29f8eaebdaa7f15a7f77b3c34a8304714b393166/pyobjc_framework_accessibility-10.3.1.tar.gz", hash = "sha256:c973306417441e6bed5f9be6154e6399aa7f38fa9b6bcf3368fa42d92ef3030b", size = 29349 } +sdist = { url = "https://files.pythonhosted.org/packages/3e/08/e87e90c8de6851589bd8c02ca64eac2dbe1cf51b62fd06a3cb2e52cddb91/pyobjc_framework_accessibility-10.3.2.tar.gz", hash = "sha256:2a7f29d7fae54db6e447d746d29f1c720b48b4d41cf3ed927a58949917c2b7ed", size = 29704 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/be/f20998cbba98386a47784ea9b7738c6b6d106f1dd30a7f99387e7ee5bb53/pyobjc_framework_Accessibility-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4a1b10d2098b5e3887d4e52b13c2d7619f248ceeaa4e78bb21c51c25c7d391c3", size = 10723 }, - { url = "https://files.pythonhosted.org/packages/50/36/6afe05e0ebf8b194d7d26730fa39b09279e7f819945c909875cbc7435b6d/pyobjc_framework_Accessibility-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4926eeef40d750215f0787d2124407a4c65bc03407e402ea47901b713e8765e5", size = 10781 }, - { url = "https://files.pythonhosted.org/packages/ad/61/46d9bd68309ec9e1659ce14fe6c46e0754112d8fc8e1fc49797ae6bb8f6e/pyobjc_framework_Accessibility-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b5b9d7373d1a8a06f57baca2f67279c3b0c61ecfb17fa6da964e0e275e7d18ed", size = 7489 }, - { url = "https://files.pythonhosted.org/packages/ec/5d/0ffe3abc230e694e0a8aaf8f9a8c4f4f3b7f98787d53be5a5eba979654ad/pyobjc_framework_Accessibility-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:94dbc5f223e6485820c14e7dee99d8f4d5cbf0600353033822dcab7ec4bc998e", size = 10653 }, + { url = "https://files.pythonhosted.org/packages/34/f8/dc3d13d754a661d417c17e7076aacf600462acbe3cc7b3abb1979410ae58/pyobjc_framework_Accessibility-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:46c8fae7ca20250e0ad269963d06d091f09f3a706940cd0933195d23eb4589b6", size = 9993 }, + { url = "https://files.pythonhosted.org/packages/7d/b7/0f3facfe12cf06e4e17966d584be3d522bdca6d5f466f1274b414b975d2c/pyobjc_framework_Accessibility-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:03e4e425c29129989a00090c2abd69d07806dc220d3ed5de17271f7ce0b2f394", size = 9976 }, + { url = "https://files.pythonhosted.org/packages/75/64/2ff6691699e30829aec8e0b47d3913900b5af01fdbd55bdf2547c33136ee/pyobjc_framework_Accessibility-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:4428855b982f0e161f29adfd2f7cca5c0ac17b727fc62771bfd278c7786b9469", size = 7350 }, + { url = "https://files.pythonhosted.org/packages/74/5d/dbad50959899094264276931b309b65aa4ddb9453b13da581647555811f2/pyobjc_framework_Accessibility-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:9301daabe0a906c6621e86afbe8f8dd7cd8d1b118ccc7d19e9b8a7a6502b12d1", size = 10472 }, ] [[package]] name = "pyobjc-framework-accounts" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cf/be/a4e4eeebfa140f0e00fe2fb882802cc4a5fa7f12c7fea01e35314fcf276c/pyobjc_framework_accounts-10.3.1.tar.gz", hash = "sha256:3d55738e7b3290af8cd4993fd2b670242a952deb995a69911be2a1be4c509a86", size = 16180 } +sdist = { url = "https://files.pythonhosted.org/packages/41/99/587ce238d38c7ebe52c3f9ecc7a50b47ce51e6ace833e6b82435558fc086/pyobjc_framework_accounts-10.3.2.tar.gz", hash = "sha256:50460f185206d57755ddf942f216177ff10b3cda48e6969ed88e57aad1f354d6", size = 16498 } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/8c/23a9128a0252d6ef7643edd5c90d18699fb7a8ae9849e47806408d3d15d2/pyobjc_framework_Accounts-10.3.1-py2.py3-none-any.whl", hash = "sha256:451488f91263afd23233287f223ba00c0ee5c93d64cd10e133d72bc6a0fc48aa", size = 4727 }, + { url = "https://files.pythonhosted.org/packages/a5/9d/08208de5cf4fa5aeba16112696be54ecc5c58a76c23b2cbfb65f5657825b/pyobjc_framework_Accounts-10.3.2-py2.py3-none-any.whl", hash = "sha256:40ab8fa23b10bb3328c31adbf541d7862e5cf6a2c7c9d30a8ed92d9b45e9851b", size = 4727 }, + { url = "https://files.pythonhosted.org/packages/68/ed/f8aa50ad8d9a4a9609086d481d25ae13a725e0a3d54fc01461d845fa1ec8/pyobjc_framework_Accounts-10.3.2-py3-none-any.whl", hash = "sha256:45eed359516530a25c5ed1da91d5eedf7c4e944fb76fe90dba83d90032a0c528", size = 4722 }, ] [[package]] name = "pyobjc-framework-addressbook" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/0a/68769f71cbf9f46070059def94a5c7b0b218626652d7aa589e15f4e8b876/pyobjc_framework_addressbook-10.3.1.tar.gz", hash = "sha256:cde99b855c39b56ca52479b0a1e2daa3ef5de12cebfe780c3c802a5f59a484cc", size = 84696 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/8a/613db5bbbce90439322a8c2a40274af2780f65e9996604e00061690badbf/pyobjc_framework_addressbook-10.3.2.tar.gz", hash = "sha256:d5c9677aa64e8116b31a1d3f39f0bf2d1681f7cb93dbdc21db314c9dd8ac82f7", size = 85044 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/11/7843baf1041c7c42e272178eb0f1f6b19bd1460e59a4515741b8e553375d/pyobjc_framework_AddressBook-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:02ab8cb2300d55beaddee4f113a5c4a78ef737eda6c704678487529e391062e2", size = 13244 }, - { url = "https://files.pythonhosted.org/packages/e3/29/d1ccc5aaf041d68f35f64df1ba0acd5c3d8b13f3deaf4b3ac94b8f67e792/pyobjc_framework_AddressBook-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:1cfa893c21920f5420f3e57da314315e92c855a83f0718482dc33bdb859b9f24", size = 13302 }, - { url = "https://files.pythonhosted.org/packages/37/bc/36f19b723404bfa739aa59c4df15a42387ed8c5c55ea168fbe74b0de0771/pyobjc_framework_AddressBook-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7aa89a352f1729de1cb4d7841906487d9db752c2802af5695596b1cf5290acfb", size = 10829 }, - { url = "https://files.pythonhosted.org/packages/c0/b2/730fe2665b385fe5ad59fee25d562ed182f3369885d467aafcb369fb9c63/pyobjc_framework_AddressBook-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:f25864847b4a81289dd08e7052455699ee011a4df98f4da0b07f46523c212592", size = 13610 }, + { url = "https://files.pythonhosted.org/packages/63/6b/d12aa535162a5aca827a73182e927ec87b7de82485c69322e77b82e19088/pyobjc_framework_AddressBook-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d04c22bb124a8b329c8142c76d6235877ca642f05b6c5176e6364c24b7a7633a", size = 13137 }, + { url = "https://files.pythonhosted.org/packages/4f/79/2fcaa4e2ddfcef3ffb55faf064b7ef1a8985b1c467d28241621626e3462b/pyobjc_framework_AddressBook-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:1793ed4a9e4068a376881832da0a445b31afa0e1a0806475091592b3991ebd96", size = 13100 }, + { url = "https://files.pythonhosted.org/packages/e6/65/7fbb60cbfc743c00368e808147bc00332999c4c47ac2982d16229f9314b1/pyobjc_framework_AddressBook-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:26140d825b7141e576a2f84b6535965421334498ba6cb4235c9a9ccb75523aac", size = 10710 }, + { url = "https://files.pythonhosted.org/packages/79/c7/70430efcfdd286f0cc3791bf368914b3ba12bb0cd97e7697a6e37315db66/pyobjc_framework_AddressBook-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:546f9c2619856fd0ccc3189f14cfe8a3c63e653abc0f021f09cca944ccbff4b8", size = 13515 }, ] [[package]] name = "pyobjc-framework-adservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/9b/eaeb7c8f30899979113b91d8317efd30743d335bdaaa8fb88434e7bf7616/pyobjc_framework_adservices-10.3.1.tar.gz", hash = "sha256:28123eb111d023f708e1d86f5f3f76bd4f6bb0d932466863f84b3e322b11537a", size = 11838 } +sdist = { url = "https://files.pythonhosted.org/packages/d2/49/b3fccd144e3357762278c40a669dfa53a6fdf6ced47217156f7112228dfc/pyobjc_framework_adservices-10.3.2.tar.gz", hash = "sha256:217c25adad25365a65ae9bbdd7e110b3b4597bcb78d9a914b00067a2135906df", size = 12169 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/85/bfd64830a47b363ae31e2366ec68da065c35abd9fc08adaa4cd6daa48d42/pyobjc_framework_AdServices-10.3.1-py2.py3-none-any.whl", hash = "sha256:c839c4267ad8443393e4d138396026764ee43776164da8a8ed9ac248b7d9c0d9", size = 3105 }, + { url = "https://files.pythonhosted.org/packages/54/a5/bf3ecbaa1930055be55aa5c2fcabe259ae707ee0aa00568aca3041b7fa32/pyobjc_framework_AdServices-10.3.2-py2.py3-none-any.whl", hash = "sha256:8c2644006198f9aa733f4ab4bd64d60e3e2a76d9a4347f0f307c18eaf264c18d", size = 3105 }, + { url = "https://files.pythonhosted.org/packages/d0/c4/918b68b508bc4807d4a407022fd202cad102c396ac1d412155b777b4520b/pyobjc_framework_AdServices-10.3.2-py3-none-any.whl", hash = "sha256:94857b7938d1ed190289f3f28b246089533899fa970f06c5abce98b7a0f52f2e", size = 3100 }, ] [[package]] name = "pyobjc-framework-adsupport" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/87/cf/9b40ef87f1315858e3dce9f807b359e43a6183616a6a8d2caab533d49a3e/pyobjc_framework_adsupport-10.3.1.tar.gz", hash = "sha256:ba85a00cf20c42501d8083092f7ca0fcd1e616b1725e6512e75bcb60a6d58528", size = 11991 } +sdist = { url = "https://files.pythonhosted.org/packages/77/dd/bdeecdde652e82bfe7d75fddc2e70682433d564bafc5fc851c5e2c558443/pyobjc_framework_adsupport-10.3.2.tar.gz", hash = "sha256:71cac2c9a4dd764fefc7b257483338f73d9783038d52028b97446ea83ad37c87", size = 12307 } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/3e/3d43c0a398390c358a777fec7ccf9cf94523cc41618a59fcf72dc2172990/pyobjc_framework_AdSupport-10.3.1-py2.py3-none-any.whl", hash = "sha256:0e403ec206ada472b2c0b129ed656342a97c20110ca8398ab907100516b0e48c", size = 3018 }, + { url = "https://files.pythonhosted.org/packages/e3/b3/95ac315013f863c87ff1c78520db60e995d67f9c30f5679c8806fdc03823/pyobjc_framework_AdSupport-10.3.2-py2.py3-none-any.whl", hash = "sha256:4fe1d3a85dd5489ae990490991262d1402689ae13dc32f0fc53f94fe59544101", size = 3019 }, + { url = "https://files.pythonhosted.org/packages/1f/c5/20758d41c8af927f6686e2ae5e9ea74f885d069879515114877ecd560438/pyobjc_framework_AdSupport-10.3.2-py3-none-any.whl", hash = "sha256:212c8b52c3870a21e3be476f565d5e1f3c298b244842fa4967c2fa3310c0e57d", size = 3017 }, ] [[package]] name = "pyobjc-framework-applescriptkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5c/c4/42e37476f31dddecb3d7b83b076d5e94b754837e2326b0218227b20f96ec/pyobjc_framework_applescriptkit-10.3.1.tar.gz", hash = "sha256:add2e63598b699666bcf00ac59f6f1046266df1665bec71b142cd21b89037064", size = 11779 } +sdist = { url = "https://files.pythonhosted.org/packages/1a/78/5abe58d1698dfacc0e5ab719aa2cd93879230e45b9387bcc3b0bb91040d3/pyobjc_framework_applescriptkit-10.3.2.tar.gz", hash = "sha256:a4d74fc6b28d1ff7d39b60c9e0c2d5d1baf575ade6e6d1ea06ed077facec47db", size = 12102 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/0b/6638a036e5e4b8451d9c5e96da5ec1bfcf4bee68b09b2e28158445d767e4/pyobjc_framework_AppleScriptKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:97ce878ff334b6853405a62e164debb9e6695110e64db5ed596008c0fde84970", size = 3930 }, + { url = "https://files.pythonhosted.org/packages/7b/7b/2abb01be55d4633ecae77af4d85077e7825452ece51daf4cd0cde0d8ae49/pyobjc_framework_AppleScriptKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:a970410ece8004a912918eed3173b2771c857fb8eb3b61f8d796d3e0e0b759d6", size = 3931 }, + { url = "https://files.pythonhosted.org/packages/50/bb/2e8ff9f8d4b72ba43e3e0e45f9aa4ce8d02352e8dd4a6321bfc61371ec21/pyobjc_framework_AppleScriptKit-10.3.2-py3-none-any.whl", hash = "sha256:38e7b573d3d5b3773d8a7f2189cad2378d32353d597dcd6342e2419dd6310c0e", size = 3926 }, ] [[package]] name = "pyobjc-framework-applescriptobjc" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/9e/db9d93764db336ed53da548cd7b52b6fbd7d493101b801b164f5c1f5fce8/pyobjc_framework_applescriptobjc-10.3.1.tar.gz", hash = "sha256:a87101d86b08e06e2c0e51630ac76d4c70f01cf1ed7af281f3138e63146e279b", size = 11797 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/8b/d720f671b21a07a8d1815c54ce4e8f313f73ea645a82faa8331a2a05d9c2/pyobjc_framework_applescriptobjc-10.3.2.tar.gz", hash = "sha256:6af16cab0fe4e2d50775e67501bcecae1c5acdba7ed560eba38e5f8e3c8ac38c", size = 12166 } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/1f/700ba04ece5f7c654cd58617a26427a0337e21003f1efd38132af48e0427/pyobjc_framework_AppleScriptObjC-10.3.1-py2.py3-none-any.whl", hash = "sha256:2d64c74a4af48656bb407eb177fe5f1d3c0f7bd9c578e5583dffde8e3d55f5df", size = 4027 }, + { url = "https://files.pythonhosted.org/packages/fb/46/eff05f226e5834c9f24cc96b12e09d0da08165264f1fde813ba715ca2f6e/pyobjc_framework_AppleScriptObjC-10.3.2-py2.py3-none-any.whl", hash = "sha256:a932ffdcf6a5b5ac884666bb0ae2a8075528f489b0b5aa4336fc22e6f011664e", size = 4030 }, + { url = "https://files.pythonhosted.org/packages/81/6b/b00195e4431651ffdb313d35da3c3f27a8b2558a3219bb00221500b75b59/pyobjc_framework_AppleScriptObjC-10.3.2-py3-none-any.whl", hash = "sha256:e0a0496fc05e7b23d6030d9dfcd706167ad05e7032f69117bc0136234eebc12e", size = 4026 }, ] [[package]] name = "pyobjc-framework-applicationservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2145,90 +2152,91 @@ dependencies = [ { name = "pyobjc-framework-coretext" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/a6/3704b63c6e844739e3b7e324d1268fb6f7cb485550267719660779266c60/pyobjc_framework_applicationservices-10.3.1.tar.gz", hash = "sha256:f27cb64aa4d129ce671fd42638c985eb2a56d544214a95fe3214a007eacc4790", size = 182738 } +sdist = { url = "https://files.pythonhosted.org/packages/78/a0/32cd02c3e5f0f740f86064a078278c180d3058c857b8425a5128866e3931/pyobjc_framework_applicationservices-10.3.2.tar.gz", hash = "sha256:2116c3854ac07c022268eebc7cb40ccba30727df78442e57e0280b5193c8183c", size = 183088 } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/24/31fdd15f88d3a0a88ba88b27d1f134c7819221886bf56644af12fe672c6d/pyobjc_framework_ApplicationServices-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d886ba1f65df47b77ff7546f3fc9bc7d08cfb6b3c04433b719f6b0689a2c0d1f", size = 31029 }, - { url = "https://files.pythonhosted.org/packages/af/01/bf2d335e3f176227a142f466419a9400dd752e7f02f03674a276f39c1d78/pyobjc_framework_ApplicationServices-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:be157f2c3ffb254064ef38249670af8cada5e519a714d2aa5da3740934d89bc8", size = 31072 }, + { url = "https://files.pythonhosted.org/packages/87/07/168a9fe2a9431faa765f83768dba8e74a103ce70649e66a249e1bcfcbf71/pyobjc_framework_ApplicationServices-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0a0b47a0371246a02efcf9335ae3d18166e80e4237e25c25a13993f8df5cc1d", size = 30724 }, + { url = "https://files.pythonhosted.org/packages/f7/c0/59d4a79aac12052c2c594c7e4e8f16ddf16be0aaae8f8321f93ac1f92a16/pyobjc_framework_ApplicationServices-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b9174444599b6adf37c1d28915445d716324f1cdc70a1818f7cb4f181caeee1b", size = 30776 }, ] [[package]] name = "pyobjc-framework-apptrackingtransparency" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/75/63/b7039473d92211938645c44069b2e8bc65eefc229a3aac1ff8ccf0f13415/pyobjc_framework_apptrackingtransparency-10.3.1.tar.gz", hash = "sha256:2e381db5f7d3985207b5ff2975e41bf0f9147080345b2e1b4b242f8799290d04", size = 12547 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/9f/bd8bb6d37c96060ea265d65e2dd9b6bf30801f6ffd922db7635165ac0968/pyobjc_framework_apptrackingtransparency-10.3.2.tar.gz", hash = "sha256:b1a0c19321f103d7f9c146b921d260083bb536a4d28b9d4337ca2ea4f88318a1", size = 12863 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/ab/7be81bd560ea539f5fa39c81c55af759d69a667ad9bb81efb2094e8a7b1c/pyobjc_framework_AppTrackingTransparency-10.3.1-py2.py3-none-any.whl", hash = "sha256:7c0e3a5cad402e8c3c5da1f070be0f49bb827e6d9e5165744f64e082633a4b45", size = 3459 }, + { url = "https://files.pythonhosted.org/packages/ec/de/d5c22f0328ac7c7f68eebddb0e30acc4eb45e36bd6a4b3baee583e89cca8/pyobjc_framework_AppTrackingTransparency-10.3.2-py2.py3-none-any.whl", hash = "sha256:9dd9ccd50ef9553e8810a2b0ef1824f5c42aff44f7eedf30a7a38dd1dc57f0c3", size = 3463 }, + { url = "https://files.pythonhosted.org/packages/ee/02/ea1b1a78396a84356d44bdbf9a25ab6d72dd7d75a93cdcc052282740357a/pyobjc_framework_AppTrackingTransparency-10.3.2-py3-none-any.whl", hash = "sha256:f68058481a48626375db21965e7bfecad8500103f21febfe3baeba8c59a3737c", size = 3457 }, ] [[package]] name = "pyobjc-framework-audiovideobridging" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f9/f8/437666f24f295986ad9ea77a694f7db98889a8367fad46d93b84ae028e28/pyobjc_framework_audiovideobridging-10.3.1.tar.gz", hash = "sha256:b2c1d5977a92915f6af2203e3b4c9b8a8392bc51e0fc13ccb393589419387119", size = 59209 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/ea/67984a0d4065cbf6982d4e18581fa2b8a0023c37ee5bf436ccebb6c8f552/pyobjc_framework_audiovideobridging-10.3.2.tar.gz", hash = "sha256:72b1c8a07fb5ab4f988c9172e5ddf44f1fd15214aa5dc2f80852c6152e13b2b8", size = 59579 } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/ec/da418b96f03e5dd7d0bf0974843292756d89dd9e2604384e5da802332ffd/pyobjc_framework_AudioVideoBridging-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f6067b2f50fb48c9ecb521b8865d93dfbd46510a4322cc2041b1e917678f39b", size = 11124 }, - { url = "https://files.pythonhosted.org/packages/2f/5b/f03579fb2c77b72981beab1cbb58d9f02ea6a7d0309a9fb4e859a6ede73b/pyobjc_framework_AudioVideoBridging-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1aebc6c1aafb3cdfc5f9fad2dfe2dfccfbab159dc8dbfe54cfea777108e80e44", size = 11152 }, + { url = "https://files.pythonhosted.org/packages/49/c5/f7df33105def20bc69f694287be6a68ec59b0b9d98dd047b7380bf3e8e5d/pyobjc_framework_AudioVideoBridging-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:827233f90741adc6d7b0288e13d489599c818b7069de59dd1f64868d9b532b3e", size = 11000 }, + { url = "https://files.pythonhosted.org/packages/87/9c/7ef810b3c36a492fdeca06b3b66a1fd5541f9fa90d04e126ef68fd29a29c/pyobjc_framework_AudioVideoBridging-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1eba2ef24a191b698e6a991a5b37e1b047ab8d20b436f008c80b68e727ef0fb4", size = 11035 }, ] [[package]] name = "pyobjc-framework-authenticationservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/35/3b/12082a13266fed356222a5c6c3eaf6ddcf21099f7a5b76b3fff58568042a/pyobjc_framework_authenticationservices-10.3.1.tar.gz", hash = "sha256:0ac834f4a5cbe3cf20acd4f6a96df77bc643a1ae248e394d06964db9fe0d6310", size = 86405 } +sdist = { url = "https://files.pythonhosted.org/packages/dd/16/ca8a01b9ff6bb50fd35465b1a31785575096b4aa079ccbc90cbd40cf7db1/pyobjc_framework_authenticationservices-10.3.2.tar.gz", hash = "sha256:ff990cb7bc2ac9599082f162e38e4db3bf7504c71948c09ec5fb625f4c2e05e1", size = 86841 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/f3/7e2ed16674d77f7f124d9aed88e44d420c1de9bf405fe3a020fa4550ffc5/pyobjc_framework_AuthenticationServices-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:fa0a11fb64e30f14f01ec2d3a2a89a3e1a554db62111b0612f1782722b6dd534", size = 19963 }, - { url = "https://files.pythonhosted.org/packages/87/8c/51425897927005f8d42b26fd1c5ce6b934dcff287f3d643b21cba2a8fcd2/pyobjc_framework_AuthenticationServices-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e2753cdd5480f97753dc32d9f41d7e6cb75b09f7ce950b2eea4a9851e0a437db", size = 19902 }, - { url = "https://files.pythonhosted.org/packages/22/c5/23298f667061724b479b5c6707e985ac36541d04e023110427a4a936098b/pyobjc_framework_AuthenticationServices-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:91c2cc0e963d6ac44c3a6014270b54e6499f1aae64d82482d96114c38fb99817", size = 13723 }, - { url = "https://files.pythonhosted.org/packages/27/d1/0d3a08a92ca7dd92311f8b13e08f41f2f5d558bad17a4db53dcd007b951a/pyobjc_framework_AuthenticationServices-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d715bbdf1c94ea838830930a41de0554905760943cff1510268d8e485c826ee8", size = 19988 }, + { url = "https://files.pythonhosted.org/packages/1d/0b/0086583835b1a222a115ddefe1b4107eb049f4b652af26750094845365a4/pyobjc_framework_AuthenticationServices-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c26c369ba44177b2b019fbe0691b4d243fc4cb734c8704067fca4b56006547de", size = 19342 }, + { url = "https://files.pythonhosted.org/packages/e9/ea/e289b858ceee4e527b35e8738ac9f87e556c4af5eef2d4ad5d5b2a95b944/pyobjc_framework_AuthenticationServices-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:06cae95f3f4e6ae22d763d84fd91b031f60c8154d72b0955275247024f5bec51", size = 19279 }, + { url = "https://files.pythonhosted.org/packages/fc/bd/d41336e93c0fef8b9c993996e0f6d16d21c12895f5a883ef06262f5b16a8/pyobjc_framework_AuthenticationServices-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:4db6591872a577d8dfb60f1060b7a1fde08d1becd9f98c13c03bc66fb278852f", size = 13374 }, + { url = "https://files.pythonhosted.org/packages/77/80/67881e9edb677be974c8751e46b3e30828fb2e2cc4ae1769c52dd82479b8/pyobjc_framework_AuthenticationServices-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:19276f6fa81f2e1541a5902938fc204aa4e432b8fc44f20bfda95321a9341416", size = 19357 }, ] [[package]] name = "pyobjc-framework-automaticassessmentconfiguration" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/0d/19f8aee86e91da5a9f6954870f21d839b835a20e84eb2221b839797be705/pyobjc_framework_automaticassessmentconfiguration-10.3.1.tar.gz", hash = "sha256:f7846d04493e90eddbacfb7cffebc11b3f76f0800d3dc2bec39441732a20ac56", size = 22477 } +sdist = { url = "https://files.pythonhosted.org/packages/6b/dd/53aeb33bdd6c137af18e487d7f3e023d5dc36eaa049775ffb7a9d21721b2/pyobjc_framework_automaticassessmentconfiguration-10.3.2.tar.gz", hash = "sha256:cbb1313e5ad4162664a92225a9e4a685a92d03a81e81664acbc51857ec415292", size = 22841 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/ce/ebe221179d1e860ade2128f8a5bce3da22df1db4f4abe567197620abda7a/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f717f6df5886123a55584f8dd85626c42387f5b55edcd3d68ff306b3fe56a206", size = 8590 }, - { url = "https://files.pythonhosted.org/packages/6a/14/c929d3ef97471462292072011e2ad228516892b6e0077f0b6ea62adc0c27/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ab84a771835f346e8a45d19e05f0c2ef8bb3dca81461fb2acc6c9f031794ec63", size = 8637 }, - { url = "https://files.pythonhosted.org/packages/fe/b8/fe90a1e80487f95986c2d0aa55a2714b955aa9be3e21cf06e8458f2392c2/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:66fd582549ef602a8bcaadb57de8a06cb0dc0367c2a508b20c580fde2232daed", size = 6588 }, - { url = "https://files.pythonhosted.org/packages/3b/1c/c761dcab6f5ea6f1137a4bc9e1ce584010daaabbcdf4c11d66a0e490b2b1/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:578512ae1443e031c3fbfec7eefa71e5ac5fc8cac892ad7183c5ac0b894d494d", size = 8915 }, + { url = "https://files.pythonhosted.org/packages/c8/da/d8ad97f6db9b4c4e073500c911cc460d3e979623839b45d26fcbbcfd96ea/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:62a1f51491bf69790546664f4bcfa0b0f82d8a67a7cd6c88c23269607ed0ee40", size = 8535 }, + { url = "https://files.pythonhosted.org/packages/c4/21/b83cfdff8547ddba8c60c629b621a91c3558eefdf652efa783451814c3d8/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:267fe8f273b1d06ca277572ea3f75bb30ceb89cac7a114f1c9f5a76331607809", size = 8513 }, + { url = "https://files.pythonhosted.org/packages/d4/25/0ab4924032579e405e683c31c4c413dc02165dde3323f7a6fdcb5e82181d/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:d92d60ddc36169c88073ec2ded594eab199a8bc59905fd3b4234bbce38cc71ee", size = 6513 }, + { url = "https://files.pythonhosted.org/packages/d0/60/25052beafd141534d2cbee639e5c40342fa46f58b3b8709fe415fcd298f8/pyobjc_framework_AutomaticAssessmentConfiguration-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:be9f4570d41779d1ecde943eeef2d460def2315f91513555b37b1d67be4762c4", size = 8874 }, ] [[package]] name = "pyobjc-framework-automator" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/88/ca/fe39648043bf7ab2e5f09707cca9254277555c1a09973ade71fc029f7dff/pyobjc_framework_automator-10.3.1.tar.gz", hash = "sha256:330042475479f054ac98abd568b523fc0165c39eeefffc23bd65d35780939316", size = 195097 } +sdist = { url = "https://files.pythonhosted.org/packages/32/16/3796b8abb209e8ff41a19064b88f53e48b886bcd004f6b05afc4f23ada70/pyobjc_framework_automator-10.3.2.tar.gz", hash = "sha256:ee7ec981275e5dbdd2e4d83d4d4be3c3efdcaadf0a9917d935328363dd49085f", size = 195443 } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/d9/129cbbf10c38b8a9f907cbfbb44dc9746861c3a2d306d49963e401016480/pyobjc_framework_Automator-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:63632d2c1d069ca29a077b15ab20a0a0acc0a5f33ee322c9c8cc854702c66549", size = 10019 }, - { url = "https://files.pythonhosted.org/packages/41/a7/745ae406ed296d4503556a5e8697bdad6ac9004e01a55a598aef660915fb/pyobjc_framework_Automator-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4bc8afe0a52bee09f7f99bdfc62100654f08113de47e74488c0af2afcd646e23", size = 10077 }, - { url = "https://files.pythonhosted.org/packages/00/0c/bdc85fe1824d0551e4e9cdd0f2467b1615c8a40ed972172fc70b6494979c/pyobjc_framework_Automator-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:8609e1295030d2a46916965cd070072a90b6528abc25ae4d02e50818d2cb252f", size = 7776 }, - { url = "https://files.pythonhosted.org/packages/00/0c/4c81e55eb886112756177f86389558ee0b04ec060b4eaca122e4f83f8bdc/pyobjc_framework_Automator-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2f482464b3f91405a5a59e3b96ae89c5062af81023ea0fc803353fdfe8cc4a9d", size = 10372 }, + { url = "https://files.pythonhosted.org/packages/07/1a/97a29dd795e0b82cc497cfaf1a4b2f1e39b0516efe06ab7a5fd2eabcdb83/pyobjc_framework_Automator-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c54bc8ebd7bf9a7978019e87e3952c8abb4c2b86049f0c444a31429c1ca216f2", size = 9958 }, + { url = "https://files.pythonhosted.org/packages/d9/30/608f709bd0cbca8ab71ea1631fdc4e8aee3e616dad056c053c21d75a7a69/pyobjc_framework_Automator-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:62534dd8ba98e1749f54e633d02f8678d771bb66b2245b170c52ea0fcbcf1d64", size = 9926 }, + { url = "https://files.pythonhosted.org/packages/41/d5/bc14c813c444cce511d37a40734eb3f449f67fe455a5aa7d75b05a72377c/pyobjc_framework_Automator-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e1b6fae892fca95e9229da1f42df851376dcd97840b99c34ae509a4dbc1f9c7f", size = 7676 }, + { url = "https://files.pythonhosted.org/packages/f3/c4/7502081fb3cc64dab53983c0a4da5fde70475c55e7fd3a86012aaca35fcf/pyobjc_framework_Automator-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:62459585c850945736264d1251fb4a37b3a1f87b4749dbe1f8bb204099527481", size = 10311 }, ] [[package]] name = "pyobjc-framework-avfoundation" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2237,66 +2245,66 @@ dependencies = [ { name = "pyobjc-framework-coremedia" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/4f/0f509c925c28d4b0ea709ccb9fd9a229c6552187f7506aa1e583d66cf658/pyobjc_framework_avfoundation-10.3.1.tar.gz", hash = "sha256:2f94bee3a4217b46d9416cad066e4f357bf0f344079c328736114451ae19ae94", size = 695146 } +sdist = { url = "https://files.pythonhosted.org/packages/db/8d/8a78df7d0ccbf7e8f7a80692f7891895b323334bde2781a6018452c92eb1/pyobjc_framework_avfoundation-10.3.2.tar.gz", hash = "sha256:e4baa1cb8d63c2b366f90341dee54a646004ad02d4b01119c79904cb869e7a6a", size = 695532 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/62/5b7cfc6ea3d5df7d61b29eb6572ef4abc8027af5538ceff4f2582f672bcb/pyobjc_framework_AVFoundation-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:0896f6650df35f0229d1fb3aa3fbf632647dd815d4921cb61d9eb7fa26be6237", size = 67777 }, - { url = "https://files.pythonhosted.org/packages/0c/34/2f0e42bfedf3d15381944940bded10266d25f8843f2aed85ac731d880dd5/pyobjc_framework_AVFoundation-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:0cb27cc95288d95df7504adf474596f8855de7fa7798bbc1bbfbdfbbcb940952", size = 67973 }, - { url = "https://files.pythonhosted.org/packages/5e/41/3c5b35d8fee491a8c2998d5bf8bc1f746edf4ce338759b1019c6470cb0ee/pyobjc_framework_AVFoundation-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb606ef0806d952a04db45ae691167678121df1d8d7c2f8cc73745695097033", size = 55449 }, - { url = "https://files.pythonhosted.org/packages/db/bb/b7eb1bb9ba12a0717c944f7a60f6decafa745cf7281a935671ccd0739b42/pyobjc_framework_AVFoundation-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:00889eb915479aa9ea392cdd241e4b635ae0fa3114f043d08cf3e1d1b5a23bd4", size = 67995 }, + { url = "https://files.pythonhosted.org/packages/4c/2a/f4710ceee7ff485d5e63893fd97e2cfebbef006c593e2f49cbd507cdca21/pyobjc_framework_AVFoundation-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:1a357b4264909c9f29a467d6706e12a822c1d6b9b9b274dd5892500cc9265681", size = 66809 }, + { url = "https://files.pythonhosted.org/packages/49/29/30f7a6718e40d027ee9aff93fa5ea63f2a8c8367a8ff359fb682380f6ed7/pyobjc_framework_AVFoundation-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:cf41bd0c3e1269d892bd112c893507f8a3991244a9217d103dc2beb4366a8769", size = 66742 }, + { url = "https://files.pythonhosted.org/packages/63/62/9ada601d16d4cba65076aae40d869a16e4ea07755f989c84723cd12e5b63/pyobjc_framework_AVFoundation-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:4c257341a4baeb10371e4bd8eaa89a077a1fb8095a0ebed15117b7cb424e0b57", size = 54727 }, + { url = "https://files.pythonhosted.org/packages/73/18/b76ec3753432034f7f290c2894f812302d037b831304f7ef4c932e70ce34/pyobjc_framework_AVFoundation-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:50a4e245d5e65f525e23c9bda78ccfbaf3492b661cb006f2c9b6f0d9c9d368f8", size = 66874 }, ] [[package]] name = "pyobjc-framework-avkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b5/de/7de605cea8176d69a41503dd544c0af02760c4518be3049b877563cc0c36/pyobjc_framework_avkit-10.3.1.tar.gz", hash = "sha256:97ca35b5f0cec98f5c8521fedb8537bb23d82739b7102e4ac732d3c3944c8ccc", size = 38986 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a9/ee16b75e0a509ab19e1a911c09bddef11b3e426cc7c8294006c583529172/pyobjc_framework_avkit-10.3.2.tar.gz", hash = "sha256:b4c63941aafc7f83790ec6039b3384a19ada304c98c889a2d6ad66ad843fb41d", size = 39355 } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/b3/76c4c4a6455928f130aa08d121ef717536e77d58fb6013f7d3fd609bbc8a/pyobjc_framework_AVKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:bb6025331e5ed493d5ca0a35fab14026820e0d8b0a091fc6010b4ef77aa4bf16", size = 12368 }, - { url = "https://files.pythonhosted.org/packages/3a/42/d683ad96e4b51cccbd99109c7fa5350a841015844fe0e042df040d4f8ad6/pyobjc_framework_AVKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:675832ec9c088c2010bd9cd9f912ff5c45ff608d7d94233347d49f1b91f690ca", size = 12418 }, - { url = "https://files.pythonhosted.org/packages/78/e2/3932538c415f2e592a5e9313699fb7714d96cf1113f1dea6f8af75065106/pyobjc_framework_AVKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1d92e1d5d098af87667f3eac0609c39c58320c095cdcb7737958cc4895569f22", size = 8435 }, - { url = "https://files.pythonhosted.org/packages/25/ae/158378a4753102daeb89e5c0f5ae827c97015ab8d84d4d021965071d386c/pyobjc_framework_AVKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:91bf61fa8d8ef3764345b085038a4081165a8c54b4f0c2a11ee07f86a1556689", size = 12282 }, + { url = "https://files.pythonhosted.org/packages/27/ba/0b8e6bdb782b7df797b96d931535c8dcfcbfcefbebca7b98864d1f193fc9/pyobjc_framework_AVKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d884f5a51cf1e4f2ffaeba85ac8153635da54444a4a1b9be337f4994d0e7141d", size = 12142 }, + { url = "https://files.pythonhosted.org/packages/c1/bc/097af60dac8f11ec531864435520b334d92c5aa938d745ee0c609b7bad2c/pyobjc_framework_AVKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3e65230536c8ac53863e5b8060a9351976f83487416b589b694bd3c59cb146a5", size = 12114 }, + { url = "https://files.pythonhosted.org/packages/81/ed/fde1819d30a3d3bfbc1121ec1a53920ae35320124c12f8ad5b5757ffdfe9/pyobjc_framework_AVKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:a67b031ce160998c100c61880dbc0ea0788f1e07c0e06fe71e7d238261d64353", size = 8259 }, + { url = "https://files.pythonhosted.org/packages/d0/ba/d23ddf14a5bccf69009fd0841b295173db6aafc186f8b6cd00f30bd7afed/pyobjc_framework_AVKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2fd40cbe60c5f0bd4feab6a999da4be877258ffe61c8c1becf2b4106e5fb0ab1", size = 12082 }, ] [[package]] name = "pyobjc-framework-avrouting" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/d5/b3012c90b18722b9d8e27f6a570ac534da89e4902bf5805f0bb39e340891/pyobjc_framework_avrouting-10.3.1.tar.gz", hash = "sha256:7026059b24daf8e1da05d7867f450e82abe412fe5c438faf9344f46e3b83da39", size = 18663 } +sdist = { url = "https://files.pythonhosted.org/packages/09/89/b45d19ddc5c780fa7e6736cb782bc9b01a1c6ec8690326904020339dd39b/pyobjc_framework_avrouting-10.3.2.tar.gz", hash = "sha256:0c36464e80c77e0d44483c68880ea2d239084c378d200f02e0688967c3de4f55", size = 19018 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/58/b01ddd24cb808eca3ef0254cc6e00fb47c53ce41c18f37ac23ea64db4cd7/pyobjc_framework_AVRouting-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:30b05ea44f21d481e39905684c79176c04060e0e92c1ad31756fed6aa39b07df", size = 8260 }, - { url = "https://files.pythonhosted.org/packages/9f/e3/d814c295e9a4f4cf8c8f283371a42c992b0996b96a99bbda7e2e8efa2976/pyobjc_framework_AVRouting-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:af940e322cb9ce9d79b47b829c5df41ac4980aca2cda1fbe1ead4ed0f9f589a4", size = 8314 }, - { url = "https://files.pythonhosted.org/packages/4a/d0/7c689243a9da880ff6eacb3694f40098507b22e300752ca8a11cbf31de09/pyobjc_framework_AVRouting-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3e5101311ee84c884c0eba201b3b7f92e1a2325132a9e44b9b7ad84cdd28b4c2", size = 6015 }, - { url = "https://files.pythonhosted.org/packages/aa/58/60bbff72a9aec1b8419461e94946a531878385993aaca1789795906fe69e/pyobjc_framework_AVRouting-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:186e891c2a271492612b3db2b5c2050c56ed1bfce1f6146de8dbf05e7cd7623b", size = 8628 }, + { url = "https://files.pythonhosted.org/packages/e1/80/990a5e9b45b9f3973299f94e18ed8c8a561ede2cf33e505710151c7249e9/pyobjc_framework_AVRouting-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:8c053fdcbf6609371c11178593cc6a75258a83797aa668c28d0be924d60f2262", size = 8199 }, + { url = "https://files.pythonhosted.org/packages/87/cc/4a202e8a53c2f6be57ad1d8b1d66b19ef37b4c9f4e0840bf69bd4fc48339/pyobjc_framework_AVRouting-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e4b438576d627e8d97bc9690b7250a3a9821c94cfd7002b63c9ee50a60287aaa", size = 8175 }, + { url = "https://files.pythonhosted.org/packages/9f/3b/0f4227d9cbc12ba57f8ac00b4d1dfbe6b2056bb267966aa62b1af34baaf9/pyobjc_framework_AVRouting-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fcc9bc9e18aafd4709159a6d7a00771a6d018f7e8945759c0864ba24aeca38f5", size = 5909 }, + { url = "https://files.pythonhosted.org/packages/23/b0/e3c0e9bd6f5d7b92234ae106fa0567cdde9019b4ef854250317372f91f98/pyobjc_framework_AVRouting-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:a0ef3bb4b3e0f37d253e17c7669ee4a0fe086c6cc32a10dd8241ea1512135e68", size = 8587 }, ] [[package]] name = "pyobjc-framework-backgroundassets" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/be/6a0039ac75e7d9b84f7250d2301e0fe6529c0db6c137e398e31d04f65629/pyobjc_framework_backgroundassets-10.3.1.tar.gz", hash = "sha256:5e1198f81db6f30ead2a55e8ea39264f9fce83dcf8e31a68e5f0ea08c5cfe9b5", size = 21762 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/15/38a5d93d6e03abcfe6833df574fd5087c4bfeccb49dff450a771e2221e08/pyobjc_framework_backgroundassets-10.3.2.tar.gz", hash = "sha256:17436f7eb08d407603e2e633272a7d51023d40b6f81dd577ad34b9db16fdcb6d", size = 22162 } wheels = [ - { url = "https://files.pythonhosted.org/packages/53/b0/8de66724de73e39c00ccddfd4f8d56eac4ea9da810fc79a86ef59b522621/pyobjc_framework_BackgroundAssets-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f725d33a5d633c514e4973489e1bdca391976a5c04443451acaaacc5ccd4095e", size = 9684 }, - { url = "https://files.pythonhosted.org/packages/cd/bb/d3de8275de550fae2bb0263252fb784859f5ed07cf43783f1a243d5e9766/pyobjc_framework_BackgroundAssets-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:14cc84ad7bef64986fe240d23205870fc40dd7b1d2a1819d3dd7924c4898b5c2", size = 9743 }, - { url = "https://files.pythonhosted.org/packages/bd/a7/fecbc4d0b6d0583f2a0eba81f920fd03b68afe6beb8fbf75691283a74702/pyobjc_framework_BackgroundAssets-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e28624ecfba067b5e0fc91d5818cb3d20d0ba189a7e8a724678abbecc233c13e", size = 7222 }, - { url = "https://files.pythonhosted.org/packages/11/da/f25864ee44ccc600a7b93c07e0a7b45f88a9ed302de708c88bd9edfd9ba5/pyobjc_framework_BackgroundAssets-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:aed2307c7fdd690e4dd214cbfacf4e7d5dd07e6cdd88ce1c02c4ddde3deea843", size = 10224 }, + { url = "https://files.pythonhosted.org/packages/69/ed/e40e34f2790887776809e857055968f95247f68db9b1dfbdde9cba6b71b2/pyobjc_framework_BackgroundAssets-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:6d9f714ed58ec15c54b3204287b924e9bffecad1762763eb646612adc1c2e1e1", size = 9588 }, + { url = "https://files.pythonhosted.org/packages/6b/2b/4d8d5c63771847b46007fcdb4bb4ae9f43df64d146694d58b900174b9c0c/pyobjc_framework_BackgroundAssets-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9c427818c613f5eed9fb16aeedcd86998b46e7edf5a3e66c5319aa81f8421a82", size = 9553 }, + { url = "https://files.pythonhosted.org/packages/88/c5/b6386bb414a408116db33b2826fdb347a831c429ad6fd0c9f6cef6cb7a0c/pyobjc_framework_BackgroundAssets-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:34a1bb9f48b3f4222f798704e63851fdccc5ec352eb7dc331c941bb73826569a", size = 7116 }, + { url = "https://files.pythonhosted.org/packages/75/88/8df35ff15c008a21f189649ede50b0228c43f4fb35943a2c3271baec661a/pyobjc_framework_BackgroundAssets-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7893c4f9635cbf5a73218e801c5712a4e93b2120a525609c0c1f69b96c69e05e", size = 10138 }, ] [[package]] name = "pyobjc-framework-browserenginekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2305,72 +2313,75 @@ dependencies = [ { name = "pyobjc-framework-coremedia" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/48/09/61f1688824a500f74e4fee94cec3ec3bef87e58a5205026761e4d292f027/pyobjc_framework_browserenginekit-10.3.1.tar.gz", hash = "sha256:0f6ea100bcf06f2b3f915dab27cf2f038698b39510fb47d3769f72ff62c1e80b", size = 21016 } +sdist = { url = "https://files.pythonhosted.org/packages/5f/ab/d09654cb647e5c1c751bd9c819d79a31dfe4072cc79eae28e66f58c05688/pyobjc_framework_browserenginekit-10.3.2.tar.gz", hash = "sha256:5c4d50f2358376c36a3d2721b8d5c259f77e9e62f48503030c2312b8b6b58943", size = 21390 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/fa/fb104e8dba10800982d499da02d2422a9faef685438a12c9e899385693c1/pyobjc_framework_BrowserEngineKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:86c92ef4e79db4066f7887426e99cfec8902fc8949fb666359cf2a9e519106fc", size = 10579 }, - { url = "https://files.pythonhosted.org/packages/68/a4/85deec80d0b26a31ddf830039448ef4d98a74f21ce9c817fb88147fc275c/pyobjc_framework_BrowserEngineKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:69766ba235976e0a1961d3925228d2ef12808298acd0cd66fe9e883424f0f9a4", size = 10639 }, - { url = "https://files.pythonhosted.org/packages/e1/dd/e324a9760722f719fcc6f1f0ed0b02d52ee523436d7e03e16dcec416fc98/pyobjc_framework_BrowserEngineKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:5394a5a801563834764ae46204f8ce4d61a0e2d4567716361eaf5f5e3a27aba7", size = 7416 }, - { url = "https://files.pythonhosted.org/packages/4c/8c/4b11a2cfd7df34507c8da6c4c54da4de135e856f9bca2d86524c8e67b4c1/pyobjc_framework_BrowserEngineKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d5aeff43abed7e87f637086a05f1b77083cfc7cab07c09c447ae2b23621b2945", size = 10480 }, + { url = "https://files.pythonhosted.org/packages/df/1c/47864ac702e146422128232ac5842eac12a3a6a5ed860dc491bdd76d3894/pyobjc_framework_BrowserEngineKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d52afa42b38f2b7963ecd82314e0c33f2aa63417df78075affc026fd4e9dfb8d", size = 9895 }, + { url = "https://files.pythonhosted.org/packages/cc/6e/5a8824fdbb4dba2048569a0615eff24f74fe65825920f921dc3a3cfa9350/pyobjc_framework_BrowserEngineKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:17cfc4f745d04727fcaa23ce794dc1aa1caf002f937cc9c764cfba118a494cca", size = 9850 }, + { url = "https://files.pythonhosted.org/packages/ea/f6/68aab1ae276238ad86973fe96ba3d5b4b2ebec883524b27dd1005fd570d4/pyobjc_framework_BrowserEngineKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9927e3b21185113a0260e6e033961d4c09b2d9b9561eb3406713dcb903bdc448", size = 7296 }, + { url = "https://files.pythonhosted.org/packages/31/0d/22c0c398540cd0b81abb9ccd58fc7a2203b50d6d9219618d9f601fae3795/pyobjc_framework_BrowserEngineKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b5c86adf07b7ff00c0fd3b04fc4f94ca5780080edb65c219bc08df08b0f5accd", size = 10345 }, ] [[package]] name = "pyobjc-framework-businesschat" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/19/7414a07489dbeef3b1bd40845cb9bd0e035062da3879ca20fb01a7901302/pyobjc_framework_businesschat-10.3.1.tar.gz", hash = "sha256:53e52981f9da336fcaf6783e82509e06faf8868931213ac70e6bd7395a5859a4", size = 12088 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/ea/e2df6cda4ef666165c97e513cd48f9a4bfc92f8f5137a4df6adf77591448/pyobjc_framework_businesschat-10.3.2.tar.gz", hash = "sha256:a598f401d5f391f0c78aa62a58d0a7f9908fa86abffb884138795f36105800ea", size = 12402 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/0e/b3f16873394b9d88c3217a5fe3e736e36af049f813c18af5a1bf38279cd8/pyobjc_framework_BusinessChat-10.3.1-py2.py3-none-any.whl", hash = "sha256:952b60f558e3d3498e6191d717bf62c1803f4e1ad040ae29d130090671ec004f", size = 3088 }, + { url = "https://files.pythonhosted.org/packages/c8/ce/1e43411f02adb0fcc284fc7b55be12939dfa844ebe8057d8d6968951aee4/pyobjc_framework_BusinessChat-10.3.2-py2.py3-none-any.whl", hash = "sha256:99f520ec64de7d7dab540456ac39bc9931f843a5aa86280d86372c76821fa6c1", size = 3085 }, + { url = "https://files.pythonhosted.org/packages/22/fc/b14d18869c44924e0f4bcaa50f99cabc779057ede1667bf7434c62147ee0/pyobjc_framework_BusinessChat-10.3.2-py3-none-any.whl", hash = "sha256:d2a9e2af6e23ebf096b3e8a1107a762f08eb309b18b5a2be34125c0e6a7d3998", size = 3078 }, ] [[package]] name = "pyobjc-framework-calendarstore" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/10/85/c4bb713e7e4d3f197ac975f5425ecf5469c1ea91d7b80d32eb4437b004f4/pyobjc_framework_calendarstore-10.3.1.tar.gz", hash = "sha256:21f627b0afb9a667794b451dd3a03f12ea3f74358dc5977c33b8ecc8b9736c27", size = 62920 } +sdist = { url = "https://files.pythonhosted.org/packages/26/ef/032c20f2cd77d1e860f757f47b14fad657735d094f8dcd5dbad96b136376/pyobjc_framework_calendarstore-10.3.2.tar.gz", hash = "sha256:0fbc2133045c18228efc11f8442979381f6060fc18f7e8e25b0395b2d6106c29", size = 63247 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/7f/2e3325244afa35fa610757a7f0488965b6fe89504d13ad2325527f515139/pyobjc_framework_CalendarStore-10.3.1-py2.py3-none-any.whl", hash = "sha256:7afb59e793ea6d28706423faa50bb1f25532d8ed7388c8540596ce41891445ca", size = 4865 }, + { url = "https://files.pythonhosted.org/packages/58/94/8132b78f2556181f832353291407ed8bc8dcecf5b2a083f033f0fc66e379/pyobjc_framework_CalendarStore-10.3.2-py2.py3-none-any.whl", hash = "sha256:bf70bed667dea41ad20c707183804b375e979c185a73c6863810d59c62282ced", size = 4869 }, + { url = "https://files.pythonhosted.org/packages/3e/bd/95771eb2e16db76e282a762505d0509b27920554a83b591020cf4654b8ec/pyobjc_framework_CalendarStore-10.3.2-py3-none-any.whl", hash = "sha256:80eb8909be1cf0972fdafb4a29bca1acb0bb86d5b1e343c795b94f4189799324", size = 4863 }, ] [[package]] name = "pyobjc-framework-callkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d3/b2/be5cf42e2b288073fa5d693d869ac2fbfb091a34e8edd5aa67f50fa6982f/pyobjc_framework_callkit-10.3.1.tar.gz", hash = "sha256:350390023e9ac98ff6c91b1f51da2489eef2e23aa649d0f63c13cf1d8be1e0df", size = 31907 } +sdist = { url = "https://files.pythonhosted.org/packages/11/69/365d23487489b14a4a9c19de4447b9974bf71c321f487bb8e2cb465b7961/pyobjc_framework_callkit-10.3.2.tar.gz", hash = "sha256:8d67962c8e385d31ee66ad68e9c15760ba2cad709ce0305efa5f142247e5026a", size = 32282 } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/01/4e419642221949f459459633be2e0ef456c7cdb8fb02644a805b31008e86/pyobjc_framework_CallKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:495354bea298efdc81c970154083b83aff985f2c294d4883a62de3cc4129e34e", size = 4916 }, + { url = "https://files.pythonhosted.org/packages/a2/44/6dc2820dd4d249a82ce413886fbc03e24aa5989d62f4bee9e19bb503f0f7/pyobjc_framework_CallKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:b3b9952b9c813f0eb3e99ac400fb5c40aeda4abce216efbe4aacc7c14324c395", size = 4920 }, + { url = "https://files.pythonhosted.org/packages/c2/19/7f5c2ba1bcbeeb1a8a5034029465c5d1f8c626cb18064d494d4094c038e7/pyobjc_framework_CallKit-10.3.2-py3-none-any.whl", hash = "sha256:97a6b9e0ee4f9c8b6f668834197d6eab5d24655b655a3357b26f2a0fd2762e4a", size = 4913 }, ] [[package]] name = "pyobjc-framework-cfnetwork" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/e6/e1d6b0d0b21ba5241712389aea46dba4ee9d5c955738076f5ec9d75b5f29/pyobjc_framework_cfnetwork-10.3.1.tar.gz", hash = "sha256:0e4c51a75dbf4e2b1c0d4ee60a363f9d31d682d2dd2f6b74aded769d2d883aa8", size = 66882 } +sdist = { url = "https://files.pythonhosted.org/packages/b4/f7/628d3733d72268e2210b7c66196e53ed1516b814dad6660e179aa8023e6e/pyobjc_framework_cfnetwork-10.3.2.tar.gz", hash = "sha256:1fa3953b3b240a57bc4b3bf72043a3addadf2d9a473aeaf9fdb09df442fdd7e0", size = 67213 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/0a/1e8ecd8604952650c38b53469c2a383c341e99e0a559cb8a6a8c9a178826/pyobjc_framework_CFNetwork-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e6027a90c5442e36a4ef91c9e10896efb5bc1bb4743d732adf3422112922f6cf", size = 18955 }, - { url = "https://files.pythonhosted.org/packages/cf/25/90a071f9ca9dd35bbb0d86246be3a99e71386aa7ee8ed7a31ba151110e89/pyobjc_framework_CFNetwork-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:dff41296378029f1a5e9cedbc133b243f096a93fcc8d6985c555459328cfe11e", size = 19011 }, - { url = "https://files.pythonhosted.org/packages/09/e9/840b9d1d09802e6d9a31c31545ea39e0ed834ff3fb84c0cfc0b5027fad47/pyobjc_framework_CFNetwork-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:01f1c4c43792e993c613b5b8923953eea774d4a7567fbc1861edb2c6c0cfa770", size = 13770 }, - { url = "https://files.pythonhosted.org/packages/e7/2d/bc2e628e12d0bd7e287ed8f7af3b0df347d1814d950a566fe3cd48e01480/pyobjc_framework_CFNetwork-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:f6a5d6fe5e230cc0d53b9673902f1571ab68b542f3630d7c1319ea1e3e480f22", size = 19002 }, + { url = "https://files.pythonhosted.org/packages/d4/5e/0c13b201320e0221dcd1e659ed213c153056046bfdc25e69f9359778d327/pyobjc_framework_CFNetwork-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e7786c29cdd26260e45c29378d8790d218cdd3c9e788a86b135ef6024adff0f4", size = 18801 }, + { url = "https://files.pythonhosted.org/packages/24/08/01550e13608ace7d13c652b74fed1abfe50ec549b56aee94597ac34d2edf/pyobjc_framework_CFNetwork-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:dace0bfd00073706fdb5222d73b49066be2abfaa73f12b59ebbd831906580fd5", size = 18880 }, + { url = "https://files.pythonhosted.org/packages/51/08/5e84a8c3857ca41cec07fbdfd11cb6d69dd25492bd921f61079a271cf52a/pyobjc_framework_CFNetwork-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:24060afabd102e0f7162a0b5a1a5d54978eb1819dd733c167c61285ea04fe639", size = 13669 }, + { url = "https://files.pythonhosted.org/packages/3f/0c/3da009e706ce2e1bf23cef1e8716cba6f7fe11029825a883c26eba1f44f9/pyobjc_framework_CFNetwork-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2e09c3faca0c4f139d98ea28d185a275bf00d8549263fce07e9cf17d35e76139", size = 18858 }, ] [[package]] name = "pyobjc-framework-cinematic" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2379,30 +2390,31 @@ dependencies = [ { name = "pyobjc-framework-coremedia" }, { name = "pyobjc-framework-metal" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/83/90a5f31fd89bfa030c812c869ab69cf0e333e13ee2e3c1e4877ed883d6d3/pyobjc_framework_cinematic-10.3.1.tar.gz", hash = "sha256:7edaaa7e325aeb39cd0c33329c25783dd54af294229884556daad36d1d1b9d72", size = 19342 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/e0/31644814a4f4d51c379c350de0db093b2e5ff7adf98f3b320f499b37916d/pyobjc_framework_cinematic-10.3.2.tar.gz", hash = "sha256:8a249b79905a13cc6234ca9167734bc30bbf9672a65630a69faae4415ed8a87b", size = 19667 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/d1/cc9c887e748d172fc0928f0d80cf03f598daba9757ea08187e6295d6dc4c/pyobjc_framework_Cinematic-10.3.1-py2.py3-none-any.whl", hash = "sha256:48bf35d594f4f010266a028bbf93bd953cc78db7658d3c614e219b482c8d73b2", size = 4193 }, + { url = "https://files.pythonhosted.org/packages/20/1a/c815d806e2a37bf34b4a32c987972014b99312b58b66194d4c9a0f24ac1a/pyobjc_framework_Cinematic-10.3.2-py2.py3-none-any.whl", hash = "sha256:67ad6860b0f171d2f2cede0afdd2707858cb7cb53b750b002e380e26500cb620", size = 4199 }, + { url = "https://files.pythonhosted.org/packages/b2/76/52e8f70d040feaf53f07bc8d1f9903a3f97379442ae6c7becc85746edda6/pyobjc_framework_Cinematic-10.3.2-py3-none-any.whl", hash = "sha256:8eb1dfbddb95676a20e94ac6844e935d25faa58dfa5926427386004d0300f3e8", size = 4197 }, ] [[package]] name = "pyobjc-framework-classkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/b8/cc33b734656f6617394b410a9805d05511aecdb665591936acfd66060dfd/pyobjc_framework_classkit-10.3.1.tar.gz", hash = "sha256:e15700d32007bf77c5c740bc9931c864bb7739cdfcd2b0595377c3ed35ecfe25", size = 32503 } +sdist = { url = "https://files.pythonhosted.org/packages/15/e2/b3ace38d1aab8e576349a18dc618b7f397ed37a8d68c01b508b134fcdf6e/pyobjc_framework_classkit-10.3.2.tar.gz", hash = "sha256:afc44c16791e27331b73be3269c3c794f3502515ddd916c0b3bfe2fa060854e6", size = 32863 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/a1/b18ea640218aaa4e3005b02eaa68eb10cd8e5036a38eb15cedff2055a380/pyobjc_framework_ClassKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:980d2605296428d177b0111af914d0dd4a0c5116da5ae944cdd8b6bba733e758", size = 8390 }, - { url = "https://files.pythonhosted.org/packages/93/ae/e15dbc7c011b6c047754a4638baa9c870006544b66f792534e60403decf3/pyobjc_framework_ClassKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:17dec45d5ec7db663bc87ddf80b8185d2134177f265a12a9a6df778901183412", size = 8442 }, - { url = "https://files.pythonhosted.org/packages/4e/41/969326adb114e3d16bbe23b61d0c9d7bb5788d598ddbffaf2a87666fe240/pyobjc_framework_ClassKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b74155902851e8e2b31b34c606dd33f9e24d9b8992568cc71b60e1ddc553d99e", size = 6452 }, - { url = "https://files.pythonhosted.org/packages/68/26/1a566a950018abc0b38ecef709810ad87d1e33126624e3b751be3370881d/pyobjc_framework_ClassKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:776a600182b7de58676ac661b235356f46683e758d99db1cf60f52aac335389f", size = 8673 }, + { url = "https://files.pythonhosted.org/packages/2d/00/cb02df7c7281c35f4e555ffb2904670ded5268996a0b98bb53e27f7f7c3e/pyobjc_framework_ClassKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:1046a6cc5e78bc1688ea4f42d40d51fab99cf91885c8fa80d071387c9381f0b6", size = 8312 }, + { url = "https://files.pythonhosted.org/packages/ff/90/ef557df6035c5d1442ce36a216dd3969b4a1bd056b0ba388d7a60cdfa18d/pyobjc_framework_ClassKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c8924fa4684496daee2a22f5045189ecd1afd603307340098fb57096c6ecb984", size = 8296 }, + { url = "https://files.pythonhosted.org/packages/4d/4b/bba5e5cfdc79b6eb2b701287facf5d71e7bb52d3d01f8b10a5fbbfa635e4/pyobjc_framework_ClassKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bfb239e4d01a004aaa3020e18bc3f9d2994f793a9a4d1187e8c5d1dd707e2bbf", size = 6364 }, + { url = "https://files.pythonhosted.org/packages/72/67/a4c009ebe122fd9f4cf6e777cc07fc28567ef21617dc864f4e4ae8c39ba4/pyobjc_framework_ClassKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b5c56ca2b6f4e6cf7618fcf7538a7242a1dd1866e7b284c27b36442e40f5cac2", size = 8619 }, ] [[package]] name = "pyobjc-framework-cloudkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -2411,904 +2423,931 @@ dependencies = [ { name = "pyobjc-framework-coredata" }, { name = "pyobjc-framework-corelocation" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/84/2d/22c51450dddeb9d851529f90ebd4f15fc12a4f3c9b2ceae4df8841fde64e/pyobjc_framework_cloudkit-10.3.1.tar.gz", hash = "sha256:4c7db72c2bb2fcf63365df91bf2eefa83cee4004606b901e1da89b75da652309", size = 98916 } +sdist = { url = "https://files.pythonhosted.org/packages/8b/70/daa2a428e1d8c39e55e3480c0bc9c8b39f882b544c88cad3a105e217f6ae/pyobjc_framework_cloudkit-10.3.2.tar.gz", hash = "sha256:ba05c8edb7f73ada94f9d2f8fbeae7302e53b56b2abb956012b84ba7faea141d", size = 99236 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/68/49c0dac7cf069a13352e9bb7092aa0a0caeb5646e2c3a7b9eabfb07279ce/pyobjc_framework_CloudKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:53670f47320063b80aa60edd2d813308dce85dfd2112461dd13c060aa9e5b47a", size = 10475 }, + { url = "https://files.pythonhosted.org/packages/73/a1/d6a839b7889b076e39ec45a569072fd3c91cd0acae095ba5ccdd8c53beb2/pyobjc_framework_CloudKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:6c9a17f085876874bf98328f608384228d1d841d387d977adef9a277e549709b", size = 10477 }, + { url = "https://files.pythonhosted.org/packages/88/42/b9d478ffdd77acf02750c191d5389d47e20d3d971d14691bf3b4ce5363f5/pyobjc_framework_CloudKit-10.3.2-py3-none-any.whl", hash = "sha256:fb4872f1cec3135610237c763ca8ddef7ac3607f0fc502b67c678419d64ffb5c", size = 10475 }, ] [[package]] name = "pyobjc-framework-cocoa" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/6c/b62e31e6e00f24e70b62f680e35a0d663ba14ff7601ae591b5d20e251161/pyobjc_framework_cocoa-10.3.1.tar.gz", hash = "sha256:1cf20714daaa986b488fb62d69713049f635c9d41a60c8da97d835710445281a", size = 4941542 } +sdist = { url = "https://files.pythonhosted.org/packages/39/41/4f09a5e9a6769b4dafb293ea597ed693cc0def0e07867ad0a42664f530b6/pyobjc_framework_cocoa-10.3.2.tar.gz", hash = "sha256:673968e5435845bef969bfe374f31a1a6dc660c98608d2b84d5cae6eafa5c39d", size = 4942530 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/ad/436c3619d1a84f83d55ff9c709b122e4d1ac2ee9af467b68fcb60e5ad3a6/pyobjc_framework_Cocoa-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5f31021f4f8fdf873b57a97ee1f3c1620dbe285e0b4eaed73dd0005eb72fd773", size = 396142 }, - { url = "https://files.pythonhosted.org/packages/29/73/9a913537d6d63758243f76a3d3acbae8eb77705c278eceaf37198e58dcf5/pyobjc_framework_Cocoa-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11b4e0bad4bbb44a4edda128612f03cdeab38644bbf174de0c13129715497296", size = 396183 }, + { url = "https://files.pythonhosted.org/packages/94/52/a41bf62d1467d74e61a729a1e36e064abb47f124a5e484643f021388873f/pyobjc_framework_Cocoa-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7caaf8b260e81b27b7b787332846f644b9423bfc1536f6ec24edbde59ab77a87", size = 381529 }, + { url = "https://files.pythonhosted.org/packages/22/fc/496c6ce1386f93d22d9a1ee1889215ed69989d976efa27e46b37b95a4f2d/pyobjc_framework_Cocoa-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c49e99fc4b9e613fb308651b99d52a8a9ae9916c8ef27aa2f5d585b6678a59bf", size = 381866 }, ] [[package]] name = "pyobjc-framework-collaboration" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0d/cd/8bc8e3c4cf93b1044d5e582904ec5c55656f4385bd25f86f924b4ed25ae3/pyobjc_framework_collaboration-10.3.1.tar.gz", hash = "sha256:bbca3de3679b058cbb89ad911e3bdfe491a02b4fa219d5f9219c022774ba237a", size = 15830 } +sdist = { url = "https://files.pythonhosted.org/packages/7b/d8/5f17469cee1fe7c10c971cc425a57cc820dff14cbd2fb35d26e2a4f62d7e/pyobjc_framework_collaboration-10.3.2.tar.gz", hash = "sha256:0d4ee33154ea1d6ac7b9338b2bb1a9bcb5f5e9e3ffc390195643d60576606b74", size = 16157 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/c0/b26f50c0669f49fa652a96b6496deba5c9181ddec5ac59c4de8251666857/pyobjc_framework_Collaboration-10.3.1-py2.py3-none-any.whl", hash = "sha256:889b1e00bdea09c2423e9b8d493492ec45a70787ddc533bf67d060c7ec0e1f78", size = 4490 }, + { url = "https://files.pythonhosted.org/packages/17/6e/c97f0f14050810549d1099b0c95c9c5bd1c00a5c0bfaefcf6a88923a72b5/pyobjc_framework_Collaboration-10.3.2-py2.py3-none-any.whl", hash = "sha256:4735cb4b8d701806a88cc295406308992d641ed88ae78053feb3ed3b79c91301", size = 4495 }, + { url = "https://files.pythonhosted.org/packages/9f/b8/f050b55e2fd6379c1f05dedf0890d5a52dd4453d59ea9f83684f8bf1bb6b/pyobjc_framework_Collaboration-10.3.2-py3-none-any.whl", hash = "sha256:a96ae9f4f8320fe533e16d3c254f6f117b28ba0f4b0990aa350be23c388979f1", size = 4489 }, ] [[package]] name = "pyobjc-framework-colorsync" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/16/b5cf65d3cdae2127a868e06b21e9c59e2ef531e65c4ee58afcaef2c4fe69/pyobjc_framework_colorsync-10.3.1.tar.gz", hash = "sha256:180960ed6f76084b35073eff49fcca41a8fa883c3236949a40f75daa28ee8f94", size = 31940 } +sdist = { url = "https://files.pythonhosted.org/packages/da/a2/3b6a7409e238ea577bb250bd5164be9c235ca1ba9629c21b8f29b70659d0/pyobjc_framework_colorsync-10.3.2.tar.gz", hash = "sha256:d4a8bcb7a3c13b6ac4ac25498e53b738104d49fadc97278f553268fb2ad7f487", size = 32297 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/3e/273fcd5803daf481ecc3d76adafd455040375acd63582e501cb3e2717de3/pyobjc_framework_ColorSync-10.3.1-py2.py3-none-any.whl", hash = "sha256:0c37075e9b0f1dabc0aa1755687e1a5dada08ae0914ebb593c7810bf8090cf83", size = 5599 }, + { url = "https://files.pythonhosted.org/packages/d8/52/08db02e8cee7dbf8f4c22e3fba5008c6f1c5e851bd1961819d97a26129ce/pyobjc_framework_ColorSync-10.3.2-py2.py3-none-any.whl", hash = "sha256:ca2c0af7e22c02d32d8751d5a9cd8be11a51af51c526a3bdd536004401ba0f0c", size = 5603 }, + { url = "https://files.pythonhosted.org/packages/0d/dc/e3958a7e4687275501c66d4ddf92f58dbab98c1cb409117b0711c8bb08da/pyobjc_framework_ColorSync-10.3.2-py3-none-any.whl", hash = "sha256:3b1ad179c6442464d8ec995fb824895617272fd30cfc519851019efe82bbe431", size = 5598 }, ] [[package]] name = "pyobjc-framework-contacts" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/a9/112ee53259220322f6729c446fd7b779d3bae7b24804bd342f51764dc6bc/pyobjc_framework_contacts-10.3.1.tar.gz", hash = "sha256:7120b5593a20e936cb5589b93ef7fd5558c86bd6ec8003f427afb87c04bbea20", size = 68431 } +sdist = { url = "https://files.pythonhosted.org/packages/d5/94/14eb1abc06a88d1621eeb39784a9a1346f417c8584d37d767875c50bf54f/pyobjc_framework_contacts-10.3.2.tar.gz", hash = "sha256:f912a1bbd3cee3d8af740e02abc083828604265394871c2c166bc9c1de3130ce", size = 68818 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/f9/7efe17e729ed96aac2618c24513c95bdf61762d2f7e9a288f4c290e32e3d/pyobjc_framework_Contacts-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:401e40ff638712d011fe54c7b1e9929af994e87cb03d129cd95df2fb90439e4e", size = 12768 }, - { url = "https://files.pythonhosted.org/packages/6f/e9/b13466931afbe95b5acd368ad0f177e530e458a76f8a7a2f1fb54f58b465/pyobjc_framework_Contacts-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:83de186cd4037171c63899987caa66cc01527688b15176e899cf1a06e6baab09", size = 12769 }, - { url = "https://files.pythonhosted.org/packages/d3/5e/b092b4fe3735d2b19790e9094bce9691a02fb9ef98d203aec039a2b0023c/pyobjc_framework_Contacts-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e0bbffb430505ad3f91fd58f65b0a6e7535ab5bb28c2ca69ee8a6349f3edfe3c", size = 9411 }, - { url = "https://files.pythonhosted.org/packages/b3/8a/37fbb2012ca0a15aafdf1aff03317c11ed60d14ebcd1418638897075d5e6/pyobjc_framework_Contacts-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d47f694977cf33f5d0b73e2f111edcd57f2ef0cd9a6a38e03b1dea965b8657cc", size = 12681 }, + { url = "https://files.pythonhosted.org/packages/7b/36/f20ab836c3d1ca92ad064258387dd96598a47f9328056b10373aed4a3232/pyobjc_framework_Contacts-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:8723c5e472b6fbe7cbdee5c999ffd32b4d93900cdb47f156d9304abe3f0068c1", size = 12037 }, + { url = "https://files.pythonhosted.org/packages/81/3b/3217719eae52514bd040a2123774b2023b06765cada2ce10ae727f91c788/pyobjc_framework_Contacts-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:86b7bc80e0b82665eb6e74aecd8efcfe2bb8678bf34097133a6b1a34fb200e93", size = 11936 }, + { url = "https://files.pythonhosted.org/packages/4d/7e/3e979ec7cfdbddaf33762b129d6c6ef772ec88b71fad2603cef723912969/pyobjc_framework_Contacts-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:528164fc9c9f15e5fc51a8c1d89bc211d93b3cf5ee659d492d7fb414f265f1e9", size = 9246 }, + { url = "https://files.pythonhosted.org/packages/77/f3/776bba456e4f3703e94cd50849c8f432b6e3149879e76eec4a024fabd530/pyobjc_framework_Contacts-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:8eee545f6605dc44fe35dcb8018b530d05ccbb0fa6fda61a0df4e13666c9377d", size = 12499 }, ] [[package]] name = "pyobjc-framework-contactsui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-contacts" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ad/17/ce9b512e29ca92eb519328d0fc1e12b6b048ac379447c7f4f2be4266599e/pyobjc_framework_contactsui-10.3.1.tar.gz", hash = "sha256:51601501d5bc94c59ad458c7bb1d1994c497b373307dad8bd2ea2aa348f66c4a", size = 17921 } +sdist = { url = "https://files.pythonhosted.org/packages/4c/90/014388a37e3a1e2ec9a4d8e4336a6d5bb9e805c1087a3d3f38fc1b655be4/pyobjc_framework_contactsui-10.3.2.tar.gz", hash = "sha256:c004d225f17cbbb5c8b627275cf6a6f91a05aa956ab62d08e0fd3276fae80558", size = 18259 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/d0/67150306b40068d05cb7794ed5762fe85c5d9eb0a6148b1860d7fab3cab1/pyobjc_framework_ContactsUI-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:0e939e46ccff1e07e7fa6768a35d646b7302886a99b9efe6b31dea4ea67674ad", size = 7906 }, - { url = "https://files.pythonhosted.org/packages/48/7e/2a9b1e4ae673406bad4278126491a818e2a55e4791c7cec62487947f1096/pyobjc_framework_ContactsUI-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4adc77f2fb7ae4e2999cfd72f5d3b8e0e039880f9d60cb8e15050607b249c730", size = 7965 }, - { url = "https://files.pythonhosted.org/packages/0d/cc/998cfd89b2308f8bb971b3cd85901e531e91eea82cda7d7afba967f21655/pyobjc_framework_ContactsUI-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1a605d93b4826cd4646cced6383cb253e65c8babcfd230d5894c1c4d67f6e147", size = 5688 }, - { url = "https://files.pythonhosted.org/packages/4d/56/63b61f49146a9d1890b8a06f93bf99fd15d61afdc65f6d75689aec53217c/pyobjc_framework_ContactsUI-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:62ae604a000233c729712e420de734c97afdd9187fdd0bef8e61fbc8c4f6eda0", size = 8251 }, + { url = "https://files.pythonhosted.org/packages/3e/80/504c86fefdce76b11c78c3fc0c579a3beaf699948cce1c61c9bbbd1a6fe9/pyobjc_framework_ContactsUI-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c138defc6399ff4fb94861a8b6a17d8b13d254ebb101570131a790eda2dec32d", size = 7839 }, + { url = "https://files.pythonhosted.org/packages/d7/8c/fc0e5ede553010085124437df58f748fd3008f079cfd4e8e3fb4eaf520da/pyobjc_framework_ContactsUI-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3ab62d3ced5ef1c16d56b7730f388a579dda9baec26234e6efd7b0c8de0c21af", size = 7820 }, + { url = "https://files.pythonhosted.org/packages/b8/d3/dea2aee9fda3647fb841e18a5cd89421f4f60ec0bfd929f0ab1098a05c15/pyobjc_framework_ContactsUI-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ae7ea14e086602f833c112b628a4e272e78e4d4b9893c0cbbbd42d1ca4d53069", size = 5594 }, + { url = "https://files.pythonhosted.org/packages/9a/02/81ef6da547cc4d217f02ce7fb69b8a1e9d7759257866c5ed20c2090c56be/pyobjc_framework_ContactsUI-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:baf61007722c26727f33f423873af5dd79b7ebe01fa43f8d15732cea71ddffe9", size = 8193 }, ] [[package]] name = "pyobjc-framework-coreaudio" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/fe/39351e6a58f4a9b1fce5a5e982830612277233084fe72b1d84b4de890f3b/pyobjc_framework_coreaudio-10.3.1.tar.gz", hash = "sha256:c81c709bf955aea474a4de380b187f3c2e56c864ca7de520b08362b73070c795", size = 125676 } +sdist = { url = "https://files.pythonhosted.org/packages/1b/54/0fcdab30ac31a594d699d909aa94c841fd94e173774f36e8c19e18536991/pyobjc_framework_coreaudio-10.3.2.tar.gz", hash = "sha256:c53e3247144b4f316cd588dd684a5f4edc6eebf9ca6beba488711b890bf0ff5f", size = 125996 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/dd/e4be148694e5e73885aaf00a92720293674fd510d87369cf5ba300f24660/pyobjc_framework_CoreAudio-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bd58e69cabbc987d0c2854ab2d13516889cfe4a2094b80296591ad7df0f30e40", size = 35672 }, - { url = "https://files.pythonhosted.org/packages/21/1c/af5e88a24dc7f437852a9605949c5eeaedb7bba9883b2c3cd275dea3729b/pyobjc_framework_CoreAudio-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e0aeca61a425d846afc92350ffba970e1e503469182f5f0ea436de98cfd00d96", size = 36444 }, + { url = "https://files.pythonhosted.org/packages/18/d9/e609309a3f128f4e0710e5992eea7d580bf1e7ff64482d32fe51b8c39e05/pyobjc_framework_CoreAudio-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0c60e2cc3c80462a7053ff5955ce68c15619326f1b14009b6f966d7b3ac6151f", size = 35091 }, + { url = "https://files.pythonhosted.org/packages/aa/f5/b7d346f55c7c20590a303dcb33fb86a75e25ba2cffe3730225cdb76403e0/pyobjc_framework_CoreAudio-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:731afa9876be9de326dd5219ee5ce83ffbd303083d51b45f61e17c5d4ac25d3a", size = 35301 }, ] [[package]] name = "pyobjc-framework-coreaudiokit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-coreaudio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1f/4e/79a20d1ab459467de5695f96057e034d6457b061da68951b41af211b1fe3/pyobjc_framework_coreaudiokit-10.3.1.tar.gz", hash = "sha256:81f35d5dc45cda043e01f0ca045311f4aebc36c51cb71e859b30ea0edf90b3db", size = 19761 } +sdist = { url = "https://files.pythonhosted.org/packages/19/52/e03a7a497102acb95018e653c4c03c7fdc6a01ee4bcaf403234d7b37c87d/pyobjc_framework_coreaudiokit-10.3.2.tar.gz", hash = "sha256:a41b0ab17d413bae5b6d673e6c97cfec0d80cb423f590cc4cd3970887ad22f49", size = 20079 } wheels = [ - { url = "https://files.pythonhosted.org/packages/13/d3/6cc3624b3dfc5f5d25221e8b46d456c5f3f1bbefe9fc1a9a030406a31ddf/pyobjc_framework_CoreAudioKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:dfc967bc448cc0a1fce932e6af15ad42f5ea3eb2f793396e364cf39005c812eb", size = 7331 }, - { url = "https://files.pythonhosted.org/packages/e6/2e/45509db91d9fcb0df6e1a24884596e2e560f20d6083a06f6bf9e72e42b84/pyobjc_framework_CoreAudioKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:6634f3f15d257e93cad4644eb08f5b32376e8a8a7ae2e95d99d36d935b5e9ba2", size = 7395 }, - { url = "https://files.pythonhosted.org/packages/1a/12/424094bba2cf1ccdaf2b3aa2ad25462799a2f1978c116e4a7011504b696e/pyobjc_framework_CoreAudioKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c2bf1b0c9f6c1d27c98b87bf4cf1ba3d0fa550dd771de948614ca21d15779a01", size = 5463 }, - { url = "https://files.pythonhosted.org/packages/43/df/910252ab44c47e48421f57be17c539e2f828653834cfbc7343e9f379db4e/pyobjc_framework_CoreAudioKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d5b3adabd7278e64a0deab6d0f6912bfcc667bc26054f5141a556897157dd8f9", size = 7452 }, + { url = "https://files.pythonhosted.org/packages/89/9b/d8756cd1661abed7300896bd5592a2b803bb0a2887a7985e1392df85f402/pyobjc_framework_CoreAudioKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:7076e71f6430bd099296032aeeff6ced2c46a6581332bda242118442ab539883", size = 7295 }, + { url = "https://files.pythonhosted.org/packages/6a/02/37e5ff092edda5365f3f8b22517f67e931e7ec2a7b3233070cd54916e457/pyobjc_framework_CoreAudioKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:76cd44b0b596cc380fa12433cc57f9a4f517293cf7a1bf84e76b3610f17012c4", size = 7276 }, + { url = "https://files.pythonhosted.org/packages/b8/88/c483777d9a5150906ec596dae7be75de543be14fb92a0410b3c18ec22f8a/pyobjc_framework_CoreAudioKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:46693dbc7f88f488fe8d119f6d57ec8258bd46ac027e51d5e0b2f99e691806b9", size = 5381 }, + { url = "https://files.pythonhosted.org/packages/78/79/79426dbd2de7d6fd786ae5860ecf673c7f102a850da6a1a84b28354de69f/pyobjc_framework_CoreAudioKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:1d9288f54fc332dda03de163dfd6af1eb8ba1065d33dc79f699db734a6b4e53e", size = 7415 }, ] [[package]] name = "pyobjc-framework-corebluetooth" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/69/89afd7747f42d2eb1e8f4b7f2ba2739d98ccf36f6b5c72474802962494de/pyobjc_framework_corebluetooth-10.3.1.tar.gz", hash = "sha256:dc5d326ab5541b8b68e7e920aa8363851e779cb8c33842f6cfeef4674cc62f94", size = 50210 } +sdist = { url = "https://files.pythonhosted.org/packages/13/ca/35d205c3e153e7bc59a417560a45e27a2410439e6f78390f97c1a996c922/pyobjc_framework_corebluetooth-10.3.2.tar.gz", hash = "sha256:c0a077bc3a2466271efa382c1e024630bc43cc6f9ab8f3f97431ad08b1ad52bb", size = 50622 } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/2f/b34311bc453472e34c7a9473b1da21d79f7126d61f95d85e7d679cbd98c1/pyobjc_framework_CoreBluetooth-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c89ee6fba0ed359c46b4908a7d01f88f133be025bd534cbbf4fb9c183e62fc97", size = 14052 }, - { url = "https://files.pythonhosted.org/packages/af/a2/946a7099d5181ebfa59eb390471b30b51f04da935f8ef8d9a9ac3a102e13/pyobjc_framework_CoreBluetooth-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2f261a386aa6906f9d4601d35ff71a13315dbca1a0698bf1f1ecfe3971de4648", size = 14102 }, - { url = "https://files.pythonhosted.org/packages/87/43/a344c043be35a516c0e1b7c69cb1945c3150a11416fdd89f066214ef65fc/pyobjc_framework_CoreBluetooth-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:5211df0da2e8be511d9a54a48505dd7af0c4d04546fe2027dd723801d633c6ba", size = 10202 }, - { url = "https://files.pythonhosted.org/packages/f0/a4/ed61aba4cd2d66d0569669d047bcaf249fe28dd79331015fd0d6387dbd60/pyobjc_framework_CoreBluetooth-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b8becd4e406be289a2d423611d3ad40730532a1f6728effb2200e68c9c04c3e8", size = 13942 }, + { url = "https://files.pythonhosted.org/packages/f7/b0/9006d9d6cc5780fc190629ff42d8825fe7737dbe2077fbaae38813f0242e/pyobjc_framework_CoreBluetooth-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:973b78f47c7e2209a475e60bcc7d1b4a87be6645d39b4e8290ee82640e1cc364", size = 13891 }, + { url = "https://files.pythonhosted.org/packages/02/dd/b415258a86495c23962005bab11604562828dd183a009d04a82bc1f3a816/pyobjc_framework_CoreBluetooth-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4bafdf1be15eae48a4878dbbf1bf19877ce28cbbba5baa0267a9564719ee736e", size = 13843 }, + { url = "https://files.pythonhosted.org/packages/c4/7d/d8a340f3ca0862969a02c6fe053902388e45966040b41d7e023b9dcf97c8/pyobjc_framework_CoreBluetooth-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:4d7dc7494de66c850bda7b173579df7481dc97046fa229d480fe9bf90b2b9651", size = 10082 }, + { url = "https://files.pythonhosted.org/packages/e9/10/d9554ce442269a3c25d9bed9d8a5ffdc1fb5ab71b74bc52749a5f26a96c7/pyobjc_framework_CoreBluetooth-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:62e09e730f4d98384f1b6d44718812195602b3c82d5c78e09f60e8a934e7b266", size = 13815 }, ] [[package]] name = "pyobjc-framework-coredata" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/17/1929fabc88d265373ce2b5e5c3136aae03c30ee42df66bd0810fa71328da/pyobjc_framework_coredata-10.3.1.tar.gz", hash = "sha256:8a75094942c8f3ddc1bcbde920c87658d7bb4c7534a4652e60db42d17f4b4a4a", size = 229850 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/dc/8b5d84afead6a72d42fd227af7de8dcd5aad3738179737e91cba8bdd529f/pyobjc_framework_coredata-10.3.2.tar.gz", hash = "sha256:e6da6cb3b5ec7bc1ff4fc71bf933e8a0d9ecd1d1c4028b7f2a2a24b1e2089078", size = 230246 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/18/5662deb09d3bff1390f6eab760f0e806a91d604d867960978245304a44ca/pyobjc_framework_CoreData-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:2313aba4236f3a909d2747f4327da83be884adadb734a602ed4319addf88edd7", size = 16618 }, - { url = "https://files.pythonhosted.org/packages/51/69/d07e0b235e22dbe33cf5fc7b377828a0965ca4eb156ba7db1ba380c79a20/pyobjc_framework_CoreData-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:065ff3058f4bc8544422ad1f10dff037bdeed25263cc8ec5c609e54231bf9347", size = 16675 }, - { url = "https://files.pythonhosted.org/packages/b0/39/3a3d76a11980a7757ce91b8a3de71a1486dc9d9f32d7b087d6a29df8e643/pyobjc_framework_CoreData-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:049acf980e5226b132a4285c3a94cc8266380e57050c8fd4caec3c5df4ef8c4d", size = 14186 }, - { url = "https://files.pythonhosted.org/packages/36/31/a18ce8a793a4129968409199153799aac71b2461b994a7fb8125e0fa723d/pyobjc_framework_CoreData-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2f1f4e1217fc02f66435dc2a5cb2e0b41c684c435f13d96bf05cd3d1e0ad4e2c", size = 17130 }, + { url = "https://files.pythonhosted.org/packages/f0/b1/abe31281aab75a1dde452c07586b759cf2806651b3c53e2b4d64b8ea6b8c/pyobjc_framework_CoreData-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:bfe935839722c8889919afffd0adc3ae0b67b1b1dce2b4f1e657af8a83380fd0", size = 16551 }, + { url = "https://files.pythonhosted.org/packages/4b/1b/059ee506d99db86d81fba37933a08f3a2171cfdb12e0a346be69a5968d36/pyobjc_framework_CoreData-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4cf569f99c427374cb83c4d38299c442a23cdc9e888c5fb632b117b87a73cf9a", size = 16526 }, + { url = "https://files.pythonhosted.org/packages/f7/50/465a45ec1edaf60493567a9d42a032eb50f67928eba815aaa7785ed43120/pyobjc_framework_CoreData-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c4e5fa3339e36cc79852353562d7c8f77f2999b07d08e06a0d3352145998603e", size = 14087 }, + { url = "https://files.pythonhosted.org/packages/2c/40/c8193919dda05e4a39f973c0413ba31ea208d348fced9692ee840ee54a6e/pyobjc_framework_CoreData-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:74dce9de732c5c653225fd3124fff7cf27c72b4271ff0c8fd6245a97061a5354", size = 17057 }, ] [[package]] name = "pyobjc-framework-corehaptics" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6b/04/ef530d0c30cf81a772ddee64cbfeb7cafd9428d87df96bbc6eb41b77d80f/pyobjc_framework_corehaptics-10.3.1.tar.gz", hash = "sha256:5a7cc117c0b64428e1f08dc9c8b76dbc5d8f61f80dc41e911d11ddee4e0e2059", size = 36854 } +sdist = { url = "https://files.pythonhosted.org/packages/9c/47/9f1dc2645fe5d25560f6d16c12a91997f66038d798b7926fbd3598bef3af/pyobjc_framework_corehaptics-10.3.2.tar.gz", hash = "sha256:dcd595bfa0b02212377be6426457eef76dd0a343dc73416a81ba001adbb0d2aa", size = 37194 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/70/b41b0423b1dce4c98e87787c5af254275ad88db1a781eca5d8d440a4c882/pyobjc_framework_CoreHaptics-10.3.1-py2.py3-none-any.whl", hash = "sha256:163b83ea727cbac5c0963d16ffda89c9f1626ed633d5e52830c7918b8599a693", size = 4987 }, + { url = "https://files.pythonhosted.org/packages/f6/ff/6de5c3683d07afe21cb6a651b0cb047a030d4fc4b736b21278bc9aa0bb31/pyobjc_framework_CoreHaptics-10.3.2-py2.py3-none-any.whl", hash = "sha256:7d09397cc514037b628b1d19716c9b750df8077410086e40071991ecc63cbda8", size = 4991 }, + { url = "https://files.pythonhosted.org/packages/0d/10/5dcee4a9f90b52f2cbee2561054f471b698837771803fd7dd469aacd1c1c/pyobjc_framework_CoreHaptics-10.3.2-py3-none-any.whl", hash = "sha256:d360af7d72730e3c891f4034045a72837683ca82cb763e82e6b15dc5b47ee9fa", size = 4985 }, ] [[package]] name = "pyobjc-framework-corelocation" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/35/8cf7ab8f9b7be5b81deac4d74fdc89607a3eeb901f785cc7d50332eaa275/pyobjc_framework_corelocation-10.3.1.tar.gz", hash = "sha256:8ae54e5bd4c07f7224639d815f7a6537fadee17c11cb35dd99c2804bac1825ab", size = 89219 } +sdist = { url = "https://files.pythonhosted.org/packages/25/a6/14450410f233a8e8d3ed1e48702a0b405f402bd3efa77b8bd62c424ca0fc/pyobjc_framework_corelocation-10.3.2.tar.gz", hash = "sha256:3fc543ff9b5a347bece0668e9c4d73cc94bf47624a723fad0d568d360567583f", size = 89656 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/a0/9268f18f0daec40460590a724eef778f6012d81da3e4c668b478486288f4/pyobjc_framework_CoreLocation-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4cc83a730db7f78ca5ceef45ea4c992084d8c90bed189939fa3f51f8e9ea83ae", size = 12928 }, - { url = "https://files.pythonhosted.org/packages/e9/e3/16b8d53786cee07c496d614ca29aeb1e110a93fea501983b54158d23622e/pyobjc_framework_CoreLocation-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:97d5aa35214e417c9a03ac7209630dc445b98652932642dd0497f1ec52624bfe", size = 12978 }, - { url = "https://files.pythonhosted.org/packages/f8/1d/e290bc1dc73bccc09a6483dd86dcce057477f367622a94b704cee987a0e8/pyobjc_framework_CoreLocation-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:86d0e00b7eef5a3e2f01ea309cdcf58807b251138008edcfc65d3c31af8a5bd2", size = 9865 }, - { url = "https://files.pythonhosted.org/packages/c4/85/aec923825469aa315d1fbdf5cd5988158fee5f0740f44b0c18b0b6624fd6/pyobjc_framework_CoreLocation-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:5c4ded6388f99a18ce2b9d7082b8a43a19b6d9f8f121e2147d10bb37a25e1714", size = 12840 }, + { url = "https://files.pythonhosted.org/packages/c5/bf/f3ae97ea404e85cb0b5c4dfe58d35df35b0e20ed7b19b2eef5390a27a617/pyobjc_framework_CoreLocation-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:787837f678048e593ac21f0308156c237f1fcea07c4ce6d3a3a983074a87f14b", size = 12855 }, + { url = "https://files.pythonhosted.org/packages/17/b1/3b5a40c95861e3ac5357276e434b78e85585f78e79a420922a67ddf2a16a/pyobjc_framework_CoreLocation-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:79d7306946e62a930d280be7496fce645d59190135a527b4df21cf9ad74b77a1", size = 12827 }, + { url = "https://files.pythonhosted.org/packages/75/bd/a2c6400680103b28f9ef454d159116b08344c2214b20ec2caf610090cdce/pyobjc_framework_CoreLocation-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:eae5f2e857672f4c771aeb96aee7103a45c12f987adae230f23ef4ff23b40914", size = 9767 }, + { url = "https://files.pythonhosted.org/packages/e8/1b/ba7436abd8eba1b016e5a4385bdbcc44c0b9a2760f9424ce54e80af9833e/pyobjc_framework_CoreLocation-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:3882873ec834531e1bbd641b56c591d8c15b016a4a959e3782459b51e4eddf79", size = 12794 }, ] [[package]] name = "pyobjc-framework-coremedia" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/9f/5e500c16472053db65dc917b7ea9cdc0fa8fde140ea4c38500a4c341b0a4/pyobjc_framework_coremedia-10.3.1.tar.gz", hash = "sha256:bc3e0cddf5f546b5d8407d8f46b203f1bd4396ad5dbfdc0d064a560b3fe31221", size = 180773 } +sdist = { url = "https://files.pythonhosted.org/packages/fc/99/01b557daec18114166ae5fb602437477a60325e08dd9cfa5aac9d1c5174c/pyobjc_framework_coremedia-10.3.2.tar.gz", hash = "sha256:cf69753c12cd193df5ff25eb8f6da857c9aa93e73b8e497ddd77a3f48d1b171c", size = 181120 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/99/5ca053be93f30cb8420b72a1e7eefb778677e072f86ea2525dd6d848ae88/pyobjc_framework_CoreMedia-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e63b002cf5e34540cba3f3a1704603ea0fb076ffc1ea42c2393a0679f40846de", size = 29040 }, - { url = "https://files.pythonhosted.org/packages/9e/2f/2b118b5f3c8fe955efd466398d519ffeb2e02e2957ae61953f8f4df0c798/pyobjc_framework_CoreMedia-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c6eaf48f202becab10679e3b5dd62607ddec2739495db45882524592cabf3997", size = 29052 }, + { url = "https://files.pythonhosted.org/packages/5a/b2/3f1481b5ca972c0864b97083fd617c91e4b47c8182bfa899c10266c44d3f/pyobjc_framework_CoreMedia-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:62f4c0307a789bf13eaaac0674aadb9067535bbcb02c511a0cf2a3520bb3a839", size = 28760 }, + { url = "https://files.pythonhosted.org/packages/9c/52/c112d26aac4f90e849caedd652a70d7eda8c9aaca3a57fd8382f4e784cb7/pyobjc_framework_CoreMedia-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b2af51e1169824bec72c1f814a633ca616e93e1489f35ecdd006a16403f70d97", size = 28560 }, ] [[package]] name = "pyobjc-framework-coremediaio" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/08/67/1c22ff55baf5018d3ca4979f8c319e055ecff8b51ea91d53b8654503cc35/pyobjc_framework_coremediaio-10.3.1.tar.gz", hash = "sha256:5da3ed78475223dd3400fdb55fb97d543a248086f5cf8b77bf4aceac3df1513c", size = 88655 } +sdist = { url = "https://files.pythonhosted.org/packages/1a/ec/f32539575a5a2cf24c2328f49317b07aff2aa993abbaf44777bcd8e271f1/pyobjc_framework_coremediaio-10.3.2.tar.gz", hash = "sha256:a648ff9ecb49c37353f912801f86d3985df74fd27e880d22c4eb3d7bc8a66db2", size = 88994 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/0b/80fcc75ecd8afb2f3966146985716e165321bbbcf00bdce2119feaf3be9e/pyobjc_framework_CoreMediaIO-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:07e19e89489a372ebea9e8a5cfaf1ec03fd570e65ed3fa2dfa44719d1e337a36", size = 17233 }, - { url = "https://files.pythonhosted.org/packages/92/5d/14312b4d3f8108124bdf69d2f5aa49d73a9c537e2ae44da698c618e66ab9/pyobjc_framework_CoreMediaIO-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c3bc3d8f3648b6a4126983119d9fc4e21d2c7ec06beb284c57039ca1033ceb03", size = 17284 }, - { url = "https://files.pythonhosted.org/packages/82/54/078fadaa51f063d94b30eff55f20aa3b0a0fa2b21934bb37ac461941ef27/pyobjc_framework_CoreMediaIO-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b158612a62cabd7f61c1f2a4d08d4cb4682e1b2ba140a4d09ca88b1ae3014443", size = 13371 }, - { url = "https://files.pythonhosted.org/packages/d8/2a/cad9e2d9a234c805cf11d5f5b62cb7ad5e30ae0ba5814ddfced8ec3527b4/pyobjc_framework_CoreMediaIO-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b3e9a9813bf5331bd0981e0a66ff380c5c927854f644e5cb62a2beaabd73b15f", size = 17146 }, + { url = "https://files.pythonhosted.org/packages/45/f5/e205fd06ae5dc11444f4b3c674fa36b3102345a43c8f1436666cbb531115/pyobjc_framework_CoreMediaIO-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:5d5a8fa4d45e6704cf7281cca4d8d57db1cfd4b3ee6885acfd6ead630babb4f8", size = 17040 }, + { url = "https://files.pythonhosted.org/packages/86/9a/73e1ff679818715e2a08026caadf193224f188de84abd288b8fcc8eb6681/pyobjc_framework_CoreMediaIO-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ff39bf38a1bae412f0ed4e0008e14ac8fa81555a715f8492012fbdb1a013c471", size = 16997 }, + { url = "https://files.pythonhosted.org/packages/d5/53/97606817724ab66e0a4ab9624807aabe15d42b9b1967fb202f3a5089c289/pyobjc_framework_CoreMediaIO-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7a6fba175643e094bf38536cc4d058853b9109aa0527391454ee663ed3da7652", size = 13236 }, + { url = "https://files.pythonhosted.org/packages/64/31/57aa82a7a098e61a37c1d12ffad7f27224670df11105eaa9822f169079c3/pyobjc_framework_CoreMediaIO-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:0b2c77f4f08daacdc4ca3e89cd97fb18840a039d5de3246f8b1685c568c9b667", size = 16970 }, ] [[package]] name = "pyobjc-framework-coremidi" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/9f/38d8668499e0c590e51b3f3091d972e09a1f45e4efba94373c22d23d2b88/pyobjc_framework_coremidi-10.3.1.tar.gz", hash = "sha256:818454b56edae082a3a4b4366a7e93b8bb54856be01ee21bb8527a22a4732efc", size = 78441 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/27/8b01da065b8fc166f91dcae96e38ed4c723743e714aba8e8c51f2f26330e/pyobjc_framework_coremidi-10.3.2.tar.gz", hash = "sha256:53f37f70abeaf67d90d03997517cb5085fcb29d41aa809f3c2b0809571f5258f", size = 78823 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/67/9800fbbfec104699c2d03adde3fa26ec5c60505f2005abb9fc37c841096a/pyobjc_framework_CoreMIDI-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:00a6869c2365b90cdf6e1ed0bbde6d87fe4daaa40ed243ee810e3cc3945f185a", size = 17489 }, - { url = "https://files.pythonhosted.org/packages/3c/0d/d8adf38ed03bf331934635dc1dc6e9c636b08df5bccdaa55db6d1e85a789/pyobjc_framework_CoreMIDI-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:92d04962f7ea63be03127880d4659f718f5b44b6a57a0e619a96d9def619bddb", size = 17870 }, - { url = "https://files.pythonhosted.org/packages/1f/30/1ff3b49c3c117d30fedd85edf02b4c502a250f0717efb8caa0c04f81a333/pyobjc_framework_CoreMIDI-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1be5f2d3c0c7c23817ad49a25d8cf8c84b9e420bd5fedc0065ec1322f5d5f2ab", size = 12784 }, - { url = "https://files.pythonhosted.org/packages/5d/d1/fc3226b125b0c7359539c508e939ad28f67acd487c628b3828c80a65720b/pyobjc_framework_CoreMIDI-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:bbe2bfb537e8adcca703a2c76b21ca1741d32691205af00a5ec67c025ee5d8e1", size = 17920 }, + { url = "https://files.pythonhosted.org/packages/4c/26/441fd1cf939be8ff18471dcef3cabfc052c40d611f62362b631147b49610/pyobjc_framework_CoreMIDI-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e9edf7fd3bbc1afb19dd939d4b057a118a0de8c10f688903167edb6d8a4dedc5", size = 17366 }, + { url = "https://files.pythonhosted.org/packages/83/bc/fc4f22ea464e3d4e7fa3ec775059e443240a1adb72cb44a8332463e50a8b/pyobjc_framework_CoreMIDI-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b8bf65e16c8cefcfdf84ee0c77af274fcc17daf9f28a469db20c1ae317f7cd5a", size = 17360 }, + { url = "https://files.pythonhosted.org/packages/e0/ce/1a6c02d15df8ef984c0ffe0816dbe0f9ab28cef77367643f93b25008abcd/pyobjc_framework_CoreMIDI-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c8aa31a28774e23ad471de1eb5a0aab4098ef899b9fbacc892de8dfddf1e2edd", size = 12564 }, + { url = "https://files.pythonhosted.org/packages/d2/f6/ae2c59234be316041f5f8f67791f249ffa9e0929700840967a9b7db7779e/pyobjc_framework_CoreMIDI-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:048ed8188d62fbaae47426b4240a9187b7785e175cc4d489699a4b9290c67cb9", size = 17851 }, ] [[package]] name = "pyobjc-framework-coreml" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/a2/08a73df17f344700f48444e3000ebdf0ca78765bf0816387de7392380255/pyobjc_framework_coreml-10.3.1.tar.gz", hash = "sha256:6b7091142cfaafee76f1a804329e7a4e3aeca921eea8644e9ceba4cc2751f705", size = 66750 } +sdist = { url = "https://files.pythonhosted.org/packages/be/7c/476d4459ce4d44d622365f721620f56fff7cebf50ade3560ae452244adaf/pyobjc_framework_coreml-10.3.2.tar.gz", hash = "sha256:f2e6eabe41fa34e964b707ba7a1269d5e049d5a7ac5574f35c4faa0647f385ba", size = 67101 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/93/fd46439a3d974e4c9bde868b056410abfcb897d30ddb58a0ebf31116fa5d/pyobjc_framework_CoreML-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c1fdcc0487807afa9cd0f88f25697e0e2e093d0219e8e1aa42aa3674dd78c2cb", size = 11647 }, - { url = "https://files.pythonhosted.org/packages/d5/7d/b875857b4116e68ecead251e53ef9f456650d4e740903e73775bea459bd0/pyobjc_framework_CoreML-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:21c87e84c807b5dbe61e0f016d9aefa32d3212f175cc4b976b5c08770be7a58c", size = 11707 }, - { url = "https://files.pythonhosted.org/packages/06/97/98fd2df3eef998bc47af5b298b3b9e8040ee410b7ead298cd1da31a700b5/pyobjc_framework_CoreML-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:a0877aed5d4cdbb63d1246cd5384c09d78a0667e83c435a1257d10017c11c1a4", size = 9158 }, - { url = "https://files.pythonhosted.org/packages/d8/2e/75833ebb0b3037c32836d8a713bf8113cfb9420ee1c882e60177b5e892eb/pyobjc_framework_CoreML-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4bd3f1acfb3245727727b71cbcf7d21a33d7e00fa488e41ad01527764b969b92", size = 11585 }, + { url = "https://files.pythonhosted.org/packages/84/17/ca68b24e0263d974a169f83cd597cc130e92741c0fbdca3c93e123ea2080/pyobjc_framework_CoreML-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:feea183b192cc806485b7713f135e544e7fa7ece3cea0e8cde92db4ae19374ab", size = 11553 }, + { url = "https://files.pythonhosted.org/packages/66/4e/a939d232626b475f33727063bbcd5fda1f11a25e45c58ca52ff0005b8ece/pyobjc_framework_CoreML-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:15c89f9f37e46924357eb1c9859dfe4802a409263bb502b6a997046548097983", size = 11514 }, + { url = "https://files.pythonhosted.org/packages/02/9d/4937bce9b3dff47a1bd822dbd2582aad6bf27ee6b7759d4120fa908327dc/pyobjc_framework_CoreML-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:a975f2667d7e5ad81091db5a89a27c0e091f20ac4be8de309b3b20d177d83637", size = 9006 }, + { url = "https://files.pythonhosted.org/packages/8b/38/37ab623af9825bc5fb106feea54f46ebb06ca9c4f0c9bc73bdac949ac88c/pyobjc_framework_CoreML-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:559967fa7dd82e75cf84ae53b176ea6da8d7705e589213aea9fe10ac0ce1d100", size = 11491 }, ] [[package]] name = "pyobjc-framework-coremotion" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6c/77/cef3cee6010e926754cc80faa455b5a7530d740f9b5a83a94fd4bd34484a/pyobjc_framework_coremotion-10.3.1.tar.gz", hash = "sha256:6ba61ffd360473b018702b9ae025eb16b8aaa45c6e533121522f26eef93a9f71", size = 54459 } +sdist = { url = "https://files.pythonhosted.org/packages/4e/f8/829dbf6ac3caad858cd68ba6a12f53ee3eeaef15c4107b34bcc0a1886f98/pyobjc_framework_coremotion-10.3.2.tar.gz", hash = "sha256:7bf2b3ae72e665035d57875a1c179fa4bef89021403ee44ddffacea04e9eb70d", size = 54848 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/7a/c208726685a2bae7edd597d6209f275d5052e3244ebed3d8c0f9b2e3de5a/pyobjc_framework_CoreMotion-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a003478eeb520c7f28be4d9dc8f9e02df6ffa8921d46c8879e2b298c9fbc6926", size = 9805 }, - { url = "https://files.pythonhosted.org/packages/d3/2c/dda7dbf8ffd5ae61986b2201ded7c600da7d6e3edab967065317a5b233e1/pyobjc_framework_CoreMotion-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:63c8f831ad522212627f99ae8d6f34161628230afd544203646e7d66596d6437", size = 9835 }, + { url = "https://files.pythonhosted.org/packages/6d/09/1e60d54ec7cbd89896a67d6aa0d3a6faf31912d03d2b232e5ee95a631d2d/pyobjc_framework_CoreMotion-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1425400fcddf426ff9269368c0256a67d81e4be86c012f2ec12810737d369044", size = 9672 }, + { url = "https://files.pythonhosted.org/packages/20/a2/f2fd58d8816ab0d955fab476e5abd1930ce25fcbb3806c7848621bbd678d/pyobjc_framework_CoreMotion-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bbe34b09dcd78f9f1e38e83252ab61329f5ee478c719c1f07d791693af39bc6b", size = 9694 }, ] [[package]] name = "pyobjc-framework-coreservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-fsevents" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/18/c6/9214c4e64a22e92233f67f6518dc60269b30b317a169861f8cb8150adaef/pyobjc_framework_coreservices-10.3.1.tar.gz", hash = "sha256:2e46d008ee4ff586420175888c45f8eb0f002ed5b840c8f7893c560af01b2d72", size = 859909 } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d2/2f5c63ad1b4f7c7c45c4da45cbeb3b13328d21794f5cec2b2018e42c177f/pyobjc_framework_coreservices-10.3.2.tar.gz", hash = "sha256:ee3cf8379839efe4300bbd33dca204ebe873e2671160fff856569976d45c68a8", size = 860352 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/a5/63364d45385f91a8026130d32b64e8b5a392865e4bde54a6acb7a7124a2e/pyobjc_framework_CoreServices-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:58d5708ee0a2ad7eea180864fe68123a2464b987ea089d0646ce69e2002500b0", size = 29708 }, - { url = "https://files.pythonhosted.org/packages/81/d8/d657d510b9655ab5a6b8ab4b45727f7164288a57dd20ced9f5a4ee5a98a9/pyobjc_framework_CoreServices-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9d43b77fa11af139ba39d94921e695cf804226737f68167f8bdb8f1c449c932e", size = 29825 }, - { url = "https://files.pythonhosted.org/packages/f5/e3/a24517a8a4b6cd85105aca9f57c7cbf3ffe598f377edd88dcf1c4928e80e/pyobjc_framework_CoreServices-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e6c7b6bb821cc7fb4f04c08560d460783a7fa08093f5e153241bf10296a16cb4", size = 28293 }, - { url = "https://files.pythonhosted.org/packages/82/41/a14f936b823d615bf799341adebed81b26bd641a0962e313f008bf23e0d6/pyobjc_framework_CoreServices-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ccb64113ee612a05308ab8ed57ec224e22445d5a125bec11e24c35d58d1f77e4", size = 29751 }, + { url = "https://files.pythonhosted.org/packages/6e/e9/b36b9e111789b9bcf4ccc5ffa9fe87ba7a2e94a3da84d8cfc65753e4f379/pyobjc_framework_CoreServices-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4512811b1c2737451b76969237ef5b8d7fd0e6b588652d50a1b6dc9fe3fa6226", size = 29714 }, + { url = "https://files.pythonhosted.org/packages/85/87/6d96ee4520d27bc3776f7f8d4ab188a57b1031b3eb6269e1e8b7b1ef9938/pyobjc_framework_CoreServices-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b73da63630903cb0d64138a933e92130ff3ad36770dd9da7b23047a3f362cc9f", size = 29708 }, + { url = "https://files.pythonhosted.org/packages/16/74/9b40d27fb07ba6cf8ce389421d59bc5974bcbd5b47c2ec94e6071730ca40/pyobjc_framework_CoreServices-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bbc1ac3fa0076c61221196346a715da32b0ff9c3f20cc5ebf59ba78688a40ad5", size = 28164 }, + { url = "https://files.pythonhosted.org/packages/bd/a4/d28dff168700859df15e4dda7ac13f08185953e4c1d905bc20ba67b4b333/pyobjc_framework_CoreServices-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:40522a64a07276b8b577a71013f6c9272f35ebda3194d805d00f959c2ad26d83", size = 29762 }, ] [[package]] name = "pyobjc-framework-corespotlight" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9f/fa/e0ef8d255265a2aaa575244df3d629c46a4eda6c64a210a9faf62fd70772/pyobjc_framework_corespotlight-10.3.1.tar.gz", hash = "sha256:6b8ad243a65943d631434a9ff4696458cdd3d0cb631cfeb501a967fe29445c30", size = 69476 } +sdist = { url = "https://files.pythonhosted.org/packages/3d/a5/d34b1be8a07cb0940792b964407a8744b4081204200349557a0dba5b93dc/pyobjc_framework_corespotlight-10.3.2.tar.gz", hash = "sha256:0ae1656bc3e8ece5278d690d1155b025271564fcdfe33f5b780a15f4a10c3e03", size = 69762 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/80/d84bc74e1feca7d54ff3fe18d28abe2304a0eb01eb1e6df540d176fdc51e/pyobjc_framework_CoreSpotlight-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4aa9b01b8d722ba9e803ec4a2329ee8da0bdecb9a004a668b793b957544a6d81", size = 9615 }, - { url = "https://files.pythonhosted.org/packages/b2/b5/706eea1e71054177e2e7cd3a48eb40471a8b48b7199453b05a0239eb388f/pyobjc_framework_CoreSpotlight-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9684f735fd3d3e8fae447e90a2c246bf6a8d4ca37f619174208d65daa86d9ca0", size = 9675 }, - { url = "https://files.pythonhosted.org/packages/74/5a/14c0f369d8adbbcc47f9c86a7fcaa0c7f603cf6e29f6c91f85b2e206c42d/pyobjc_framework_CoreSpotlight-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:31b2a1309c747bb6e4d1ddc8368885af2948af55441fbf9817ebac193c1b815b", size = 7327 }, - { url = "https://files.pythonhosted.org/packages/cb/64/43e4d5505e16f5570e777e19ea9b6045cba45de8c9d2849aa003462a69c7/pyobjc_framework_CoreSpotlight-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ba5a20e860af7246da67bb00db15d8bd5c5110b8a12a44568bd68030f51db478", size = 10091 }, + { url = "https://files.pythonhosted.org/packages/7f/00/81f26161aa7021f684d2ba474e766585f6a5edfe417a9f9e75ada6eae69b/pyobjc_framework_CoreSpotlight-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:da9d240831d0945214b265ebde82ee066ae187034275096591e26c9e243fa81b", size = 9544 }, + { url = "https://files.pythonhosted.org/packages/64/ea/30516e4924907790db75140e9635230f12345799735b0535d5552a5b53f1/pyobjc_framework_CoreSpotlight-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:0d5951b18ebccee0bc7a9498790378ecbc8a5bb8ec7f9b1584b0244fd4508f90", size = 9516 }, + { url = "https://files.pythonhosted.org/packages/09/25/de9c5d3445d8e2a686ed2c4b0195f55f67971451de3ac3891c6cb4954a97/pyobjc_framework_CoreSpotlight-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cbd1897afd79f57afa5b4553c4a6cb7cb186e17f490ab07c5467af4950b5e3f0", size = 7218 }, + { url = "https://files.pythonhosted.org/packages/bf/1b/aee27e034c965059824287c8c638d159e5782c1e57485717728ed94edf91/pyobjc_framework_CoreSpotlight-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:0ca8e5d0ca7e3ecf48698a2edd0b7bebe8dfda4eb34aab39813d37e97c67fb42", size = 10027 }, ] [[package]] name = "pyobjc-framework-coretext" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/9f/d363cb1548808f538d7ae267a9fcb999dfb5693056fdaa5bc93de089cfef/pyobjc_framework_coretext-10.3.1.tar.gz", hash = "sha256:b8fa2d5078ed774431ae64ba886156e319aec0b8c6cc23dabfd86778265b416f", size = 233428 } +sdist = { url = "https://files.pythonhosted.org/packages/24/8e/bb442edfeeada13d2c96796bd36e3dcc0b91ac5c1a6774c21c12b7498770/pyobjc_framework_coretext-10.3.2.tar.gz", hash = "sha256:b1184146c628ba59c21c59eaa8e12256118daf8823deb7fb12013ecdfbc7f578", size = 233780 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/f6/ccc934adf50fa77c7d7d8bdb13ede25d1a0a62c67fec571ae2bd8557c41d/pyobjc_framework_CoreText-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:834142a14235bd80edaef8d3a28d1e203ed3c988810a9b78005df7c561390288", size = 30266 }, - { url = "https://files.pythonhosted.org/packages/66/8e/4341253c550d6cf4da1a8c33d8d310b6ddbbaaea09eca26ea5eaff176e4b/pyobjc_framework_CoreText-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ae6c09d29eeaf30a67aa70e08a465b1f1e47d12e22b3a34ae8bc8fdb7e2e7342", size = 30404 }, + { url = "https://files.pythonhosted.org/packages/72/33/66f7f410ae46bf0200bf8af8dbb68fe95a6ea9c2cc5f6696f8aef4837bc6/pyobjc_framework_CoreText-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c3b3cdf462442294319472bdacb013ce57f63f99325fa885b4b4a54a25bce201", size = 30084 }, + { url = "https://files.pythonhosted.org/packages/50/b6/44e23a558a777e25f98bc54ecd2a7a0febcec67e1ebe9b4ba90c3ddd0701/pyobjc_framework_CoreText-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6be644434ac69969cbf3cd4638ab0dfa5485da399d0e79e52b006658346d3881", size = 30226 }, ] [[package]] name = "pyobjc-framework-corewlan" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9f/b0/6e708d931e85db91de439c080d3af77422d7935b7527ce81888f8ff6ed8b/pyobjc_framework_corewlan-10.3.1.tar.gz", hash = "sha256:d340d976b5d072b917c6d3de130cb4e7a944ee0fdf4e1335b2aa6b1d4d6b4e14", size = 57781 } +sdist = { url = "https://files.pythonhosted.org/packages/c5/4d/132d46a120db80d9bc30ab24f7dae22f67a484eaaef47c0bb7f8ee9ed2ee/pyobjc_framework_corewlan-10.3.2.tar.gz", hash = "sha256:cb166e835e92332d34597c42d54886baf329363559c7bb017f15ce68a685508c", size = 58109 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/a3/4afc5aaae025cd2367ecf267a9dbe68c5e62290c70046063658972f5699b/pyobjc_framework_CoreWLAN-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:0b9b9a6f54c11b6adcb04eb07686c8a8372140619876073d6355498da7ecd074", size = 10060 }, - { url = "https://files.pythonhosted.org/packages/9f/fa/8be58eaab2a6c3159f3a048394ee9d85910e03ebb3e9e03630cc76baf1f0/pyobjc_framework_CoreWLAN-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:8d68dabd2fdb74e5263f1e05fa039621c197907347e045cd672a54b3ac537140", size = 10110 }, - { url = "https://files.pythonhosted.org/packages/4a/83/4940889c281457873c25499e3c775d2899df2142ccd787fc02c678916ab1/pyobjc_framework_CoreWLAN-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:995260e02f858ffa0781ec0d632e60e0567c45fd551102d36fe67a351f81697e", size = 8174 }, - { url = "https://files.pythonhosted.org/packages/1f/5d/5740991885dc7bffff526148d6b8ea77dadba49ce6c1d42a6d14013006ef/pyobjc_framework_CoreWLAN-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:e7120d4f7a73cfc283ca499165e8aaf2628bfb82773917e144c293447cabbdba", size = 10283 }, + { url = "https://files.pythonhosted.org/packages/5b/de/729fb392e0547f98f7c0fd60b2509a2a2722940c790a79d3e494c1733b4a/pyobjc_framework_CoreWLAN-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:5225a2db40dbc1ca701a9d8b30155c929c504005ad0abd296945f89ccd2c1d1f", size = 10014 }, + { url = "https://files.pythonhosted.org/packages/15/65/5368ca4f45f6d9dbb35b5cf0cfb0368d8ade66643572bcf2fc2699d69fe9/pyobjc_framework_CoreWLAN-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4c7ba480405584d15ea2e9fad158e58e5bf7a37c8c38d875ff14949c842699d7", size = 9988 }, + { url = "https://files.pythonhosted.org/packages/9f/e5/78c39ccff7bce3fd3ba226c62d8d25754fc85c6e9583dd1187bf3b6e9868/pyobjc_framework_CoreWLAN-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7d9b4ca65c7ee9f5954bc1fbc4c81b7724c5ac7620b962b413bfe6288fc862e9", size = 8090 }, + { url = "https://files.pythonhosted.org/packages/82/a6/4192ca2244d9042b0730c814bf92fd00a6b77f6f69b6a01acf72cec3ad3b/pyobjc_framework_CoreWLAN-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d81150eaea01dac71dea9be0e748ed7faf79ee6b8bd2ddd44692cf01f6953ba8", size = 10259 }, ] [[package]] name = "pyobjc-framework-cryptotokenkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/07/15/49981d93f8402c655cbda9181a55e0f5879715d3f6c344070ba41d2511f1/pyobjc_framework_cryptotokenkit-10.3.1.tar.gz", hash = "sha256:ef1c4a3b9bc5429eceda59724279428e1f8740df2c5a511d061b244113b6fd97", size = 48548 } +sdist = { url = "https://files.pythonhosted.org/packages/ad/72/e771d7856e50da7650618fe46452b5fbd3b0bd7e2827356776d467aa2276/pyobjc_framework_cryptotokenkit-10.3.2.tar.gz", hash = "sha256:996a81a96af6928c5157f8a6f2d2bba8fe68c3948119f2d59918e00fc46f48d0", size = 48947 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/8c/6d12957ca129241a992932dd6387bd188f9c0523370b1a286ae8f7093617/pyobjc_framework_CryptoTokenKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:6c88948bc8d30cd125ae29ffe551315e08c0fb49654d4f36ba4b3f0fe2f85259", size = 13332 }, - { url = "https://files.pythonhosted.org/packages/87/b4/afaf21d0d993c98f293d72c1985ff687b4e87db4110f31599d5d4c1181fd/pyobjc_framework_CryptoTokenKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf0735d5d8e3ff61650deaa9670df62032dc218b865f21cd6b36b0d4c00b88ae", size = 13388 }, - { url = "https://files.pythonhosted.org/packages/0f/0e/457eae08f55e50ac281f87859ddca75a31bddff25181145ab653e65afa98/pyobjc_framework_CryptoTokenKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bd58e48912a9b044c0203e39938b2108cab9b3a4903134ebb1ef610b45570802", size = 9664 }, - { url = "https://files.pythonhosted.org/packages/01/c9/eb29a4611eeb0b611671a392f7774d17cfa5ffd8c59440831cafd54d119c/pyobjc_framework_CryptoTokenKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b53fdc79a095d327dff7e68e2545b0825437520f105b1341e5f638e8e1afb490", size = 13241 }, + { url = "https://files.pythonhosted.org/packages/3a/00/df5ed222234dacae6d809b0f26bc3494802c97deabd8b3ffeaa6ef392f8c/pyobjc_framework_CryptoTokenKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:31bb0480a87da217208b0e77a2461ac398d5f407a86507820e44b94c16f48d81", size = 13101 }, + { url = "https://files.pythonhosted.org/packages/06/9f/843d972b14980691b619dfddcc574b4819385bba814da444203798d03098/pyobjc_framework_CryptoTokenKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2053411961b5bb37c25fb431dc6618b304e3b2d62adb6296ac77fc538d3bd0da", size = 13084 }, + { url = "https://files.pythonhosted.org/packages/81/f8/655cfd72998698eb7d0656aac9607e394fe947e7d01343a8ba4e4cf66d36/pyobjc_framework_CryptoTokenKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:d6cd5f5843d86cc16ddbf90849798eaaf8e557d1d8703101f68204f85c52f917", size = 9510 }, + { url = "https://files.pythonhosted.org/packages/b9/d0/8f27f40a735a6305ba26f33fa5c68a6a8aa52a0640070a1bce3b4dbee5c8/pyobjc_framework_CryptoTokenKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:487b0aa95f77c372ce32f60ceed4ab2a8c9ae316f72ce67e4b7b7f3bb083e8ed", size = 13043 }, ] [[package]] name = "pyobjc-framework-datadetection" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/9b/8b3a633ef4a215095bf1e008f4921bb9647a61a1f5b24e8ab94e89473df9/pyobjc_framework_datadetection-10.3.1.tar.gz", hash = "sha256:5394350cd7e7f40562dc0777f26dd9ddf4a595d20cb6e3cd601938e9490c963e", size = 12682 } +sdist = { url = "https://files.pythonhosted.org/packages/49/1b/ce373fd11d2696f5dc25462d5e1f91afca6ee322d6576fb4a7131e077358/pyobjc_framework_datadetection-10.3.2.tar.gz", hash = "sha256:4e68c6f53042e2dd90a047d6a443227bf481aa9e3cf7aad1b2f164ff1b19dd0f", size = 13002 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/1e/bc1dde224086ad91e2eedcebdb698f3d9a3c81b4b7da3b0548bd9c6a42ef/pyobjc_framework_DataDetection-10.3.1-py2.py3-none-any.whl", hash = "sha256:618ea90267fd4b83d09b557b67342ad5f3ac579090020e081dca6c664f1ae598", size = 3106 }, + { url = "https://files.pythonhosted.org/packages/f6/d1/a5494de6c8d9751c333422f518e7fdd6b3f117d81e654d7072582bb401cb/pyobjc_framework_DataDetection-10.3.2-py2.py3-none-any.whl", hash = "sha256:f0fdf9d10fd45715f8e932d9dc508d6d63cd96a6e4b13ad92322dd21b79c882b", size = 3107 }, + { url = "https://files.pythonhosted.org/packages/56/0a/64a0516ec0f46ffa50e81070e541f1ced074d8f70dae2323ddb8ace4b572/pyobjc_framework_DataDetection-10.3.2-py3-none-any.whl", hash = "sha256:3d528510722b62851b9d53fe16fe9cdc1646433a33b07a64b5fafc29397509ef", size = 3104 }, ] [[package]] name = "pyobjc-framework-devicecheck" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/23/40/51f5e655f4d003227df3077151d20e8490e17e28043e0c4152cec9fcdfac/pyobjc_framework_devicecheck-10.3.1.tar.gz", hash = "sha256:7f6f95c84dc3d1f62aa07061f79b47d19463390d977e5afb444ef9fdd9177a9d", size = 13134 } +sdist = { url = "https://files.pythonhosted.org/packages/23/b0/afcc4f467fc26674c01570ee5623a5b1ba904181ba71c710b646880c1fb9/pyobjc_framework_devicecheck-10.3.2.tar.gz", hash = "sha256:028fbec7a0efad0a5952063d9382017f0d860d31d768db2097e71754b93c9922", size = 13455 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/2b/9f22fc10b09daa6283ee5e9273aa6f25c61a1aee6afc44ce55fd353dfed0/pyobjc_framework_DeviceCheck-10.3.1-py2.py3-none-any.whl", hash = "sha256:9a3b291a2583bac2b65ff902c4b7872c1068736e249765906f530ae5a6eb8085", size = 3293 }, + { url = "https://files.pythonhosted.org/packages/be/6a/8eaf7ac056d74490dfb010ef4f6dc43e776a7e33728baa4fa9e9b5a8b0fc/pyobjc_framework_DeviceCheck-10.3.2-py2.py3-none-any.whl", hash = "sha256:d496ee7045ee92977cdc16625cf7cb871f8f798bf8253fe4fdffbd3cd58da0f5", size = 3296 }, + { url = "https://files.pythonhosted.org/packages/18/bf/566694aafa303c6772e4cd034830b18202437572355b1ac1385249f48ebe/pyobjc_framework_DeviceCheck-10.3.2-py3-none-any.whl", hash = "sha256:6bf642ce5c88b556dd743ad0f39db32ddd23c9ac9ff830805b8b3ca831a5a4de", size = 3294 }, ] [[package]] name = "pyobjc-framework-dictionaryservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-coreservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/ee/ecf4fc40acfdc71a42f6efb7de6cd12b43ee73b3a2397872145584157aef/pyobjc_framework_dictionaryservices-10.3.1.tar.gz", hash = "sha256:c9fb8ed1b92f63c6f568bcdbadf628baab1cb8bb4cd01dbd65424d59c236a552", size = 10131 } +sdist = { url = "https://files.pythonhosted.org/packages/9b/4f/f4669fc0429415ea3f01b01ffb4a3ed41c91cae4fcdcc453874b7d2c16de/pyobjc_framework_dictionaryservices-10.3.2.tar.gz", hash = "sha256:d74effe983246e2d8ea53aba0ea47cdfe5d3687d110d13e235279c92cb9aeaf5", size = 10430 } wheels = [ - { url = "https://files.pythonhosted.org/packages/57/2c/ded526049d60a7863bc08244454a4ae02250b15d2c07c16ad695bb4a71f6/pyobjc_framework_DictionaryServices-10.3.1-py2.py3-none-any.whl", hash = "sha256:e40933bc96764450dff16cd8ca8080ec83157a93ed43574441848ea52f24918d", size = 3505 }, + { url = "https://files.pythonhosted.org/packages/45/dd/7f167c845eb58ce4069872d047c86e56a3afed9112db4baa2e10b3de275b/pyobjc_framework_DictionaryServices-10.3.2-py2.py3-none-any.whl", hash = "sha256:cb04610493fd54dd6647766b9f569d09c79626faf4949e892708c725fb0431ef", size = 3506 }, + { url = "https://files.pythonhosted.org/packages/3a/2e/2ae88bccd2a8e9fe804ae79d89c44de3b1d4d6191f8845eb42704783e7b4/pyobjc_framework_DictionaryServices-10.3.2-py3-none-any.whl", hash = "sha256:f5da9f55cb8c6bbf2eeeb9053cab9271f189ce28b1d09feb7b194197f1215d96", size = 3501 }, ] [[package]] name = "pyobjc-framework-discrecording" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/0a/07b7871e9bbfb59676be857046c8285549edaf285e8c1508b67db62ddf9c/pyobjc_framework_discrecording-10.3.1.tar.gz", hash = "sha256:47865c9a0d24366b6ede01d326d57404346c3d01e249f417bd2b0b3de00d6c54", size = 101624 } +sdist = { url = "https://files.pythonhosted.org/packages/2f/e8/546a077194be0e9f8b99dfd62923e7cf29eaaed97ec355533861c00d6813/pyobjc_framework_discrecording-10.3.2.tar.gz", hash = "sha256:996df211530867edbd82dac9b82209da8686f6814c7ee58411131f965f5fea79", size = 101951 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/7c/9754edfb2144025245309e7433d55feb736ddf03855b9c9f974191544657/pyobjc_framework_DiscRecording-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:99ee7b1762c7e2a4e0b74c36416f4095695ea33505c7de03875a4f46a5729af7", size = 14642 }, - { url = "https://files.pythonhosted.org/packages/c6/bb/841c9452714e028486bd11f189038e91b72e0b9490307e59e4061dcd9574/pyobjc_framework_DiscRecording-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c4233f2649e34be2dd158752f0f0180c7db4ee705cc14aa62bc03c1f77318ca3", size = 14704 }, - { url = "https://files.pythonhosted.org/packages/ea/4a/0997edb3613da5584aab28cea828efe742558de8b09cca5dce88e4307aad/pyobjc_framework_DiscRecording-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54016cd30b81f1f065d3a4d90b008c1bcfa77891cc79c68d72dff65e9d81e083", size = 12517 }, - { url = "https://files.pythonhosted.org/packages/d4/09/65703b2911be89885d39129309af08c70f1b83832a23346afbae4f84e7e0/pyobjc_framework_DiscRecording-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:da84170af530cda7b1f32023d5e8b98b62914c573c6ef571e562473d0b94fe6f", size = 14979 }, + { url = "https://files.pythonhosted.org/packages/5e/65/d4c1089fe5cfa87806f07a107a268fcc36f141eff9a4dabaad3e14d34537/pyobjc_framework_DiscRecording-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:09481087c17289ed45c53ebde9955090eddcbd495f713412bd9d7fd7c9f04752", size = 14593 }, + { url = "https://files.pythonhosted.org/packages/ea/84/2a2618121c8c90600b0eca123ecb4020209eae2fec3158422014db9545ce/pyobjc_framework_DiscRecording-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e08fac1518de20bf7617bc513f3a1113a29033d8f6cb95ef5ebfc81446d8f9b3", size = 14564 }, + { url = "https://files.pythonhosted.org/packages/fe/30/96a7a219b40a6345db9fa287663cb934b5d600af3db65bbf902f23b6a885/pyobjc_framework_DiscRecording-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:497c92fea3fc861c0e8ba25910bc87a88829a016df9574871a148a1fb0ff8929", size = 12432 }, + { url = "https://files.pythonhosted.org/packages/ae/7b/265556d1b053e9499844bf981e4e02187c8ac35c1408468d7d65a3f5e9fa/pyobjc_framework_DiscRecording-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:f20acc95c57549802f822ef56c21d66d277918b47c6c2796b8049b38094abf05", size = 14929 }, ] [[package]] name = "pyobjc-framework-discrecordingui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-discrecording" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/5e/12669a09410b9707bd27ba93274cd9e817acc6d43ff358299974a52fa624/pyobjc_framework_discrecordingui-10.3.1.tar.gz", hash = "sha256:4b9c804a97c89001feddb58106cdc3e099e241314f7c4de062842d27b1318b68", size = 18181 } +sdist = { url = "https://files.pythonhosted.org/packages/3a/cd/c44a59e6b6e893ef6117e3621f6d5faec326a98a6ebcaf70047a9f54a584/pyobjc_framework_discrecordingui-10.3.2.tar.gz", hash = "sha256:9cf1f1256c1c6dd4fc7debaff7e415949b43e86dd77be5ddc644822566cb3423", size = 18521 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/78/57528e38d638bfb618f3d16b684b85a74c24e9443e3e986cc5dc1dc3ffda/pyobjc_framework_DiscRecordingUI-10.3.1-py2.py3-none-any.whl", hash = "sha256:cb25c70117a5c5eeb4ef74a96da48e2da171f01b7e92d1b7bbd7808068e8960c", size = 4344 }, + { url = "https://files.pythonhosted.org/packages/12/de/9233551472133f4a29de4169d48cbfe1d95c458dc4a0a92fe3d879b8dee8/pyobjc_framework_DiscRecordingUI-10.3.2-py2.py3-none-any.whl", hash = "sha256:4622c47f89cd73e8a9c9ff324c50133a82a596d6f71f69c2fb99a9168b632f50", size = 4346 }, + { url = "https://files.pythonhosted.org/packages/3d/05/cfe3577ad1fc27f3eab10117f62251159315b64dbe530a03eda4e8c6f7ca/pyobjc_framework_DiscRecordingUI-10.3.2-py3-none-any.whl", hash = "sha256:370b1a4ef613401047c479f3d5121dbc1ee12de93585cf1784672edc4239b927", size = 4342 }, ] [[package]] name = "pyobjc-framework-diskarbitration" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/e8/9f1929c51bcfd78bde9763cc08200eb498528534664701730077beea31d3/pyobjc_framework_diskarbitration-10.3.1.tar.gz", hash = "sha256:0776318cb56f8e095066a880812c4fc5db2071687846e23a000a947a079f6c6c", size = 18667 } +sdist = { url = "https://files.pythonhosted.org/packages/2d/c3/fbb59379378f679473375d7a3532986c7fc06f192ce0855d0a6e02de8dec/pyobjc_framework_diskarbitration-10.3.2.tar.gz", hash = "sha256:5e3a4a35b209bd9b983ae6248275784f913318d689b368f7ef584c87b7157336", size = 19001 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/e8/9670d42e001ad2577b7526fa1cb400328c4b3851e0b7171875fe43459a4f/pyobjc_framework_DiskArbitration-10.3.1-py2.py3-none-any.whl", hash = "sha256:f0f727435da388efd035bdd510607a5f5769b22be2361afc5b8d4ee081c70cce", size = 4432 }, + { url = "https://files.pythonhosted.org/packages/b0/75/f182ed20fd579f0b8c5414d7cdb0d6834c773ffd70b0d55a76a1b1ec09a8/pyobjc_framework_DiskArbitration-10.3.2-py2.py3-none-any.whl", hash = "sha256:b7524092e8aae06262243523ff9dc7480185d8cbe4d3dd3604bca02a1ad66b7b", size = 4437 }, + { url = "https://files.pythonhosted.org/packages/36/f2/84a21000963c9c09fa0462700b758a8601e36ac127033e1bf4bca190121c/pyobjc_framework_DiskArbitration-10.3.2-py3-none-any.whl", hash = "sha256:4c1e901351ea8e264ab673ff181d4d67cd68b5bdff344353b385b05e084be243", size = 4433 }, ] [[package]] name = "pyobjc-framework-dvdplayback" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/b6/7f7d140ce091b9813e11f1b980956e607b552ead399abed5a70662f721c0/pyobjc_framework_dvdplayback-10.3.1.tar.gz", hash = "sha256:1f7c22624dee9b1b54def15f12a3f7cacb28052cd864a845eb24b7f59de12257", size = 53047 } +sdist = { url = "https://files.pythonhosted.org/packages/d9/63/52a3b4c53494cd1ad993b9ceba026cd2f226f45f6c634b429e22b43efaf9/pyobjc_framework_dvdplayback-10.3.2.tar.gz", hash = "sha256:1df1a41cd777559edc585bf097e3ed20a898e3a33f6b2627b6d321fc060ff97c", size = 53372 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/32/62882a136a3f17eef51cf81e13d69159e448c51cc9b136cf2b32375426ce/pyobjc_framework_DVDPlayback-10.3.1-py2.py3-none-any.whl", hash = "sha256:c0fb2e96ce4eae8def642f1c4beaec2da3cdf61db1562d4b5199d1334d1a10fe", size = 7836 }, + { url = "https://files.pythonhosted.org/packages/8d/7e/5bfa41e1daae50496682931b31c27f23c13215a3ac4119eaf4b70a3ead7b/pyobjc_framework_DVDPlayback-10.3.2-py2.py3-none-any.whl", hash = "sha256:d79086ae1919582ae7e721b088c4ec55864f045d1be45370d616020cdfbcb5da", size = 7836 }, + { url = "https://files.pythonhosted.org/packages/75/88/b3386af4aebf48d214056a227482cafa6e81714c8d8d63cf1a3be4d2d84f/pyobjc_framework_DVDPlayback-10.3.2-py3-none-any.whl", hash = "sha256:625edd783022f5a1dbe91de6089906115870ddbbba5671fc075e339fabbc123d", size = 7833 }, ] [[package]] name = "pyobjc-framework-eventkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ac/c4/995108bba1fb40eac108501038ae44c57099310982d1a6339b6a5fa47d82/pyobjc_framework_eventkit-10.3.1.tar.gz", hash = "sha256:3eef14ba439be1c5bc47da561ccea3941daba663577efac7a58e3031d27e056b", size = 64043 } +sdist = { url = "https://files.pythonhosted.org/packages/95/34/ae6a87901b93a020dc0b982b5704096fbcfba50840db4666d3a263cd86de/pyobjc_framework_eventkit-10.3.2.tar.gz", hash = "sha256:a31581cde80f03fc40ca8980d160570bcc747fec035311029fb4cddf9b35993a", size = 64364 } wheels = [ - { url = "https://files.pythonhosted.org/packages/29/7f/1edbb57ab0cb591aa924279aabedf3fe508f62de136465adc44d77ab17a9/pyobjc_framework_EventKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:ad9f42431bd058ff72feba3bbce6fbd88b2a278c3b2c1cdb4625ea5f60f1ecda", size = 6413 }, + { url = "https://files.pythonhosted.org/packages/0c/18/aaa0d29a091be2e49ed8ef16e09fbbcbe5a1f01d1281fc58b6fc7dad6329/pyobjc_framework_EventKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:9dcadf1fc7f21d8bf9b81a9226849bd8a11fe0427c0ea39cd98ec5b60a85970c", size = 6412 }, + { url = "https://files.pythonhosted.org/packages/5a/7b/3aa805146f23299092c4acf84cc9eacb7d2970347b9e33d5814dbdbc8c0f/pyobjc_framework_EventKit-10.3.2-py3-none-any.whl", hash = "sha256:f83f3ef7f2067cbc23039077a691fee7c284e38593b0fed0fe4785ed2b7b17b1", size = 6409 }, ] [[package]] name = "pyobjc-framework-exceptionhandling" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/88/1328bdac98aa75de421ffea4e16f0b894e39b4ea6569b3a109b531798d20/pyobjc_framework_exceptionhandling-10.3.1.tar.gz", hash = "sha256:ff6208777739f8a886d0cbfe20692b41cc4e5e0607419c47d2c5d405b6b4c6ee", size = 17129 } +sdist = { url = "https://files.pythonhosted.org/packages/44/9d/161094a7d8f39b943db22e11db8b7874b151550b0645668f7b6a33b6d8f2/pyobjc_framework_exceptionhandling-10.3.2.tar.gz", hash = "sha256:e49e05db37d15816699585ca9a0f5fccf37bec3f32cf3446f7595b7475678b90", size = 17521 } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/05/da9e1a8dce6d333d7b9e714c5c228b01b9208b827aaf2862e7c993541eb6/pyobjc_framework_ExceptionHandling-10.3.1-py2.py3-none-any.whl", hash = "sha256:79843a681a1d0f9ee2b7014dcf7e1182c99c83e49cf6cea81df934ebbdf4050b", size = 6670 }, + { url = "https://files.pythonhosted.org/packages/28/46/60da28c48a458598263d0794f7af7b09aea73ea218d81b2fc99b1e2e0bff/pyobjc_framework_ExceptionHandling-10.3.2-py2.py3-none-any.whl", hash = "sha256:3d5cf8243c137bc69c5ae63db8a844d1d61335d82672f462b2fd4d511c80e18c", size = 6674 }, + { url = "https://files.pythonhosted.org/packages/f6/75/56044ce3397e22b5b680fcd0a08e601dfd60cf909ae02fa91f789b9258f6/pyobjc_framework_ExceptionHandling-10.3.2-py3-none-any.whl", hash = "sha256:08d82814c3ce28d836de85fd0bf3c5b354b9b43df09d8c9b47d81f537e3ec8a9", size = 6669 }, ] [[package]] name = "pyobjc-framework-executionpolicy" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/54/8e/e5a3c06123a4ec3b845dac82450f4f1b4e5b80c0863881fb538f900762b0/pyobjc_framework_executionpolicy-10.3.1.tar.gz", hash = "sha256:cc066dc8378fc2a1a4e6129c4d09e2076dc9a5b09925f8dd959aad591cbf9a44", size = 12825 } +sdist = { url = "https://files.pythonhosted.org/packages/71/d8/bb30e70540f1f12b748f3c1c69539d750bcdb0493fbafb2ea5a37052c0fd/pyobjc_framework_executionpolicy-10.3.2.tar.gz", hash = "sha256:736b469e395fef859c1b506ab520e22cdd8937d71026901435fa7b2fcf08b8a4", size = 13158 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/45/559ddb59ce80f07c8c2ed81a3dd2b3ce7eb9399076cb556c8544dd444ead/pyobjc_framework_ExecutionPolicy-10.3.1-py2.py3-none-any.whl", hash = "sha256:f2eb203fa4c7dcf18a0ab3a4a94cb30a9f82cf888c237994dbbdb15adf01c8d2", size = 3343 }, + { url = "https://files.pythonhosted.org/packages/fd/c9/75b81b3b40175e830005eb47ac834c8ec796597b69ae30a046842f2b543d/pyobjc_framework_ExecutionPolicy-10.3.2-py2.py3-none-any.whl", hash = "sha256:509337de7c066c7fbf7f448391f73fb755baab132feee41858a948d59824e076", size = 3346 }, + { url = "https://files.pythonhosted.org/packages/e4/0b/b1f1dbfd9a0c4d9f86f14bdf380917def1910dc547254324ed56b9265899/pyobjc_framework_ExecutionPolicy-10.3.2-py3-none-any.whl", hash = "sha256:8fa8ea42f61deb9be8c71fa54b0121ae25f23996e77d29e29764b76fdbce4b05", size = 3340 }, ] [[package]] name = "pyobjc-framework-extensionkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/6a/2803c373283c66eb0d38f139aa1bfa7eb9dc909bc470856ae2308f064e39/pyobjc_framework_extensionkit-10.3.1.tar.gz", hash = "sha256:91946030195fa17c5248655b10786ea60b9aee7d83a4627ba56768600b4e7674", size = 17592 } +sdist = { url = "https://files.pythonhosted.org/packages/47/be/25e45cccd58fc61525d1f92684bed8d274a186706f2222144eb6b268c387/pyobjc_framework_extensionkit-10.3.2.tar.gz", hash = "sha256:626ba65aba8ce021c53eb52a3482d1fcb26d54e94d8ffb9b7376d444309e5bb3", size = 18034 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/a0/927202bf17e502e9e5e44821666e21158d6f251bd770d8478148ad66b0da/pyobjc_framework_ExtensionKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e2b54a5b32c959fc1500936b73c7ebd6d7ffcad23d74b9a6ff3db4ea5660f731", size = 7953 }, - { url = "https://files.pythonhosted.org/packages/2a/af/5db1176b6ddf9319054cff45550a32d60a6339918cc1f9e5c65717624c54/pyobjc_framework_ExtensionKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:f5b1e9c7e3a64224acae7b4c2d26d2a654edc54382e9e88aa3b056f4033508f8", size = 8010 }, - { url = "https://files.pythonhosted.org/packages/0b/43/bf841d52b0da616d850821e28a299fe87fa0e50a45796be6994251801539/pyobjc_framework_ExtensionKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:62bc537cbeabb24667434c82515827e64c31d761bdcd02cc3ea6bb6a9a35873e", size = 5736 }, - { url = "https://files.pythonhosted.org/packages/83/1b/113201c23f9c9fc562b456362340669eb6744eb38081df093f6a9a7095dc/pyobjc_framework_ExtensionKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c66797352b71a944810447c81133935656d8ea9bb847775a1532cf06d8deb1d3", size = 8286 }, + { url = "https://files.pythonhosted.org/packages/2a/97/f603f26eea364f087b07360e490d66c26e1523b2914149c36a458923e1e0/pyobjc_framework_ExtensionKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f5146745dce217fae8cd7d78488fe64fff0b615d35fe62f13ca3b39a2a433188", size = 7892 }, + { url = "https://files.pythonhosted.org/packages/c0/16/97725ca9725a8094d67860c7cf63a20350491e38e0c718479fa88d53c11e/pyobjc_framework_ExtensionKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ed7144c2cb1a2038385174f40eaab143d2f8c4dcb858d538bf454b0668338106", size = 7866 }, + { url = "https://files.pythonhosted.org/packages/a6/72/ffff99e8ece0e86ef632a29b52c26ef8ab0ea1747918558675905bd3ee05/pyobjc_framework_ExtensionKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:058cc769a3dc0abca97f3bc2da4138a4a94ac4a58b1cb598f4c41daf7a3d059d", size = 5641 }, + { url = "https://files.pythonhosted.org/packages/36/85/ed3035f98962dbc39bfb7025c2c1733199984394306aef489f47b14635ca/pyobjc_framework_ExtensionKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:05896938ed222d658a8e21a9b0880876c54eb2e06e5103e0c9aeee0417abd89a", size = 8226 }, ] [[package]] name = "pyobjc-framework-externalaccessory" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/51/61ed6de7d4950f3810e0b5f95cad1a225a1fff8eef13223ebcbc659a4888/pyobjc_framework_externalaccessory-10.3.1.tar.gz", hash = "sha256:3ba1a7242448126b4af0fb93963790d0066766bcba2770d935111093e87b7b83", size = 20735 } +sdist = { url = "https://files.pythonhosted.org/packages/21/96/6c4dcab9a457bcbd38401e6d081867f46a07e0fcadfc6cbd05d9a9ffac97/pyobjc_framework_externalaccessory-10.3.2.tar.gz", hash = "sha256:abd334e5da791409378fed7e09b0f488a7e55eb5740d279f0c7f85984c74add4", size = 21090 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/52/4606f684f4ab1708c5506813aadad620563cbf3dac16e40ef55e0febc511/pyobjc_framework_ExternalAccessory-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4395607570f1dd91abd786422fc516f83b4b2a5185321e6581d33dbe74a52c63", size = 8945 }, - { url = "https://files.pythonhosted.org/packages/d8/b2/81b6d4046e658fc1da5d041d7303cc6a0c1b336c30b29de84260b10c7472/pyobjc_framework_ExternalAccessory-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3fcdbb2338e7bd0fb66e9074dc95f2f989146ae92c66eb4282cfc1a6533cbe6c", size = 9006 }, - { url = "https://files.pythonhosted.org/packages/34/66/d51429f2071419e064b5c31e903074116c59f8617977b3f9a5c06c1fe36d/pyobjc_framework_ExternalAccessory-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b076ba07c84b1f4ef9a8a1aa095b66416119b1484b5111b2dd3041f2d301d1a1", size = 6537 }, - { url = "https://files.pythonhosted.org/packages/05/e2/d43cf99a6aed9de76c41bdc8f99ac39ba6926a39b01ae778bae844fabb3a/pyobjc_framework_ExternalAccessory-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4771cddfed6422502831a9bf88fa572918d1ca71a3e34e068f442d1197630267", size = 9334 }, + { url = "https://files.pythonhosted.org/packages/e7/f0/e3af41a9df33c8a2e76ecb24b0df50fcddbabb15e0431a56e07927403f6e/pyobjc_framework_ExternalAccessory-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:045735ec21ecc1fb922aee7add867e7abb8f9412cd1fc62b48df8e553957f7f9", size = 8853 }, + { url = "https://files.pythonhosted.org/packages/26/09/b81692b1b382ea2e97030f9843bb26cf9bf47cd65084c1dc65471a40e003/pyobjc_framework_ExternalAccessory-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:5bae8cc178eee73a4a03239f0d328a44f6f97665f815861e71afad5e63deb04c", size = 8817 }, + { url = "https://files.pythonhosted.org/packages/bb/71/269296e1656d5c5bac038cc5d90bf186a28ba96efb5c728a847bb97e7d1e/pyobjc_framework_ExternalAccessory-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7fccd659b8962fd7bd9d419dad75e13ef3c45a9e9fa7fb17c2088901731d0641", size = 6427 }, + { url = "https://files.pythonhosted.org/packages/08/cf/b262dd1c8a464f5a5a1759217ce49a7516121eb6943654159b8c16bb74fc/pyobjc_framework_ExternalAccessory-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:9cb0e33d4ef5389991dd19466ea1ef56576b8dffb8af74a5317702f19e6d6106", size = 9246 }, ] [[package]] name = "pyobjc-framework-fileprovider" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/69/c4ebc6738e8a3f5e0c9394791434813fa2656dbe2356fdf4c611a57e7391/pyobjc_framework_fileprovider-10.3.1.tar.gz", hash = "sha256:63a4160e6cbede0f682145f4303ed889bd9f3c9fccfecdc32636a8d95aeceeab", size = 63649 } +sdist = { url = "https://files.pythonhosted.org/packages/5f/14/b7ccfbce5457b5d86d61b0dcf0fb6a56c5421ddc0a6e17b4b16d0402d621/pyobjc_framework_fileprovider-10.3.2.tar.gz", hash = "sha256:b671131fa42d4e58f661362ef32e996de2f9a09a1ca20218983d7334efc39242", size = 63933 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/39/5e4358e76d1285607166b623a8e0222b75e1560142907b8ff18b4ba9b0f2/pyobjc_framework_FileProvider-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b44bcbf3d826fd8a0cbc53142c65655433d553205fb36811486757e2089e6c5f", size = 18163 }, - { url = "https://files.pythonhosted.org/packages/d2/87/3925b479aac490f3e96c5d56da813bfddcb75dca5597526d958eb0b3484b/pyobjc_framework_FileProvider-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b28294768dc71190019c2b2638e27b7ebf6edb65a90721b86613083bd86f6b2d", size = 18140 }, + { url = "https://files.pythonhosted.org/packages/94/0b/a81ecfac3d6fe75865594071f96b394849b7bc10c726d10ea9b3cd2a4dbd/pyobjc_framework_FileProvider-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:765d03584ccb85fae5c5df6e87cb2485a35d178c330f5021958b4b0165c044d0", size = 17714 }, + { url = "https://files.pythonhosted.org/packages/df/81/93c7971de7f325e57a3a0884207debfef01bd717385811ff576a5fe7d86c/pyobjc_framework_FileProvider-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b20703765fbf72351de76a9f4727b28293d70893cc0324b9e1c98de881075854", size = 17690 }, ] [[package]] name = "pyobjc-framework-fileproviderui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-fileprovider" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/5c/b130db2b86ff41da6422cd9ed54959202052c0b7401992b467c6cc29ec16/pyobjc_framework_fileproviderui-10.3.1.tar.gz", hash = "sha256:2a3f3b9b81aff216df76bc72c8e8730d7ba7f3b2412720f68b722bae58f82797", size = 12546 } +sdist = { url = "https://files.pythonhosted.org/packages/23/30/e2b049d329cce54157faa5a5f6f4b3ae3cffe39cd600e3df254320ad2611/pyobjc_framework_fileproviderui-10.3.2.tar.gz", hash = "sha256:0a62ebbf3ae3b9f73f4a36c511f3c143d2cdb657030366c04e7bec1ad27066ce", size = 12868 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/f2/1ddd3a5866a596daa4def91c3cb6e07f0a395232e49865f4e16c6929fb95/pyobjc_framework_FileProviderUI-10.3.1-py2.py3-none-any.whl", hash = "sha256:14be680a7fc78def5174ec5a6d890d407678cff723d6b359bba66bc0a78bd31a", size = 3317 }, + { url = "https://files.pythonhosted.org/packages/71/be/a7d992c7d3a8ab638c807fdcc6bca719796f0a1c2c6d1f31c06c4e07eeb9/pyobjc_framework_FileProviderUI-10.3.2-py2.py3-none-any.whl", hash = "sha256:c97456b4bccd0a9d2de5539dad0cf99013d64e77ee9bdea6eec17b803c6515ae", size = 3322 }, + { url = "https://files.pythonhosted.org/packages/80/fd/b8a5fe26a04704ff099c7fc8b54defe7e78272467361dceb05166d2e9ed5/pyobjc_framework_FileProviderUI-10.3.2-py3-none-any.whl", hash = "sha256:27553165ac3f8ee4a348602f691fdeb27f2322d2792dd3bd51a988243077d877", size = 3317 }, ] [[package]] name = "pyobjc-framework-findersync" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/70/0a2d490c88541912cab2d245093460190ddeed3bcde9faa3bc5e987c2247/pyobjc_framework_findersync-10.3.1.tar.gz", hash = "sha256:b4a08e0a87c54f62623038de1929fab018fe44fca5372a455bb524b9f90e9196", size = 14228 } +sdist = { url = "https://files.pythonhosted.org/packages/92/27/d505d5a508bacb971eb4ec4196372f9a9f286ce319bff1d24296feeadd58/pyobjc_framework_findersync-10.3.2.tar.gz", hash = "sha256:a5ab6ac34ea2c9184111b33b5248009f8a86a994c6d813e2bfd00cc20863046e", size = 14563 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/b5/bd7cd2bb1ac4c13da19309ce5db976f5b533ab8ec44744ec15963de7b131/pyobjc_framework_FinderSync-10.3.1-py2.py3-none-any.whl", hash = "sha256:d4778de8a9b386c16812d470d1ad44d7370970d1dbc75d8bea390d4f5cd12be4", size = 4478 }, + { url = "https://files.pythonhosted.org/packages/0c/e7/1599de82a5da5257eefda6c5174985686c6d8e9472a6287e07666a3e2aba/pyobjc_framework_FinderSync-10.3.2-py2.py3-none-any.whl", hash = "sha256:6217be137f38e225ce10d6b12eced87ffaee0e63e70d80dffd86cdf78932232a", size = 4482 }, + { url = "https://files.pythonhosted.org/packages/21/0a/3283b6028259954a8b5313e71d89ec4ceb54cca1f2eb9e7c7bfe1fe71388/pyobjc_framework_FinderSync-10.3.2-py3-none-any.whl", hash = "sha256:74061ba4fd76a84530ad5150a7bd141a198fc67cbde77a09e011af0415cc6d83", size = 4476 }, ] [[package]] name = "pyobjc-framework-fsevents" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/fe/53eb4883293b4920544570feb1d8290e937df706ee063a26061f3aebfa72/pyobjc_framework_fsevents-10.3.1.tar.gz", hash = "sha256:6269fd8aa3f62d8a6312e316043aca6d7d792812bff09b617bbd6ca9f0f6e440", size = 27274 } +sdist = { url = "https://files.pythonhosted.org/packages/97/70/a37b1b8397bb3e23a8c15c78209f998d0294311a70b81104a5f22cbe9b26/pyobjc_framework_fsevents-10.3.2.tar.gz", hash = "sha256:fb215032d65aa39eb5af1b6481f605e71afa77f881b37ba804af77bf24d2fde3", size = 27720 } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/29/84087044fbc34b60920cb921c03b69033d73ef713b98df05f35fcbef4b57/pyobjc_framework_FSEvents-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:7348e1aa268819b005e1ab648b5bac348052d3513aacf768c2c3999d6ffbf81e", size = 13056 }, - { url = "https://files.pythonhosted.org/packages/76/2c/1624ca745f6aad9fe1a1784487a1354a2324a7fdc262f8fca44fcf7498c2/pyobjc_framework_FSEvents-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:420736c645e15006c1ed962767bfd164b1d5dba7d9dc3cd9730e4c9922b05c27", size = 13138 }, - { url = "https://files.pythonhosted.org/packages/a6/93/79ee931a931f94a30f636c896cce6eaa11c754c4e3d9e7eda3af54844b6e/pyobjc_framework_FSEvents-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:56b48def729acaa0b7c27335a40519ca7d17e6d45649ba68e0f9f1c70e902994", size = 8872 }, - { url = "https://files.pythonhosted.org/packages/b9/32/7d7b848cb444737bc87d86f38a1eadf52907e4525506b3e72d4dd9ebb944/pyobjc_framework_FSEvents-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:282ebeeba0190524fe1d5d21d729ebcb7034e379a8039a6ccdf5f5c6e4470e02", size = 12989 }, + { url = "https://files.pythonhosted.org/packages/d0/99/628dc96c74256d5663aef13a133ab4ac8c01cf6fac306ad7721bf63e8d16/pyobjc_framework_FSEvents-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:a26f3f4f390584a55de16a2441fd7444de60ad677549c05a7c83c25498712564", size = 12944 }, + { url = "https://files.pythonhosted.org/packages/25/63/f6cc9bcd34428084384f2ef8df96622128684a2f4015a5c73ecfda5a68c9/pyobjc_framework_FSEvents-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:a13389f7ac8dfe177c045c069dc224129f6f9b6871aa7892a4a1bc164fba99c1", size = 12938 }, + { url = "https://files.pythonhosted.org/packages/9c/2c/1b705962aba38e701c3c8af1a870ebe09b796808203a396e630d0a696bf9/pyobjc_framework_FSEvents-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aa2ea7bed475e69b3b1ec745e65bbaa4afd480cdef80600591f97a0bd1bece06", size = 8773 }, + { url = "https://files.pythonhosted.org/packages/88/f0/a0ce3245a2e5505bacfbc079e45d9068485b7a9ac8a6fdd8f13ed633dce0/pyobjc_framework_FSEvents-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:5cbb808069ca184b7d75cc5cee2e18b1152d89b47f60a6be3aeaa918e03144f0", size = 12915 }, ] [[package]] name = "pyobjc-framework-gamecenter" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/2f/82cea539bd5a3c764c7acb065face9d1176011f58643323fde30f05997cd/pyobjc_framework_gamecenter-10.3.1.tar.gz", hash = "sha256:221ae88ee69816b95861b1a0dc781c1c17775d38fcf0388327620535479b6a07", size = 30111 } +sdist = { url = "https://files.pythonhosted.org/packages/61/e2/aa9d68a95afae2740b2b5af02bf4cdde11788c6e294cc2fdbcaed86723bb/pyobjc_framework_gamecenter-10.3.2.tar.gz", hash = "sha256:f641026c98c11e0c6d81cea0abdf1b113499e61327da63dc783c94f7ec4c460a", size = 30461 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/0c/4d598091446f6df9b425b3c9d754d29a69b14a7662a3b19e3c47e482b23c/pyobjc_framework_GameCenter-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:eba1058859fb30bef8227ce649dcf7531545aeff81c3cfd3e3b80ef8fe87bf70", size = 19192 }, - { url = "https://files.pythonhosted.org/packages/40/26/47ed05bc86f1fb24ce9261facfe23d6ea264d7af93a22ab6d831dfce6560/pyobjc_framework_GameCenter-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3329261e8a6a3b0df3abd4a7a3cc66cc8e47be919279a08249e08f94a0e4448f", size = 19226 }, - { url = "https://files.pythonhosted.org/packages/68/05/19df2f01e4d31f752c47ae667a1a9302b3fac7db9d126d35788c2a4fac62/pyobjc_framework_GameCenter-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:d2420c7d28f9eab337955a1872179295ba92e3d8db0e5b1b8d40442e7079d711", size = 12705 }, - { url = "https://files.pythonhosted.org/packages/e1/39/b6c69bacd37b96143b7dd61be6bde201a7a5058ee085166cd42600927009/pyobjc_framework_GameCenter-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6bd556e798cf52b94434c48cabf299060dd79b668f0021826995ceee520db8af", size = 19224 }, + { url = "https://files.pythonhosted.org/packages/a7/4c/85429e3ad1e69f440b90454186ad1051199f42852bcea145931f4b6c09e7/pyobjc_framework_GameCenter-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:30bb9ec68e800fe65f9515e3b6b1e4a276e96ca5839aeed63833a87b488cf3fb", size = 18630 }, + { url = "https://files.pythonhosted.org/packages/5d/d4/e7f2cd9561cabf0824c3c2311ca39e18da4599b654581a8b52c084145358/pyobjc_framework_GameCenter-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9bcc5822e39b589329f4f9be7992d0a9a5c01296f50602005ec60ad602704c07", size = 18618 }, + { url = "https://files.pythonhosted.org/packages/8a/44/db3a72bf187cf492047c88efeb720effa1421278e3c62a77d46346230232/pyobjc_framework_GameCenter-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:32c945732db707946fd7f6e2cfef131c707bf541c7980090963ede4fb0ed732a", size = 12386 }, + { url = "https://files.pythonhosted.org/packages/41/08/1dcf28bd3bab56237b13d250c07bc9e6addefb9140446f836952d5dab0ac/pyobjc_framework_GameCenter-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b2b9e4ebf571c49e7f945404d3b269fbee307dba62f13155a828ae8ed5e0fa37", size = 18666 }, ] [[package]] name = "pyobjc-framework-gamecontroller" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/6e/1ee46fe9870ce020529ce883c04291a7c7f43adad2b6fbc9b0c44d2549c0/pyobjc_framework_gamecontroller-10.3.1.tar.gz", hash = "sha256:f9f252b5fed5de2a8c7fdd2e302b6ed6e0b82015d7da75b28984c5ea5909345e", size = 94100 } +sdist = { url = "https://files.pythonhosted.org/packages/47/e8/909649206c4781bebe19f20d76287c473418b39ff501c161586ad37e16d2/pyobjc_framework_gamecontroller-10.3.2.tar.gz", hash = "sha256:57225d1a760315bc3f11828780076dc1b12a470b52bde2b7a20f45d6556e5e4a", size = 94410 } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/8c/d307f5ce6d03f552f66fb178d8da11bee59b410ff58538a5a4801195d606/pyobjc_framework_GameController-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:cfb754d29660e90f295ba443cc84fb189e5ca9d1f019c35a382cb24dd4e08bf8", size = 20409 }, - { url = "https://files.pythonhosted.org/packages/21/77/279da82f58d551fde28594a26180245b373a52c8b77fb0430e8099e69575/pyobjc_framework_GameController-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:a7a1e34a4ebcf9f653bc4a066b7d08d9124d462bc7e1c434ead983a6ae093382", size = 20424 }, - { url = "https://files.pythonhosted.org/packages/00/ea/8298cf9776d26890e97b7718517e4313acabea2a574f3bd0e655dce74dba/pyobjc_framework_GameController-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:a23bb9c97063fb334990cac20dcab1389942495cb028350a232faebb804d73c2", size = 14112 }, - { url = "https://files.pythonhosted.org/packages/ab/62/278908b0a50d654222ea699fcb95f9d8830627b6eee029fd0a0b576ccd6b/pyobjc_framework_GameController-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:e90afaa5a5d28771e60b4f60ff89b80037d4e9e558d680872810216299aea1a8", size = 20487 }, + { url = "https://files.pythonhosted.org/packages/84/4d/764bded9655619f761c28785cadf503820b7a403c1244dc110353257a3ab/pyobjc_framework_GameController-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:33ace4bf412413713db81c366ab27f98cda99cbfac3c83aa83eef55eba6fdf8c", size = 19907 }, + { url = "https://files.pythonhosted.org/packages/7d/8e/61bdced3b5fe4bc3416e7bccd2a6d2a9cd941879b2a6f3a9c85493754c33/pyobjc_framework_GameController-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3deda3a4c7228c02bc2d875c5ae3c820231212771a552798813a1016d92645c9", size = 19935 }, + { url = "https://files.pythonhosted.org/packages/74/26/303f7c466c6ab5b1b1ebaae8cc5b8223a4116386e5fdb217ac38c30cdb53/pyobjc_framework_GameController-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b75dcca0145a6c3cb88f04f574c30dffee1cb4392ce1bfdfd37726ee91e49afa", size = 13814 }, + { url = "https://files.pythonhosted.org/packages/ac/ba/cfe3174d61a9729116244ea2e8c190eb88e9aae8a7a04476fae78c2424b5/pyobjc_framework_GameController-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:5e372336e1f0aea1c34b7e745f9d263dd578348d23086076fb8d7e9f7d83d469", size = 19967 }, ] [[package]] name = "pyobjc-framework-gamekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/84/aa/897e74e41c80f0eaec994c4b0852e680e5eb22868d3a4681b46f06cf4032/pyobjc_framework_gamekit-10.3.1.tar.gz", hash = "sha256:7d21a8f45c32ac94ce0e70b6c6fe72928fe75cb1a6bd6d7715e2bf39b291b70b", size = 137591 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/ca/a3229141293e5128e5968428d34c5d2071e7eaf111b1d648dddb1b6d10e8/pyobjc_framework_gamekit-10.3.2.tar.gz", hash = "sha256:a1df3c59cdae5693a29d81057853b053871196197b56bce05d98dc84b233e0e4", size = 137941 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/b0/c0818f700b2df034e2b3b43643e7c73dbba3c72e1ce0a1494753d8591847/pyobjc_framework_GameKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:57930e2b65296719b2998c9816ab844983460f3358c57a120f09ebe78013b64c", size = 22352 }, - { url = "https://files.pythonhosted.org/packages/8e/93/cd9ad8514ec750da969eefc1466ce0d43b14fd4c51bf10daf5d5396513df/pyobjc_framework_GameKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:5634ac5f8b3569355f4fe8b2e6a06450d8aee555119607f7d738f5c85900c1b6", size = 22385 }, - { url = "https://files.pythonhosted.org/packages/02/0a/9a4459f0feb2b8dc9ae8408f47121efeb263e5d90ed73772691055795c4d/pyobjc_framework_GameKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:83f689c959cdfaa311f6702d9e99402faf47e390334fb3880d255dc72e2d2a90", size = 15690 }, - { url = "https://files.pythonhosted.org/packages/53/e5/39cd4287f4d49114328c931fbf04b5870e7e6178eef4eec0d54a76813b7b/pyobjc_framework_GameKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c861e575ed4543241adbc53162fb651395ba73c68a697f4b5aceaa61754e19c1", size = 22392 }, + { url = "https://files.pythonhosted.org/packages/f6/df/143d5a6f6bca2c125e1d79896a71b883afed08849c80bf6f2999c5ba1adb/pyobjc_framework_GameKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:557cea3328545f5d2a23535f0919d5b9c6e3c5c45f6043708ca7daaa57c8e2fa", size = 21780 }, + { url = "https://files.pythonhosted.org/packages/df/cc/8986bd7108ce8878ccb1ec8d81d6114db62081bb3c66180ba45b549bcecb/pyobjc_framework_GameKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:6eca13802c6d5543b52237030f6442f443cfdadfafcd7a47cea4a0fd5b6b758a", size = 21768 }, + { url = "https://files.pythonhosted.org/packages/4f/c4/64996d76a6c311d5501439688f28643b1365d4b1a2f06bafb2251076895c/pyobjc_framework_GameKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b960c6c2e3a225386229a65885bca06d42e77a33a13f82e16ae82c53560fe015", size = 15360 }, + { url = "https://files.pythonhosted.org/packages/af/dd/1c7da1376a2b5d1d381a5dea90174c9cae7c91c3c6b949f24bb6eb5e1d90/pyobjc_framework_GameKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:f225c51e9a4a8c583093cae8c243f1f3fddad04ad6bfb7ff6b930ac34e864124", size = 21797 }, ] [[package]] name = "pyobjc-framework-gameplaykit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-spritekit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/02/df/3a6e19a496dec873d26f255458a3e557f6e3aa004f04ca83f9de4e85e9e8/pyobjc_framework_gameplaykit-10.3.1.tar.gz", hash = "sha256:2035b81f7bc34b93636753cc3f9b06cd08171afc5c95bb2327a82fd3195f3c36", size = 55768 } +sdist = { url = "https://files.pythonhosted.org/packages/64/0b/e0f9e58ff69017b9b2bd17ef682672f63013670bb2c01b310fd74c2eb0ba/pyobjc_framework_gameplaykit-10.3.2.tar.gz", hash = "sha256:399a7ab7b47203f4506f98b6c121e6faa5bf7e77c154af6e6e486359f201a818", size = 56131 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/7a/d9ed333da4ec5a6dfeb2ec4634aaeb37208e71eb58475dcc15508d39233d/pyobjc_framework_GameplayKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:cb54cfc4dbc69f1888c59ddce9da97ddc03f5003794fe47d56942a89c478e138", size = 13800 }, - { url = "https://files.pythonhosted.org/packages/c6/09/ab7746307ba028d8921022d0d54950e3c232fa01003f31bb7ee392b1873f/pyobjc_framework_GameplayKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:eb49a732c82b17ff66f6e878b2cb9ba27e2222be303a337f2af4ed1a34a404bf", size = 13848 }, - { url = "https://files.pythonhosted.org/packages/4f/50/d0ee718890009926586a5f3d3df538cbaa594573660268c20eb777110509/pyobjc_framework_GameplayKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:8a0c2148e9b421922accfe565a398effe9622653c71d0bb4eb1b69ac90ee257f", size = 9859 }, - { url = "https://files.pythonhosted.org/packages/85/f2/78fc1e58328b9890355716b38c2cdfd11ec9d130f90a5be2ef68eb8d78b1/pyobjc_framework_GameplayKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:628406ca0d0ce283cc0735a4e532dd04a3a4d57a4c22c3ee4338ba64d1b13790", size = 13711 }, + { url = "https://files.pythonhosted.org/packages/d8/98/69a46de78c3dd7a8d05ade778cc3ca7c458fc847261729a009e670816990/pyobjc_framework_GameplayKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:9c5350e8a7277363abf4bcfee70ab389523af8f4fa41b522c7c0abe35668516e", size = 13557 }, + { url = "https://files.pythonhosted.org/packages/00/48/352d1c67f99dab6775aa181bf2a0523cc4a902123e36293ef2702d0adfa8/pyobjc_framework_GameplayKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:53772a09189f7b5d3506481511ae0b865243aa9c88876d54295434fdd4de1c58", size = 13515 }, + { url = "https://files.pythonhosted.org/packages/11/d0/7a6fb3ea86f7d8b93b7a88e2c0e80b3bbb480fd4a5993b451cdccb17110a/pyobjc_framework_GameplayKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ebf76c5fa9fbd7ae49faa4d1065c8c79446171bafe61bb7a6d05ba7351899c1e", size = 9670 }, + { url = "https://files.pythonhosted.org/packages/2f/ef/e638a59543054e279399acc0726abe37d00f7d5de61a3ee0c1ab6ec8c9b5/pyobjc_framework_GameplayKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:64e461bb2af457ae224998e2ae6c84ed5f604ca5377d88a9ae58c7a7baa8b5ad", size = 13479 }, ] [[package]] name = "pyobjc-framework-healthkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/68/fdda86963c5b3f86941623176acc2d7df03183ea9d3bbfff9088283d2bd2/pyobjc_framework_healthkit-10.3.1.tar.gz", hash = "sha256:45622fedb42bbd95dcc096248bbc41dacd857d9db120ff7310f74f3bad4b23e1", size = 113769 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/76/0bec0e66cd86756dfe28be0cd66f2b4a43fac0a83f46a9c067c738018c10/pyobjc_framework_healthkit-10.3.2.tar.gz", hash = "sha256:01a575de6fdeb38e98f8e04c720c5e1edc4e90ed3ef3b36e991dd18f8b37e83a", size = 114164 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/b7/532df1501af543fa78383d440818c07badf6911931da7b79da5fc33ed590/pyobjc_framework_HealthKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:80aee8bf0e7af6e434e9023c2d2050c2a2fe8e53abbf0e1f2285a932836fdd17", size = 18910 }, - { url = "https://files.pythonhosted.org/packages/f9/d5/33b2e71ac4089a96031da4e079c79545d09b2acfa720987ee08d34f73e4f/pyobjc_framework_HealthKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac9abec44c02edfe7f2151f529bac1c9544fb99ee1caffff55b331281b374463", size = 18964 }, - { url = "https://files.pythonhosted.org/packages/fd/99/8ed9d4ef41c1be5a3807b9bcd97abe4e1e152d587478e07a9dbcf2f3dd51/pyobjc_framework_HealthKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b64d4e61a8009a0a5586d464b591186570f654b20937f78941875ef3b7865505", size = 16426 }, - { url = "https://files.pythonhosted.org/packages/a4/3b/4b52e663b5243eb62cb836300d5b6e2c425f4b027a0b31133d10093449d7/pyobjc_framework_HealthKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:5bfcaac3a3947d070611d1fed1abe8858e049ef0ab1050f46974a7333b6369f6", size = 19429 }, + { url = "https://files.pythonhosted.org/packages/76/79/42e6d9bd6e120c049c8edbddfba2859ee041d40247b3dbd2e12b8796d22d/pyobjc_framework_HealthKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:0a4bdc0467da93d0cff1d7ea17e4f85e02acd572eb5a8924f6e618749624036d", size = 18813 }, + { url = "https://files.pythonhosted.org/packages/da/28/b41f919873b05a161e3c3b11e33ba5de3d538423e7a355739b195605b6bb/pyobjc_framework_HealthKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b7c2674b08681ac3fc53955fc600df32bb13b1b5ab21fcfe613b06e43b6ab636", size = 18783 }, + { url = "https://files.pythonhosted.org/packages/88/79/44505350f4c2d577c43189370cc647fdad88aef6cb4feb00ba113e52f902/pyobjc_framework_HealthKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:183c145021effd1ee5ff61922113ab35423c2157d4964579cd7620a154642dbc", size = 16317 }, + { url = "https://files.pythonhosted.org/packages/97/df/13f5101d91aed72e0db65277062120a82af7f9f18128f925a4246cedac35/pyobjc_framework_HealthKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c9571199e699d1f752bf5c0fa2e0993f962efa629923ef0cfb34f0326fd60cae", size = 19347 }, ] [[package]] name = "pyobjc-framework-imagecapturecore" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/32/36b2b34e2ae902552854c1e5d24cb4d587875f4400791a30740213f57178/pyobjc_framework_imagecapturecore-10.3.1.tar.gz", hash = "sha256:9ce83c38b8ccee6b022faadb9cd7b8716119092cd41b6c2cabce3670101119bf", size = 81896 } +sdist = { url = "https://files.pythonhosted.org/packages/76/6b/f0fdad6e56b28723a1136ae282ef2252b483d15aeebb8ae8deb1e062e0c8/pyobjc_framework_imagecapturecore-10.3.2.tar.gz", hash = "sha256:ed62f815a124e2a7560356b370ccf36eb422d211fe187ef720eb7651a9a16469", size = 82245 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/2e/416250b77c56389059d9456a214d7c9e64c64e2f25d22d3f30a29dd4f327/pyobjc_framework_ImageCaptureCore-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:649e0b7bf428ad3fe90faaf63dbd09d234563a32b3cee5a6f2d28ab31927bd54", size = 16958 }, - { url = "https://files.pythonhosted.org/packages/62/cc/4e3a24a111197c29c863432ed5d5eb80a347f8e63a035e45d8d4691f6692/pyobjc_framework_ImageCaptureCore-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:5bab844c665b3ac07b191e94130f543eb23c5cfd014035f025efacb7a48aa68c", size = 17018 }, - { url = "https://files.pythonhosted.org/packages/59/50/f6b84e10e09ea683bfb1cfa2ef0e7fdec983697178cd6d156bff9d6f6554/pyobjc_framework_ImageCaptureCore-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:0fd14f9183c1fcee67cf09f36ccbe156186da84a83419917fd3ca81a5de23d97", size = 12770 }, - { url = "https://files.pythonhosted.org/packages/bf/b5/2d667e372f66db8af3a8dd9d3afcc2907f78bff44deeef7b38245348c374/pyobjc_framework_ImageCaptureCore-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d625d84094f51dd4389d1dea7c53480c3311dd19447d96b3c9eb06be5a935fd6", size = 16880 }, + { url = "https://files.pythonhosted.org/packages/50/d7/5538683c130edf4ae79eb60d1c78b5d9a601257faf97170ddf25aafe21d7/pyobjc_framework_ImageCaptureCore-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:03f9f57ceaf72423087cb2f619151bd7eca326476038b2161869214e0707b4fc", size = 16784 }, + { url = "https://files.pythonhosted.org/packages/39/0f/b26fa05124d70c49e44947ad215ea73ec060581e3c4997c860599bbb2dfe/pyobjc_framework_ImageCaptureCore-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2d7a650cf6b779bfddec6c43e1a6ea57fc82d2f50ae1997c2e52a9d3818a6924", size = 16762 }, + { url = "https://files.pythonhosted.org/packages/05/54/282003f227f25ed039ea988528b204672e88d206d40e4ded86ab16e24355/pyobjc_framework_ImageCaptureCore-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:0f65d7e348ebe79bb7a5ff6980777737f2d0dd0d5a87d895ac12cc7834107f7e", size = 12624 }, + { url = "https://files.pythonhosted.org/packages/ca/95/797cee0c1d672cedc6dd8f19001147fcede8b574ea4792b2deb92ea78921/pyobjc_framework_ImageCaptureCore-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:942860c7508ce4564084899e5c331798c965f4b0f49acdf93617d9d2e17c6480", size = 16730 }, ] [[package]] name = "pyobjc-framework-inputmethodkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/1b/28c9e10640e0b73dcd7b4693c9ee1fb5519443bd8fd5debb0066261a0abd/pyobjc_framework_inputmethodkit-10.3.1.tar.gz", hash = "sha256:637ba2da38da5f558443b4529b33bab276380336e977807347ee9dad81d42109", size = 24489 } +sdist = { url = "https://files.pythonhosted.org/packages/da/de/fca23e845f47ff685b9ce2a67f59d9a78eba1617a3718014810be8326ec8/pyobjc_framework_inputmethodkit-10.3.2.tar.gz", hash = "sha256:e722e6658df548183435013c450191d9157f2f97e7b96b9c1d180eb8da8138ec", size = 24867 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/b3/9e04e21ce92cb822dabdd30fda046ac1ba17015cb12e8902bcd4acfd1a93/pyobjc_framework_InputMethodKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d1c3beb88f94eb6b0bdc458ef49f331d064c0260758134cef1cf941684f46c83", size = 9532 }, - { url = "https://files.pythonhosted.org/packages/30/66/7480b6ca7654be7964783a1195b2b928c0cc2b22e34d8f225bcdfe9ee7ad/pyobjc_framework_InputMethodKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:d0f7538ac549b61afc93df895375114464f778e06a66a4c2684cbbf247a8f4c7", size = 9592 }, - { url = "https://files.pythonhosted.org/packages/72/18/c1e5a19310f27df1aa35e5eefb7245f0927bb6663085ffab1a4016ea5294/pyobjc_framework_InputMethodKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7f5ff42a59209f3ede24181e5d1bb8d69f8ad428189f177c1bfd55d328f85575", size = 7461 }, - { url = "https://files.pythonhosted.org/packages/4b/eb/dfc9f160481226e2e46b4d94772aa2063ef87d4431f51fbd0766949951e1/pyobjc_framework_InputMethodKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:3fcd444b97cf2343a6c37b828dcc85080cc6a2c5ba508010dae4ebe836480d2b", size = 9786 }, + { url = "https://files.pythonhosted.org/packages/9e/63/751da17c97e70bb0b1a1389d05dad75257588a432e1623ffdd3fe55ca099/pyobjc_framework_InputMethodKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:613831ad328f0d7e0642c9a772fb0a6d6ca030704775d930bf8c2115ddfd0c36", size = 9465 }, + { url = "https://files.pythonhosted.org/packages/53/03/fcb730b8444d23886d2c2cc9891b193248b73e4110c2940d1d01693a6ffd/pyobjc_framework_InputMethodKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:70bf8cd079af707996a4425ae399f5851def0270d4047e735d61d024ca9ee80c", size = 9433 }, + { url = "https://files.pythonhosted.org/packages/14/15/31ab3bf7b164a702b0a10aae4be4422530d471bf94e91f5ea082ad00eaad/pyobjc_framework_InputMethodKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:dade51ebd4488dabc1fc1bcba0f04363df0a9300cf1f4d917e61685146c3aa16", size = 7376 }, + { url = "https://files.pythonhosted.org/packages/ff/fb/d98a172e0f4280f89575d86a2f327280fd01e4798758df98ea952437bd7c/pyobjc_framework_InputMethodKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:18d522ab5dba423a300f03276a6a630697580a13df8e46fa277526ea8e01df30", size = 9739 }, ] [[package]] name = "pyobjc-framework-installerplugins" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a2/cd/a9594b8200b1460630d21af18c9fc38741ff748c5457bf5958c5599795c7/pyobjc_framework_installerplugins-10.3.1.tar.gz", hash = "sha256:280808bbce36090b59197756fdb56c19838845a5fc25966a435dbc5fc4ddbbf0", size = 26514 } +sdist = { url = "https://files.pythonhosted.org/packages/0c/f4/dda750337702cee8cca7ca36eb8d4b5464f6dbd5210b9a21620f6cf54117/pyobjc_framework_installerplugins-10.3.2.tar.gz", hash = "sha256:f271955cb92531a4f8be254572e92d3837a34dfa3b0dd582fa37673b788eb70c", size = 26832 } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/1a/06a5d257d20dcb64f9f20c4fb7cc518016add734a70c9547676af0d4131b/pyobjc_framework_InstallerPlugins-10.3.1-py2.py3-none-any.whl", hash = "sha256:2b32cde6fb8bbb3e1ffd04d7acbe3132291ad5937fc7af5820062e8aece7b5cc", size = 4392 }, + { url = "https://files.pythonhosted.org/packages/bb/e2/6f5132317b151c25bdf125e836c06f425579d94ea0c5486e5005fad8ab2a/pyobjc_framework_InstallerPlugins-10.3.2-py2.py3-none-any.whl", hash = "sha256:1a5d3d3b72a44ffa6f83edc4bf32df209aa36d4af4994a242ea1b4b28507f6d0", size = 4394 }, + { url = "https://files.pythonhosted.org/packages/84/65/2994eb72b7a9cfaf6e7d7f33fe13d804d43818cfc9c5a5c7ed89d9ef61e0/pyobjc_framework_InstallerPlugins-10.3.2-py3-none-any.whl", hash = "sha256:177634f052a13a0fa453cdf293012b8b6dd60b01fc418e98b45b3b7a38413929", size = 4390 }, ] [[package]] name = "pyobjc-framework-instantmessage" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c7/fc/51a0707b48507ca4963333452fd17119cc325bbbefdac460bd960f6a935e/pyobjc_framework_instantmessage-10.3.1.tar.gz", hash = "sha256:bb1560a2f92a2def179b6381c17d406331b7818fa0fd1ba98f09ed94415f8a7b", size = 32767 } +sdist = { url = "https://files.pythonhosted.org/packages/df/79/d2d1b92734c3225c67341908e07dea47217260ed1c00456999826731d57e/pyobjc_framework_instantmessage-10.3.2.tar.gz", hash = "sha256:cc32e911c0d7574a48a0b2b1e298e979ea1396ddfac71cc3cef63d5ef8affd9e", size = 33093 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/04/089eee187804a418167d901c38cc4bb7cfb7045b53756fe3404011161a5a/pyobjc_framework_InstantMessage-10.3.1-py2.py3-none-any.whl", hash = "sha256:51a096e55a423423dbfbf19cc976a49915987ce68b9038f8ce3db9c3cde11718", size = 5016 }, + { url = "https://files.pythonhosted.org/packages/f2/52/9832fc3dcb701e0388afcd43e4dfe801824ed69c797c1d0401d70a1465d8/pyobjc_framework_InstantMessage-10.3.2-py2.py3-none-any.whl", hash = "sha256:ced4abd3e1c9bdafade9d3020130c9c4ea73141f97150583ac1f5945e3aa320c", size = 5018 }, + { url = "https://files.pythonhosted.org/packages/69/65/81bc3a377f52e47708c7eeaab29d92d97d8b61f67fd2c02a08bb2370d853/pyobjc_framework_InstantMessage-10.3.2-py3-none-any.whl", hash = "sha256:3886994feea5374b443ae7c73e2ab6c6f3bce43212fa8eeb71bb4dc1cd7fc788", size = 5013 }, ] [[package]] name = "pyobjc-framework-intents" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/64/dc/120a1891de4ea2c4c5fa382100ac9706dda75a64dd6185367ddc8d89710e/pyobjc_framework_intents-10.3.1.tar.gz", hash = "sha256:89f0ed49c515b75c8811d9f6771ac635e799dfaf11921172729f8e0857c8c0e9", size = 361884 } +sdist = { url = "https://files.pythonhosted.org/packages/6b/fb/5e69eb244560faaf7ff992b0ee8645467f16af4377d16a92246d76ae863c/pyobjc_framework_intents-10.3.2.tar.gz", hash = "sha256:24c080176487bb957ea06599e62eaa8f728d690362a2cc6efd1335abb30c1f1c", size = 362250 } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/32/4050983e2d7a6d7ecb5eefd49e76f173b293862b27ae5e8850aa1c8d6fd1/pyobjc_framework_Intents-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4d5a899e8cffd63096aec69edafac78e76d591afd07059a96377d6893ba56649", size = 32440 }, - { url = "https://files.pythonhosted.org/packages/49/30/71306e19f0f52658474a6325387b384459137b4a5ea302f41d7eafa7f508/pyobjc_framework_Intents-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b6da33ba8a1e6ae169eb67c1c83bf4e0aeb365fb368162ba002ef26cdc9f853f", size = 32474 }, - { url = "https://files.pythonhosted.org/packages/53/17/ad5540101c620f98bffe55969861b64a65bf87f6269702be5345dc9c733c/pyobjc_framework_Intents-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:332e5b74dceb8315e289d462058b9ec65544562936098b50b8003999954032b6", size = 26862 }, - { url = "https://files.pythonhosted.org/packages/60/b2/a58d92da0d457754ead621108cca76c7157a9dba94449850389bac10a226/pyobjc_framework_Intents-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6e77fea5fc4136888459c8ece7d48fe3eac3a37c665e9ba8aaeb18c1671eb083", size = 32464 }, + { url = "https://files.pythonhosted.org/packages/ab/b5/957cf266b119eccd739410734c8080f9f1b5747cd9533834fa0adb65d29e/pyobjc_framework_Intents-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:2beca607ebc1abf9d538ff6909e7182ef11eeb0f3dcd2584f1f5d3a35f21cc6b", size = 31999 }, + { url = "https://files.pythonhosted.org/packages/37/6b/45a8afe6c2694c298d3939943a69705e470ab9bfbbb34503ab74089caa91/pyobjc_framework_Intents-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f0ee2a16c31272f7d7f2cf5dd04906b1adf21879379bcbe52d32f52e3890c42", size = 31975 }, + { url = "https://files.pythonhosted.org/packages/36/3a/22be0b88625d3510e0bf048bc3246e9263f6d1c9e538441a499473611b29/pyobjc_framework_Intents-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7787df975d41234b65be7de4377dd5f1405970e1751382e6e5aeffde96067985", size = 26546 }, + { url = "https://files.pythonhosted.org/packages/2b/08/22df757a7b90ac042f2598ddba6d22b89406eb0adf4296401967c38d3439/pyobjc_framework_Intents-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:57c220d23498b81ae0eb470316505770b9bf7aaf64f6a9c0333f3760646dc95c", size = 32016 }, ] [[package]] name = "pyobjc-framework-intentsui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-intents" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/51/3cff5de2db25fb516eba66480e90ceea293fc12d715d51a16ebb242c0893/pyobjc_framework_intentsui-10.3.1.tar.gz", hash = "sha256:68f42cabbd36889060d07b21f156f1dae78243d42b34c652448c687d07cbca62", size = 18822 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/96/460efe35ca330ef828a364ea0b8ba5efd1eedc3f2ec3d029fd955716a99d/pyobjc_framework_intentsui-10.3.2.tar.gz", hash = "sha256:e2192a7d1858b1a510b5acefe44f9ff8df89a2c7b65868366bb15befb76804dc", size = 19163 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/ed/adbe8714da27be1056a936e51cfbba36bed6046ba1fedc3f54b006f7f0cf/pyobjc_framework_IntentsUI-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bd2fed37c96f1d97abcbd6d98b2da90ba2c744f968e2c4e0735dce77bbbc95f4", size = 9607 }, - { url = "https://files.pythonhosted.org/packages/6b/fc/97bf965283261206b971f329a7d02180cdf14ad5a30d5cae2f9962b0153a/pyobjc_framework_IntentsUI-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e9fe0ba78c9dd500ef9c13227dd1a60e39df460c84180d8325f5022edd80178b", size = 9642 }, + { url = "https://files.pythonhosted.org/packages/58/da/916cf9f3928f293324317a4c28b4f8c0a8f8be8b5eb7ca54bac1294eedea/pyobjc_framework_IntentsUI-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3ef19904246ffca3c544298807a0deb08aa0f5a345feb00ce56cb20c86aa689f", size = 8847 }, + { url = "https://files.pythonhosted.org/packages/0d/ba/768b2e190b80fe01ea2f23460c86f5fad40d6728f8439f71afeae91e6b98/pyobjc_framework_IntentsUI-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:80cb30a9ca34916e80b729c01519603e14141087d7733730b23f8bcc085d0a4c", size = 9410 }, ] [[package]] name = "pyobjc-framework-iobluetooth" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/98/b6aade04f7e07de0e81f0312c19bbd21ea61986ab8158a0986aec6c5efd5/pyobjc_framework_iobluetooth-10.3.1.tar.gz", hash = "sha256:bca424889d7fdd5bcb728d312e91ee681e73c0c2ac16ba37068603d699043d39", size = 226060 } +sdist = { url = "https://files.pythonhosted.org/packages/7e/91/c57034bf6ccfbc7716141dd9e0d863a46e595322257085e1a69f310086ec/pyobjc_framework_iobluetooth-10.3.2.tar.gz", hash = "sha256:aa8e054cec1066513c4c130ff5d08a1ac020b62ae23fab1d94cbf29ca69e3374", size = 226443 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/4f/d75da040aca8563c56e2a7b5322ee236e2bfdb71181f761e846a5b759c88/pyobjc_framework_IOBluetooth-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:cdd8bd3da07c6935657bbcf47e6fc6b3b7a2ed9bd7e8ef83bbbd5f4a0e8884f3", size = 41473 }, - { url = "https://files.pythonhosted.org/packages/31/0e/bede89b5275ad1af549f86de3ec9395d01b1bb6db5592e2c4d69fa242776/pyobjc_framework_IOBluetooth-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:d5c7ca666050b63c5dd87ede54beebdba7fc12a60bd754d77155da9f7e60618c", size = 41527 }, - { url = "https://files.pythonhosted.org/packages/7a/9c/c8dad67d2d990fffb9ae1adb8452147076e2d1d2405634e319e6757a97b2/pyobjc_framework_IOBluetooth-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9f90d8ea40f770b41ad97e17e19ad10e49daa1684f750e681db42707dbec9768", size = 36977 }, - { url = "https://files.pythonhosted.org/packages/82/c9/4c7bf05da12c96657b51568be9177cf6a50b9ce0aa852d016f5d24fed68c/pyobjc_framework_IOBluetooth-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:17303009a3c1ac48eaaa2c3a96a114ef47adcb1fffbf965e7538447bb02adde1", size = 41421 }, + { url = "https://files.pythonhosted.org/packages/0b/d1/fd07294cc4adffe2d89c09f19813865f32d2bc9de5f2a8a81bb29bf094c1/pyobjc_framework_IOBluetooth-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:19fffb89a5d39c16a10bb515be35326e1cf82d9ed8ddc3654e2a61c482ed4d41", size = 41170 }, + { url = "https://files.pythonhosted.org/packages/99/99/a605146198c6e0bcc55be57234b9673776e8a2f3b8e7575ab501e816eb1f/pyobjc_framework_IOBluetooth-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:14899a6d717969243a56005b5ce64de758999a81bbc3728b51630d9831b6c458", size = 41141 }, + { url = "https://files.pythonhosted.org/packages/ea/ed/68b32c452a6b63d4c3d25dc065b8d995b910b11084e60e26fdfee0b14b69/pyobjc_framework_IOBluetooth-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7712af50d602d05a9f0f82c246207ceb9da3b1ad0479254cc3b2e6a4002f3e83", size = 36763 }, + { url = "https://files.pythonhosted.org/packages/91/ea/22427661fd0b13d94d245a5f3ec296988babd7038c30e5a71f5ddaee9415/pyobjc_framework_IOBluetooth-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c53c5a0b169e6d6815a496f1d6e35c76d7d165d067328abda9fef6214b2674c4", size = 41127 }, ] [[package]] name = "pyobjc-framework-iobluetoothui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-iobluetooth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d4/e2/3793269efe06505b1b4224ea395912c697896054bdc0bddcc3889796ceac/pyobjc_framework_iobluetoothui-10.3.1.tar.gz", hash = "sha256:6db82aeb360641b878f8ed73c2074db0425664d9411317b2e01962e0929fa29c", size = 19226 } +sdist = { url = "https://files.pythonhosted.org/packages/50/ab/f171f336c7ed09f8e3ff1f8a74cac297046fa7feade6cc32a2848d99cbd5/pyobjc_framework_iobluetoothui-10.3.2.tar.gz", hash = "sha256:00093d69bf0eded017848908b96055648e61de115a270b9c61c06ab77c612c62", size = 19545 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/b4/47b9746727a7a199d674bb864525016bf2d22aae7e58021e96cbeb70c048/pyobjc_framework_IOBluetoothUI-10.3.1-py2.py3-none-any.whl", hash = "sha256:ae283c3fecbeb99adba9b3c3d5d06caaad741da726fc7a1dd50ecc0376e03ae8", size = 3653 }, + { url = "https://files.pythonhosted.org/packages/9a/e2/4bf252c66402db1f89a4cae75ff5d2586c021db6bf3dd389a458870c3d86/pyobjc_framework_IOBluetoothUI-10.3.2-py2.py3-none-any.whl", hash = "sha256:5cad8e43694656b62b9fabdf8d41132090cfc36d1f2cf0656a0cc3506263d16c", size = 3659 }, + { url = "https://files.pythonhosted.org/packages/46/b2/30d1606c02cb80496aac802ef7251c31b1c08d369e6c5f3fa8078b1df712/pyobjc_framework_IOBluetoothUI-10.3.2-py3-none-any.whl", hash = "sha256:3c0ed4a3b3672331aafb5eff95f36e526c88a4429804d5e15b6af5afaab0305b", size = 3653 }, ] [[package]] name = "pyobjc-framework-iosurface" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/45/8cc7def9b73ec0c3423b7c4878ee3e02fd27e72085574f4c5b7b284bebc5/pyobjc_framework_iosurface-10.3.1.tar.gz", hash = "sha256:94e4a109a94f0e365bd60ce68aab6ff166fef6f30a40f7682c76902f5fc3aa34", size = 19262 } +sdist = { url = "https://files.pythonhosted.org/packages/97/93/4d67e85a15a23158e52ea7360731f228f151f4472797306944c4592be627/pyobjc_framework_iosurface-10.3.2.tar.gz", hash = "sha256:f308cc99c91ec4f7e3c3472a7a8396d842536881472beeff34f32e85dd0772d7", size = 19661 } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/2d/c2519d5d8e78d60245d7336d2f44a48041b5ffee9b8f2bac9f5672033e6d/pyobjc_framework_IOSurface-10.3.1-py2.py3-none-any.whl", hash = "sha256:4171a33a09ee006ad28ba29e6d12cee821e2c0ba09b4beddae8db16580fb9bc7", size = 4572 }, + { url = "https://files.pythonhosted.org/packages/e6/84/eec56559bf22009492efd8439cedf48041c03ee24ca6c7df2ac07ef59961/pyobjc_framework_IOSurface-10.3.2-py2.py3-none-any.whl", hash = "sha256:261778a5f28750ed878a0ce9e386748f196d1544ff116056edbb64c51c301b95", size = 4580 }, + { url = "https://files.pythonhosted.org/packages/4f/2b/abfedadcb93c297c3b8d3497e7501661d764be62e5d78cfc634dbeb3560f/pyobjc_framework_IOSurface-10.3.2-py3-none-any.whl", hash = "sha256:4b913aca8b1e2e35d0263684faea7e39327e825c65ce746ef37f95d958be0f73", size = 4574 }, ] [[package]] name = "pyobjc-framework-ituneslibrary" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/a8/63766d37cc93e2a92a53bb3b5dc769fed0ac27509bfb251cb94878792432/pyobjc_framework_ituneslibrary-10.3.1.tar.gz", hash = "sha256:3899f8555ae02f6441a711892cdc6537404215b3d5f8a7ea4594f7460c58c9b2", size = 40017 } +sdist = { url = "https://files.pythonhosted.org/packages/12/49/7fd55a0b5f9772f73e7aff273b9dab999843559b2bdd4b2683cc90137938/pyobjc_framework_ituneslibrary-10.3.2.tar.gz", hash = "sha256:a8b8fb857ae428677e30c90c24264c69070c9eaae90c58ec40dddc5cac6c2069", size = 40393 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/c7/05cf8de68b85c574cf5929a4771cbdbd4ae2448d3381d4ef7f5066e510fe/pyobjc_framework_iTunesLibrary-10.3.1-py2.py3-none-any.whl", hash = "sha256:9485e986f6075d04e10c196e5dc36e4c3b60116a45849683a61c876e5fb45fde", size = 4821 }, + { url = "https://files.pythonhosted.org/packages/7e/1e/01131fc0e23b7b77ce05ea87060806795d44de7b8338e2850c6057d99e56/pyobjc_framework_iTunesLibrary-10.3.2-py2.py3-none-any.whl", hash = "sha256:ed4a2185662bb99cad5b83236f94c3a146c0ba3cb30d904bf19272e3748bdcbf", size = 4823 }, + { url = "https://files.pythonhosted.org/packages/4a/3b/5de7e6f3943d1b4f3d74f0bbcc5c0d86d2a95f4163e214ce1c44c66a84b4/pyobjc_framework_iTunesLibrary-10.3.2-py3-none-any.whl", hash = "sha256:a596908e42e6c5f001b3fd259900935e07869dd5d2715c7126743426c8993c75", size = 4818 }, ] [[package]] name = "pyobjc-framework-kernelmanagement" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/b2/0c894451b949023e00b76e17e46ce65dfa30e5005c5500958d6f90a20fcd/pyobjc_framework_kernelmanagement-10.3.1.tar.gz", hash = "sha256:04c41bc0d0ce014318acf9e333aba302092d2698ec408cbf0b022f3a507ecfa1", size = 11933 } +sdist = { url = "https://files.pythonhosted.org/packages/f7/1a/7ecb8bc2bc0bba690bb85279fbee52162f810816e92b54ec60b96efd5ebb/pyobjc_framework_kernelmanagement-10.3.2.tar.gz", hash = "sha256:c4220bc64bddccdbb57c1040c16f6e04d4eccc1c48df86c66e255236698b5b1a", size = 12262 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/75/140a6075df7c97c4e70014e696066d5b077d4116b9228287d87f63f1c1ca/pyobjc_framework_KernelManagement-10.3.1-py2.py3-none-any.whl", hash = "sha256:e07134bf3815370d3d9c37f9813edec12758f86fdbbbc67036ab72e8b767ddee", size = 3279 }, + { url = "https://files.pythonhosted.org/packages/c0/9e/5feae936bb4bf122940b7465662716cb4c936d3a87cbf994e16f652625f6/pyobjc_framework_KernelManagement-10.3.2-py2.py3-none-any.whl", hash = "sha256:eecdb649c96004ccfabb3a51393505a412fbd6e09a6d6ad7fad8cfd016c3c16f", size = 3279 }, + { url = "https://files.pythonhosted.org/packages/cd/c7/0855f2cbc06af2cdf10706bb7826e71def86c3bb8456c950cdc5559769d5/pyobjc_framework_KernelManagement-10.3.2-py3-none-any.whl", hash = "sha256:4f07160a18129c099080d64cf2373817cf0e5b6458b82a6d29bcd04dabbb64ea", size = 3274 }, ] [[package]] name = "pyobjc-framework-latentsemanticmapping" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/17/435b483033f21fa1d95132e93c0cedbf93567f00e6ffb579989e0c070f9c/pyobjc_framework_latentsemanticmapping-10.3.1.tar.gz", hash = "sha256:0bca94fd00f59f49874c8266bfacb09a7c56ad13b4d405c241421cef201f8943", size = 16630 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/a4/34ff1d3358ab11d98a81a306d478a8530014af18f125f172de00d150055c/pyobjc_framework_latentsemanticmapping-10.3.2.tar.gz", hash = "sha256:477e25832c19e269c969dd25e3c9a7659b237b80ab130f1e4b7f0b98fda9f0a8", size = 16958 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/ee/af2199401d4a6ce71b195338a2fa63bba0d33d9402622146906b741ec601/pyobjc_framework_LatentSemanticMapping-10.3.1-py2.py3-none-any.whl", hash = "sha256:c80c709b983273c8f29e86a04c52e98e8e6b0e723a400f7d6036fcabfd850367", size = 5035 }, + { url = "https://files.pythonhosted.org/packages/19/20/4f5878cd2b09373dbee188b3b972a3751c26236e88ace92b64eec911172a/pyobjc_framework_LatentSemanticMapping-10.3.2-py2.py3-none-any.whl", hash = "sha256:1a39c9dd7c1f202a202387e5a7dd760585bb4011f1dd84f55bf129758b832681", size = 5038 }, + { url = "https://files.pythonhosted.org/packages/e4/b7/35f723760b7aade349cbde003e10ee8c6d90e160eb6ad60a4c46309a94d4/pyobjc_framework_LatentSemanticMapping-10.3.2-py3-none-any.whl", hash = "sha256:4e2402d16c208563a9ee6c7c76b87d24d5cf6cceab41733b3e547ea4a1b28a81", size = 5034 }, ] [[package]] name = "pyobjc-framework-launchservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-coreservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/34/dd/53ff73cc0fbf1ad21d3acdd387830f793541dd023150866853e4f00d8dc1/pyobjc_framework_launchservices-10.3.1.tar.gz", hash = "sha256:7f16af2acabca0c2953eb7333bfe652bf853bb9d9e59b771f9d228468bccdea3", size = 20012 } +sdist = { url = "https://files.pythonhosted.org/packages/fd/21/1d36e3d7461b0521270b06717443c4bec4aaac7cddd17b36427608b6adbe/pyobjc_framework_launchservices-10.3.2.tar.gz", hash = "sha256:8aabb555e93702f43d2d6c5f85c9efa5d1f03b1caeec75a8359ab72f84fb6299", size = 20337 } wheels = [ - { url = "https://files.pythonhosted.org/packages/56/77/848cc9be87327fed05e46a67ffa5abcc0edd5c0777c4b98b6e2e6537882c/pyobjc_framework_LaunchServices-10.3.1-py2.py3-none-any.whl", hash = "sha256:3ce840027b43c4bd95dc31aaa9b4bfff1d431e782669b4c95e2b12d386c05000", size = 3489 }, + { url = "https://files.pythonhosted.org/packages/d8/86/c2c87a92d993a25b97b08b2ff193eece802c63a7485dbcc8167b24d8df5f/pyobjc_framework_LaunchServices-10.3.2-py2.py3-none-any.whl", hash = "sha256:ce0990585e893b13ef77c18335796d48a5f82d468a8c0b0fe713fa69f0283dd7", size = 3490 }, + { url = "https://files.pythonhosted.org/packages/f7/eb/b8bed6f66a7358a281b7ca8e9c381dd2116b80adc5e463af7233c382502c/pyobjc_framework_LaunchServices-10.3.2-py3-none-any.whl", hash = "sha256:614351778550c62c06f11534084096ae706e71f2700d159db3e7bdae08470488", size = 3485 }, ] [[package]] name = "pyobjc-framework-libdispatch" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/37/1a7d9e5a04ab42aa8186f3493478c055601503ac7f8d58b8501d23db8b21/pyobjc_framework_libdispatch-10.3.1.tar.gz", hash = "sha256:f5c3475498cb32f54d75e21952670e4a32c8517fb2db2e90869f634edc942446", size = 44771 } +sdist = { url = "https://files.pythonhosted.org/packages/4d/12/a908f3f94952c8c9e3d6e6bd425613a79692e7d400557ede047992439edc/pyobjc_framework_libdispatch-10.3.2.tar.gz", hash = "sha256:e9f4311fbf8df602852557a98d2a64f37a9d363acf4d75634120251bbc7b7304", size = 45132 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/8b/44d0a44bfb68ead2481f95516f1d791e6e72667a9514c36d8d7df87a58bc/pyobjc_framework_libdispatch-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3e0db3138aae333f0b87b42586bc016430a76638af169aab9cef6afee4e5f887", size = 20491 }, - { url = "https://files.pythonhosted.org/packages/40/1c/4d16cbe1d41462184e908d757537349cebddc7444950ea24dfbaf2a957ca/pyobjc_framework_libdispatch-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b209dbc9338cd87e053ede4d782b8c445bcc0b9a3d0365a6ffa1f9cd5143c301", size = 20542 }, + { url = "https://files.pythonhosted.org/packages/9f/d9/901df936da47707045924eb231adf374e8ff7553202474df7cfb43d4e1e5/pyobjc_framework_libdispatch-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:061f6aa0f88d11d993e6546ec734303cb8979f40ae0f5cd23541236a6b426abd", size = 20201 }, + { url = "https://files.pythonhosted.org/packages/e0/e9/8e364765ccb1f3c686d922e2512499f2b4e25bfbfa5d73e833478bff88b5/pyobjc_framework_libdispatch-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6bb528f34538f35e1b79d839dbfc398dd426990e190d9301fe2d811fddc3da62", size = 15572 }, ] [[package]] name = "pyobjc-framework-libxpc" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8e/9d/8a7eb8d3570f2f41fd265513655fbf28e2ab93155a0053f46277fd61b097/pyobjc_framework_libxpc-10.3.1.tar.gz", hash = "sha256:b3c9e9fd281b5610e3bef486e91570b0afa8ab8eb0c01c0baa5e2ec49ccb7329", size = 39868 } +sdist = { url = "https://files.pythonhosted.org/packages/5c/fa/0776ec3eef69bb343cd5e3072d87814448fdde98b6a8d1f41ca044b7737c/pyobjc_framework_libxpc-10.3.2.tar.gz", hash = "sha256:c22b7c7de66152643a50b3c10a5899ae44c99b5d6bda7d76c0f7efda0c6ea831", size = 40167 } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/58/70effee80f0f0f840b6e6639252cdc749a4f7ee043d2ad66528ce354b507/pyobjc_framework_libxpc-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0afba29b6bf5c3de3ef51f60e06c026ab7be7ce44600047dece5d3bf4e758af", size = 19484 }, - { url = "https://files.pythonhosted.org/packages/2c/5f/bd9bcd9d13a1ccb61c906b68f998556b3319ea83ce722be7ee5559103ce5/pyobjc_framework_libxpc-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:123b72dff148a56d48120448bd9742190326f87661f4ae6f5363e112de0e554f", size = 19582 }, + { url = "https://files.pythonhosted.org/packages/9f/12/dcde70a4d57f6616a60c2a4a42ae305497dd121fab23a280c13289d064c5/pyobjc_framework_libxpc-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d175ac69780cd6ea608a8ad5bba124941a2ae621b8ad4cc0cab655822b97b213", size = 19193 }, + { url = "https://files.pythonhosted.org/packages/6e/81/49c684cba518f3443f29349589b5ce6b30761282030da7e64e992c32edfd/pyobjc_framework_libxpc-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6ecfbadd1f55156529d28dc76d54ceb99136b453460cae01c605302d993cc72", size = 19286 }, ] [[package]] name = "pyobjc-framework-linkpresentation" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/f2/8317cff954187875cc82dd8a08de69adbd1efb48451cd2b6836f347392db/pyobjc_framework_linkpresentation-10.3.1.tar.gz", hash = "sha256:535d452cc33d61074ba9bad7707d6c0a23d474fb045ed4322e5f87bfb0b7e865", size = 14174 } +sdist = { url = "https://files.pythonhosted.org/packages/4d/24/fb62451a1c4846a69a5914e755cab2b35940f631d87c903e32eea4d4a2d1/pyobjc_framework_linkpresentation-10.3.2.tar.gz", hash = "sha256:345761452e2e441fc21c1898a4e14dba26315d2f46a66a876153d46c823f39e6", size = 14524 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/6a/6347826cc12c01bfd2f6c804af1d99d4df8cd74440a412562b72cbbd97f5/pyobjc_framework_LinkPresentation-10.3.1-py2.py3-none-any.whl", hash = "sha256:e49ac094eb3a60a87f37edc24657feb051614a4d4464ad2580831288ead521f9", size = 3467 }, + { url = "https://files.pythonhosted.org/packages/2d/1c/da1a1f610489817e1f8675405378cfe1deb3c3592d8ee3d050049c6e12af/pyobjc_framework_LinkPresentation-10.3.2-py2.py3-none-any.whl", hash = "sha256:f0222073074c74a9985b4f655ec1caeb9dde7a62143ea0c0575e2a5640589ee9", size = 3471 }, + { url = "https://files.pythonhosted.org/packages/8c/33/883baef16dbf178a4417f9955031aac12aabd51eb4b3356b62ccb808e3ee/pyobjc_framework_LinkPresentation-10.3.2-py3-none-any.whl", hash = "sha256:6fc65ab6e2bb91f5a17a49f760982d13dea719c8c2702d43be5f3df96adb3795", size = 3465 }, ] [[package]] name = "pyobjc-framework-localauthentication" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-security" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d7/a9/bb2c2c3171a600dad5c7db509cdeef5a1a3cd7a22266a515145ebd5497b0/pyobjc_framework_localauthentication-10.3.1.tar.gz", hash = "sha256:ad85411f1899a2ba89349df6a92db99fcaa80a4232a4934a1a176c60698d46b1", size = 26240 } +sdist = { url = "https://files.pythonhosted.org/packages/90/e0/642b80c3320c654fc57497fe78e423a9c010fe49d6142da807bb774f4365/pyobjc_framework_localauthentication-10.3.2.tar.gz", hash = "sha256:20774489eaa5f5f91f089d801b84e51018e3eaf972e01743997678ad4b65e62c", size = 26544 } wheels = [ - { url = "https://files.pythonhosted.org/packages/98/d5/3d5290b829f1f722b7593e01cc06406d6de404a35d91640241d885e2c01e/pyobjc_framework_LocalAuthentication-10.3.1-py2.py3-none-any.whl", hash = "sha256:565910d7d2075cd53c6d4ffdbb15d9b93267f1b1ba4c502d354778865d0dc2ec", size = 5678 }, + { url = "https://files.pythonhosted.org/packages/2c/df/171015b07cedfcc3d303225afc3bed762106f8e7d2e6b1ecf0e0b68605ef/pyobjc_framework_LocalAuthentication-10.3.2-py2.py3-none-any.whl", hash = "sha256:307d1dc7f361b52a9929ac961c33cfae2536e1eddeff25e2b3a5b996002dd86e", size = 5686 }, + { url = "https://files.pythonhosted.org/packages/fd/b0/b4266a949801275a4d32a9f92d382de4746d9f40b4c0f1190ec6bfa8ae95/pyobjc_framework_LocalAuthentication-10.3.2-py3-none-any.whl", hash = "sha256:fb53b0b7d75cc3a6b580dfc80daa4cf94215b397c420c379239e063e14dbd8a3", size = 5680 }, ] [[package]] name = "pyobjc-framework-localauthenticationembeddedui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-localauthentication" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/36/ba89365d6bdbed5db435e0b4e2dc310a977dab5a306453c4f7ef8de745f2/pyobjc_framework_localauthenticationembeddedui-10.3.1.tar.gz", hash = "sha256:f915190f6106b9f9234750abf48f87445c364ccbca8f8dd565bba1b66ddd55a3", size = 13305 } +sdist = { url = "https://files.pythonhosted.org/packages/bb/6b/7e340412752aab504fe1bf51b5bf2063a99dda2f7a28e8f171103be2291c/pyobjc_framework_localauthenticationembeddedui-10.3.2.tar.gz", hash = "sha256:5c4c01c6ccbc042b66d06147f24b6aea8f3f41bfbaefd26f2b441da6a5ee1303", size = 13657 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/e5/a393e16847f7605b80c643e961f60bed3c6c3b4758693907cdf88058a9bd/pyobjc_framework_LocalAuthenticationEmbeddedUI-10.3.1-py2.py3-none-any.whl", hash = "sha256:d69ef723f4525e6476e51bd166d56e97c9274500f98aa209a659e7567793dc01", size = 3559 }, + { url = "https://files.pythonhosted.org/packages/90/03/3938cfa6350e70b066a7ba7267e0a5f6c933679ec199f9c10274c5753f84/pyobjc_framework_LocalAuthenticationEmbeddedUI-10.3.2-py2.py3-none-any.whl", hash = "sha256:be046e8a9b0d0145850621c9dab2d264cbc5f79a34d55db8b8c6514135766ba1", size = 3560 }, + { url = "https://files.pythonhosted.org/packages/d7/13/56772c918f3564a749469f83afccc8a33ef385bf79f5f9b25cbc3b0822ae/pyobjc_framework_LocalAuthenticationEmbeddedUI-10.3.2-py3-none-any.whl", hash = "sha256:0bc1a4f2ac2e908e686c1da2965a9ef51f13e95fe8baee84d6d1396ebcdcbd08", size = 3554 }, ] [[package]] name = "pyobjc-framework-mailkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d3/1a/683f99e9af1966de9173c1696946ec52b7d45d346aee8a638d1104eade95/pyobjc_framework_mailkit-10.3.1.tar.gz", hash = "sha256:90ad82786ae01a275aeec842e73b1fef12d9f91a67edcde8ff6a145859dc9f92", size = 26043 } +sdist = { url = "https://files.pythonhosted.org/packages/be/e3/b394d68e0b8db1f9b6b055bc8751433ee09afd3a2d9fe080091bc359fd88/pyobjc_framework_mailkit-10.3.2.tar.gz", hash = "sha256:56bc122e7681ffff1811f596ce665f5d95df7619650710d9385bad9763965406", size = 26357 } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/99/b91c7329119c9ab2397307cb5e37f0e27a8a31fefbf8376cdc1b07b76ba6/pyobjc_framework_MailKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:7c403525e01bed0888946552e512ca4d1b018c3f6ef3d293fff85b90dc02a411", size = 4494 }, + { url = "https://files.pythonhosted.org/packages/a4/c8/7059eeb124d4a8a5dca28ae317e2fc2725a1cb93afa2d1bdb478af3ff24d/pyobjc_framework_MailKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:d0a6961d1adc0cda9c782265157365def72b65cfeb87a6552e2faf26fc42c0a0", size = 4495 }, + { url = "https://files.pythonhosted.org/packages/24/a8/15bb2e288cbb8df76e621305cf63883f3795db0d83046e0c85219a46a2d8/pyobjc_framework_MailKit-10.3.2-py3-none-any.whl", hash = "sha256:b13d4d0bb125e90215d4c933334c07ccd3e8b30ab379510513a42f924e6392fc", size = 4491 }, ] [[package]] name = "pyobjc-framework-mapkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -3316,311 +3355,320 @@ dependencies = [ { name = "pyobjc-framework-corelocation" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/f3/1f711e0311ddf3a838d1fe2ec1ab7c52cdb52d4a6144edcd2bd49becbe6c/pyobjc_framework_mapkit-10.3.1.tar.gz", hash = "sha256:f433228c404b9ef4a66e808995daccc1306f7123296317651078a6a734ac1ab0", size = 135465 } +sdist = { url = "https://files.pythonhosted.org/packages/00/a9/7b736ad9922c96183930db3a526dab59ff9e3eab5cd6c652ffed093ce6cb/pyobjc_framework_mapkit-10.3.2.tar.gz", hash = "sha256:7c3e04c4e6f2c85a489c95a8a69c319b135438d3aa38bd43d16bab1d0934978c", size = 135878 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/b8/03c9b2de80e18a53df9d0f0881fd08015beb4cdf8e4d28d76f25c6315089/pyobjc_framework_MapKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:cfee94ad82e673eaebc3159732b5cff1fc4f7e3bee6f17cc4fabd641c260b769", size = 22766 }, - { url = "https://files.pythonhosted.org/packages/48/76/e957f714814e21c25b579d4bb98f13b92c8f17f8666f8b4be89705a0a3c0/pyobjc_framework_MapKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:dd65d6eff1397afc0b2108b0e9387a6c2390b1387731a8e0dd8298b8d0641635", size = 22999 }, - { url = "https://files.pythonhosted.org/packages/e0/8d/d1248ff4a2ae562a0b00a19e4b9c1b5077045e7e9b6e7c0e4a45b39605dc/pyobjc_framework_MapKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ffadc4968c3d815dd8ffc2867e962546a8681620c704888dfe1e7aa718cb3d90", size = 16246 }, - { url = "https://files.pythonhosted.org/packages/7c/bc/cb3ccf25e51650bce1a91f680aadf646cf238dbe92a38b73fb5fe17badbe/pyobjc_framework_MapKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:f14f90bcb68baee70a838b3cecb9d909da43175da49cbe90dd6cca57c37a6ae5", size = 22852 }, + { url = "https://files.pythonhosted.org/packages/77/ea/846f441f5abd61d817f323d1eb007a4a1b708834d46621c7e17ad3641770/pyobjc_framework_MapKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:0d4e1fbc0ef04aeac430ed5ba4abd99a5f36b823b3e3ff6cab138addcd54190c", size = 22555 }, + { url = "https://files.pythonhosted.org/packages/90/9f/cb2b04955ef67dd1fbaa8a7c392aa8a0716f4457178f8a8686e96d04b0f0/pyobjc_framework_MapKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:f2ec324a7704fab6b991e499d35fa6b14b3a4d0d4c970121e8a76c3bda9b7d55", size = 22531 }, + { url = "https://files.pythonhosted.org/packages/09/3b/27254dd26833b04385ba9762861266c388e585baae58a409e839b9f3845f/pyobjc_framework_MapKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:dc5f524853412c06407e9e1ad0e544342c5251d238d9837d465e0cf651930eee", size = 15931 }, + { url = "https://files.pythonhosted.org/packages/a5/db/4ae370ad930ffd1d68f87188e0f2686e5ea03fb010684db1143d308bc0fb/pyobjc_framework_MapKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b8480821f437b5a4de3afe02e37fccd4bc6d185ae6d5c545e127542e0acd18e7", size = 22634 }, ] [[package]] name = "pyobjc-framework-mediaaccessibility" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c1/d9/e82531ed727311b54bbbeb9da0bec5c098b8cf8017d541fc77175f4bf322/pyobjc_framework_mediaaccessibility-10.3.1.tar.gz", hash = "sha256:c249e1eee636e77b5f00db3bf85174cb3e0cb53ca991a17e53a1f200377f4289", size = 16607 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/ba/1c5df04734fea28cb24b855fe176a80ebcfe55c8541a31c68b45701573be/pyobjc_framework_mediaaccessibility-10.3.2.tar.gz", hash = "sha256:b709ecc94cb2b04e7ab1d4ba5d0654c6fd24fb5c0b977d0a531d258178e409ed", size = 17011 } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/01/0adc256ed71a620be9fd357ac72b51a5b08af175104778201e0873de651f/pyobjc_framework_MediaAccessibility-10.3.1-py2.py3-none-any.whl", hash = "sha256:c4304ea53c7e85320b58d773cce2288f62dcb5b9c5a295be1ecfaa6645a9fea6", size = 4113 }, + { url = "https://files.pythonhosted.org/packages/3d/15/39296c0e64c17d3923d62bdd70cd590862395f3e082baa18de46bdc54601/pyobjc_framework_MediaAccessibility-10.3.2-py2.py3-none-any.whl", hash = "sha256:65ee99905df8be28fef7998e6683811e1c59c1278c49ebd80f9b77fabd6de661", size = 4115 }, + { url = "https://files.pythonhosted.org/packages/89/20/7836c7cffe02256885f9c6d4332f55c05b631c41932bd15cc39eb2c73864/pyobjc_framework_MediaAccessibility-10.3.2-py3-none-any.whl", hash = "sha256:94e633bcc4aea20093f2b5741e70c23288fecfbcd95d359cd63219b106b86b15", size = 4114 }, ] [[package]] name = "pyobjc-framework-medialibrary" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/01/1c/c8355ad906e2051a3d73bef221ce559f417cd58e94dc5af1163bd3669c09/pyobjc_framework_medialibrary-10.3.1.tar.gz", hash = "sha256:703ffd0904fc86d4fbfbbd4952be43e91a6d477c53ce2868e4c18c3eb295f5c6", size = 17661 } +sdist = { url = "https://files.pythonhosted.org/packages/81/98/34bf44d4d2ffe1dbd2641dba92f0ab8f34b172ff07b1e427e15dc7b87fd1/pyobjc_framework_medialibrary-10.3.2.tar.gz", hash = "sha256:b9070f65f93f6b892918021e4655cc1c68ab6757d8554e28bedbc1dceba92276", size = 17990 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/f8/d4afc0ccb1506ba85a873a238db934a83c349440f09c64d9ed287d5c5a88/pyobjc_framework_MediaLibrary-10.3.1-py2.py3-none-any.whl", hash = "sha256:25f16d610e3ea5d983175a6c07351596bd5dd2fcca194f1eac5686c670bbdb3b", size = 3974 }, + { url = "https://files.pythonhosted.org/packages/3f/34/a368b7876c6ca25da739c8abc56b94c4242aa02e7ab60c4e5d2deffb2db0/pyobjc_framework_MediaLibrary-10.3.2-py2.py3-none-any.whl", hash = "sha256:37f33b8a1cb3e8b6a2a02edb8cf842fef8d27c65f36fc1702aafa0b611411282", size = 3971 }, + { url = "https://files.pythonhosted.org/packages/78/88/872e020d4a381ea1c521764d68b8caceba1a0ea84be254e70e4a7dfe0fdd/pyobjc_framework_MediaLibrary-10.3.2-py3-none-any.whl", hash = "sha256:76ab6de61de1c4e77976d1e4dfde2f441246d74121fa1de52be08414ce767baa", size = 3966 }, ] [[package]] name = "pyobjc-framework-mediaplayer" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-avfoundation" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/10/00/6d991d13624e8e9288ee289945737bd7e48cce6df7497ee25f2c39c4d173/pyobjc_framework_mediaplayer-10.3.1.tar.gz", hash = "sha256:97043df5ef89d4fbe217813e8f4ee1e226d8a43dee4eac00fff95e6b8a7772be", size = 77337 } +sdist = { url = "https://files.pythonhosted.org/packages/25/e2/d06d712043f5dfe7db4aa69c5fbc922a8e30c8bf6c18070cd819b362c552/pyobjc_framework_mediaplayer-10.3.2.tar.gz", hash = "sha256:b57558c771ec922381333bf05bf642e1420785806c97b10d660bc6eb0740bab4", size = 77668 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/40/92912923eabb827ad6d97205d6091575118e312d58efd190766b38bb3b55/pyobjc_framework_MediaPlayer-10.3.1-py2.py3-none-any.whl", hash = "sha256:5b428cc28e57c1778bd431156c3adb948650f7503f266689559d0ece94b34e8a", size = 6548 }, + { url = "https://files.pythonhosted.org/packages/22/ee/0dfc122bd464c96b3fb5217b39fbadd812ed41992c0a920d3079f767b70f/pyobjc_framework_MediaPlayer-10.3.2-py2.py3-none-any.whl", hash = "sha256:6fa3a7edf52d0bf0668d51fbd5603151f39bd8ad7507f14385a92da1076c5aee", size = 6549 }, + { url = "https://files.pythonhosted.org/packages/f2/bf/443307f9fcab42c757ee6ad5128dc6053eda7de55178761ffa42d14b958f/pyobjc_framework_MediaPlayer-10.3.2-py3-none-any.whl", hash = "sha256:1476330e42cb4eb08ceaa20e66d06477b6a2c55897f742002ead6ad9d2fc4f22", size = 6546 }, ] [[package]] name = "pyobjc-framework-mediatoolbox" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/8e/a4abb578ad0207ef723fac1255738ea2a3fab3c5b0b0c49a3bb30463257f/pyobjc_framework_mediatoolbox-10.3.1.tar.gz", hash = "sha256:f141056dce0dc16ec21be596fea58acb4a668045f53e12a0f250990d936b44f2", size = 21516 } +sdist = { url = "https://files.pythonhosted.org/packages/30/87/73808a57088e6760d0c9b1be893e1f54947f54094330cfa982fff3613bc0/pyobjc_framework_mediatoolbox-10.3.2.tar.gz", hash = "sha256:0545b375b268594c3e0a63973d6efcce0310b39b316bd0b41fe5d60b3fa0e33d", size = 21849 } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/13/6e20282c95f86912f7883cfba346366eaef41148fd1f3de150bbca72b132/pyobjc_framework_MediaToolbox-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d4ef616e233c40fcac99298ee4ab95a9b6439cffe28e96ce07b66c00f598bd30", size = 13236 }, - { url = "https://files.pythonhosted.org/packages/67/dc/e05fbf599d579a6a77b150ee764bf7d3012bbe02dc386c11e7a45cf08d92/pyobjc_framework_MediaToolbox-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:a8acfa377b593b043e8c9ff1aa6cbbde92b7feaea60578ea2d0b61ac3edd15dc", size = 13297 }, - { url = "https://files.pythonhosted.org/packages/03/02/f0494b7b0556d8090efc19421c640bc8ee624b3638ead8201636c03edeca/pyobjc_framework_MediaToolbox-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f989f07304dae82b1307e179f185a80b66ed36b0dd15d1b3bf6ec8092b766100", size = 8145 }, - { url = "https://files.pythonhosted.org/packages/54/0d/ba00d64c83e4465f53f36af9e879749a1634b43c2ea0888a6bb7e0ce03a7/pyobjc_framework_MediaToolbox-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4114fb3749dacf6dd83113823b846e77671c0e8b1209ca6e4402f09e6727c185", size = 13024 }, + { url = "https://files.pythonhosted.org/packages/b5/8a/7162b34b000cdf43866c4950785b773905455d1522dc186c118a9ccbfc43/pyobjc_framework_MediaToolbox-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:a8aaa627956b9b504f6674acdfcdf3c80b9fc22decdd9063fcd459386d0a34db", size = 13054 }, + { url = "https://files.pythonhosted.org/packages/29/07/1e1f620c87fa5ea1a714d194762bbb35b1b8d0fd7acf9ae778f3e5f63830/pyobjc_framework_MediaToolbox-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:aed075e22d6a063ba8d679f61d1a7c17a51eaf7b4f31528bfbd86200edb4a3cb", size = 12916 }, + { url = "https://files.pythonhosted.org/packages/86/fc/7e0973dd7d723e6caed0030a616e7f244a4b9a7e801d977571843305c34b/pyobjc_framework_MediaToolbox-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc78f2a2a7a1c2d495bc9c69c300a941f70f5452f64acdc756e15c458ee8c76e", size = 8058 }, + { url = "https://files.pythonhosted.org/packages/24/94/130df05de871c29da12d4fc770b6d2298ec3b58b00f971919077db2499ae/pyobjc_framework_MediaToolbox-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:774b284e86ee09f36f7a99a4543db72f56f63c88eae730a086bdf188a9aa716c", size = 12867 }, ] [[package]] name = "pyobjc-framework-metal" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/5e/2df5fdb85a5753ebe6e1a1b1905da565a408a4f090f7c1d89f3a3143d18b/pyobjc_framework_metal-10.3.1.tar.gz", hash = "sha256:495307db0bfd2063f28b7c8fa350af71afcfbf5f5f2186a6a751b4cb2ef46a1a", size = 299751 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/12/a7695cab9ee18c2500ada306b283fc80f6628cb5fc396ee19fcc470bf186/pyobjc_framework_metal-10.3.2.tar.gz", hash = "sha256:59246982eab788b955f6d45dfb8c80e8f97bd1b56e1d678c90e91ad4a9376e35", size = 300113 } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/40/405b6d09b646756b450dfe9b47f9fb4c6a8cfc93dd94bccf2e4469c03ab3/pyobjc_framework_Metal-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4a42f3aa47eb5e0d3f29bf07f239c2ba33725701546ea6d3c5d019133e0fbce1", size = 55675 }, - { url = "https://files.pythonhosted.org/packages/2d/09/3bcf777771e3db8cf692d64395e78555dc158098eb6a49ebf8d55168941b/pyobjc_framework_Metal-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:cc33d05e376d3a2f42da24b397f6353d9cb8e5990c79c9255a82637b7b8f256c", size = 56186 }, - { url = "https://files.pythonhosted.org/packages/09/cd/763b1469d6a33687bae43a489599db7942f2788e1d9a1d499f132dd0a504/pyobjc_framework_Metal-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:22762ba170d0fc4538dd7f582da1fd7673160e369eca74efe3d6d35bfdd50522", size = 38287 }, - { url = "https://files.pythonhosted.org/packages/43/e1/86702984f0f229be8ccc6c3f02f2d3598b67f17e898590ba127229fcbfda/pyobjc_framework_Metal-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7fef3ebfd6cfbd7cbfe45aaa86dd32034303d933871d8450f4c990dbdefda176", size = 55756 }, + { url = "https://files.pythonhosted.org/packages/28/8c/b3eea5f2137694d107ffa276621d4e7b79fc2584f2144d27ee68eec85239/pyobjc_framework_Metal-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:3ba684bac796177c1646bf4da8d4acaa747f2598ca369eb8df8012db660e3cd5", size = 54712 }, + { url = "https://files.pythonhosted.org/packages/c3/3f/d6013e14be2217dc86d2be68421fbab832e4630c2196265db4670d635316/pyobjc_framework_Metal-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b83a72464df9e533e739fbc2a576a4d2c78bfedc826dcd4c821be9e08569bb44", size = 54843 }, + { url = "https://files.pythonhosted.org/packages/a6/21/88549e155912110d8fff35856d4ecb034b5ad5c56ae52836f5db92beec86/pyobjc_framework_Metal-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:17b22be2a312ee6512c9118a5b18c4eeed264a796de39af81677e0e198c79066", size = 37366 }, + { url = "https://files.pythonhosted.org/packages/5a/79/adbaf11e2cdb0b82a73f6d6d28a13bb553751314a503a16b6edc99968929/pyobjc_framework_Metal-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:34817e32470c4acdeb89b3fd8815c4e42ac27bcb034aa6d25b7855d97d48c15a", size = 54802 }, ] [[package]] name = "pyobjc-framework-metalfx" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-metal" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5f/b0/a479ef7219d4176806e6f49718da59feb1dc222605f45f5e06777a6c6a3c/pyobjc_framework_metalfx-10.3.1.tar.gz", hash = "sha256:3ea0f259397523a84a320b3925dcaaa5c039494accc3cb412b63e6f7f66f9513", size = 21547 } +sdist = { url = "https://files.pythonhosted.org/packages/cd/7e/409a363fba2ae9582d64771e64f5465908a08d8632f07d1ca64e7ecdd2dc/pyobjc_framework_metalfx-10.3.2.tar.gz", hash = "sha256:02e83be7f013a416af42605120431b01c4a02fe2c80f898b7e45f90c30300a19", size = 21954 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/4a/0490ead36e933453bf7de321a38831c5379753b8f748efd1eb2a1eb649fc/pyobjc_framework_MetalFX-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:ea4bed69e6a9ab4cd4fa6160554cb7df72316e849a34b839bf8d9c69ab445b24", size = 10514 }, - { url = "https://files.pythonhosted.org/packages/a1/f7/f4734b1d4fce902c6c5b57e095924f7eee03d960ff77e7f4067c16da5165/pyobjc_framework_MetalFX-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:f3ecae357688a4730191d57ffbc3db6abb950b756e8b98f23689d4bf08f34c20", size = 10566 }, - { url = "https://files.pythonhosted.org/packages/08/63/262ed4e448880398809e047d836a53b4310e61b4c737997507e51d221a8e/pyobjc_framework_MetalFX-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:0179ce8ac828b6d6e2542d2d4f68850290eb3f16112205a758419225dd51b448", size = 7042 }, - { url = "https://files.pythonhosted.org/packages/2b/07/5597fc8d24cb3b01b7fdcb1986a41e5f2edd9aae9ba253b4d736768ccc73/pyobjc_framework_MetalFX-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b3ae624f7e0a5c60b856889753af560b7cbd1a5f47db01f120a668e429afd1c9", size = 10490 }, + { url = "https://files.pythonhosted.org/packages/a3/2a/c17f1f7eeb3994447b17b5b29fde1be8fc80df113ff8a2a52aa97ea0778a/pyobjc_framework_MetalFX-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:b9bc0e6633360fb99199d6e5269b0091af47a0d41868d782680ad65026517931", size = 10408 }, + { url = "https://files.pythonhosted.org/packages/be/9b/733171d7841dfbc625af0f5276acc52829a5fd579f726fa815f11672e178/pyobjc_framework_MetalFX-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:a2cbf3bc72ddb81700457c96d5c7062fd4b22290cb18c32e72e6ca5fe9379d0d", size = 10371 }, + { url = "https://files.pythonhosted.org/packages/5f/98/0910701afa1849299488026b05d48f8f4f75bb89895f8036d4249ea9c9d4/pyobjc_framework_MetalFX-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2e19eee956cd7292df9df8af00240575292c79ef66c8d9cb625052cd0770d823", size = 6917 }, + { url = "https://files.pythonhosted.org/packages/4c/32/fe9496f06b2b7c36ae45eacb48c50db508b40942714405631957a62138c9/pyobjc_framework_MetalFX-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7970af3048f994546aa90172bb5066924b31bbedb16d510582c0e1b5366d406a", size = 10397 }, ] [[package]] name = "pyobjc-framework-metalkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-metal" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/6d/c5a782ee9def0feda16cf41c7326680f306293f4446185f3b0040e3e956c/pyobjc_framework_metalkit-10.3.1.tar.gz", hash = "sha256:905eaad9dce29082efd5cc56195337d2e8bff86ccfad36ec5127f818155ec038", size = 38269 } +sdist = { url = "https://files.pythonhosted.org/packages/64/f0/73fbc89e07f98e66666f7e7bf95dff809e270fc7e04ad9e89f67840e402c/pyobjc_framework_metalkit-10.3.2.tar.gz", hash = "sha256:309042ce797def3c2b20db41f471e939c9860e810c717a88665e5fdf140a478b", size = 38634 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/aa/3ec47cb09ae256e118f4f54f1759503714ff2a47474ba3f0fd7a83c3b5bf/pyobjc_framework_MetalKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c198c61d967812837538a793b1ff862bbd868d954abcd6ee558662c45c4dbf12", size = 8782 }, - { url = "https://files.pythonhosted.org/packages/9c/1b/d8fc542e7ca1c296439fbe17d96c45943ad265c63727e1d03f988a931246/pyobjc_framework_MetalKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:7c0155d731766be52cf18de6ad61339c16217bde330e17ef50808366856c1b85", size = 8840 }, - { url = "https://files.pythonhosted.org/packages/87/ef/cd801629d09a8d9f5eb9d95b8c1809c48752bd13d1e0ba049b73bb627ed6/pyobjc_framework_MetalKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:48ae5e7c81c97e231c52036c8e2acb22bb59feaf0cb13f7678c87b16d9faaf9f", size = 6581 }, - { url = "https://files.pythonhosted.org/packages/b2/b1/d38a5a62ab8a3db2728474370c3aa3e8fd21b889f2093eb4365c8f4bb4bc/pyobjc_framework_MetalKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:de632a7cdca1a0a13097a363dd441b9550ad91de6da6c88952c77acfd4b3a100", size = 9134 }, + { url = "https://files.pythonhosted.org/packages/80/49/db7a8146b5e83deace125266d92fb8e70e0b222a35aa0084c931a25ff4da/pyobjc_framework_MetalKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:a23af118759422859b4e2112c30eff96950ba804d5dec51cad2165d7fd4b1386", size = 8713 }, + { url = "https://files.pythonhosted.org/packages/38/ca/601329e8768de9e037769dee1d563164b6838998d2f93a917ebb657fd1f9/pyobjc_framework_MetalKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b531d8c9e01f036df8880281f27df1f305c9b30d6dceabc6dba372f52946c25f", size = 8688 }, + { url = "https://files.pythonhosted.org/packages/cc/fb/b14fe7b7a27f677c9eb74929f2652640f7f05f8505cfa4826326495aad03/pyobjc_framework_MetalKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b8ec4d313cfdb7595c7b20bf0e5fa8488de3aa9231dc79b0f00b9f1a83b36daf", size = 6489 }, + { url = "https://files.pythonhosted.org/packages/cd/9a/53f980f80e69c2ea0443742a02e438f9411ee5bd6595c342650ba438afdb/pyobjc_framework_MetalKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:8863a49ac557c7ec141618bd03b90ae1b9282a865f28a8a18581d90d768162b4", size = 9065 }, ] [[package]] name = "pyobjc-framework-metalperformanceshaders" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-metal" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4a/f5/d6b25e063691ab304ed39b3d8121262f661b2e56630bf3b07476134e08a4/pyobjc_framework_metalperformanceshaders-10.3.1.tar.gz", hash = "sha256:1a9e91dc9e748834c95b7a596b943203761f6533352631c7abe612f804b23d50", size = 215419 } +sdist = { url = "https://files.pythonhosted.org/packages/7a/d2/4f38e3c4f673dcf13d2e79e68e2e33382174c36416e423a1da30a9dc0cb9/pyobjc_framework_metalperformanceshaders-10.3.2.tar.gz", hash = "sha256:e224a9ab8fb9218bb4d7acf8dad946631f89ee0b8f800264ed57443e5df0982f", size = 215765 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/9f/ca54b26d1fbaa3589f00d3e55107b499017ec7f4972b46f808513f45bddb/pyobjc_framework_MetalPerformanceShaders-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:a6f72fd528033ff0b176e909394edfc34f90b711fc6dcb225ba41b042929b71a", size = 33033 }, - { url = "https://files.pythonhosted.org/packages/1d/93/58b86080d4008854fd071f4d46589d394133a4a61795ee55959beec762f2/pyobjc_framework_MetalPerformanceShaders-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:59c971d79c0d02a451571cd0122296aba05b46d7eecedea75ed8ce892d1119a1", size = 32981 }, - { url = "https://files.pythonhosted.org/packages/12/f4/1e02afb41d226afdf64b38c8a34af9f5690c08c988d1cb12247d82ca7c5d/pyobjc_framework_MetalPerformanceShaders-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:969bc8caea30d71f963fb763c8d837f36d403e47c1ff6ed449ceb09783322944", size = 26388 }, - { url = "https://files.pythonhosted.org/packages/0c/ab/1b7e063d30e65629c653f4af89cf3072ede8a3f99cb1a690dd73d7bfc934/pyobjc_framework_MetalPerformanceShaders-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b02da6a5dc9088cadf38dce21aa39027bc668493876d3af684b91f039f123df2", size = 33121 }, + { url = "https://files.pythonhosted.org/packages/a6/e3/3748a3566ac6d4ef7688dd981ec8935b4e745becc6c57e3727939785f091/pyobjc_framework_MetalPerformanceShaders-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:595894af4a3b2aa8ad2f48cbfd2af421ce065a232d7ed09a6d4441304e5d3272", size = 32212 }, + { url = "https://files.pythonhosted.org/packages/d9/9b/a2df9404f5fcb403ed455fa42618134b681574f8531d7a59eb042497becb/pyobjc_framework_MetalPerformanceShaders-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2689990eba79f5ca335e653fe4a1e754fb585451a6a23ba9c7737209f7478178", size = 32023 }, + { url = "https://files.pythonhosted.org/packages/c6/50/8fe17e6bc9b8672b3f08a58235114c57c7018644fd9e8f59caed363e583a/pyobjc_framework_MetalPerformanceShaders-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f0545eadcff8a576680ec027e5ae3919156ab5f40c112c177652bf7d8ee60cb9", size = 26026 }, + { url = "https://files.pythonhosted.org/packages/78/c3/cc6e1d846af28eda7ffdb69e11ee708f9b78b96e41113589542a9c4c4ee9/pyobjc_framework_MetalPerformanceShaders-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:395d4e43e9ea6a388a2eb7766f0224ffefa65c7c2b0e7b851468b1431b2093bb", size = 32365 }, ] [[package]] name = "pyobjc-framework-metalperformanceshadersgraph" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-metalperformanceshaders" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/0c/c00edcdc19f692d0d261d2a0c43f296f240c236704666e287e60dea23edd/pyobjc_framework_metalperformanceshadersgraph-10.3.1.tar.gz", hash = "sha256:4bf2045036f97dcaabbf16ee8527f1787c7e9366611b9b9ed4bfabc81c19343f", size = 81585 } +sdist = { url = "https://files.pythonhosted.org/packages/66/a2/7b0d61e70af9eeae2f428e3d5b8acaf4b5011d6cf07d23e539534510fe4f/pyobjc_framework_metalperformanceshadersgraph-10.3.2.tar.gz", hash = "sha256:d83a4f1343c823674d2dc2730a0f0bd6231ad54409cf467c6bd5fe4a9791c22e", size = 81917 } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/71/0dbf9660d2a31470bb6e5d5338aed82c1906c4624e8629e24cf612fa4e14/pyobjc_framework_MetalPerformanceShadersGraph-10.3.1-py2.py3-none-any.whl", hash = "sha256:a0288c53a024bc47348da2ccd8dc980d389dacc9d1d33b3412614e88732dc424", size = 6045 }, + { url = "https://files.pythonhosted.org/packages/d6/af/0d907121de5f621833e65ac3bfcbfa472483bd74650d8e1483051eb0c2f8/pyobjc_framework_MetalPerformanceShadersGraph-10.3.2-py2.py3-none-any.whl", hash = "sha256:b9b8f0ec18a299e095c79eacfc36ce6f2546a14462cf702efb8a9ec1954fc6e9", size = 6045 }, + { url = "https://files.pythonhosted.org/packages/e0/68/bb1e72e834e2fcc5cfa11bd92a6dd24aa0f118ae852d241001c98627ca2d/pyobjc_framework_MetalPerformanceShadersGraph-10.3.2-py3-none-any.whl", hash = "sha256:6136cb33f653853bf70b9818794cc2f79471f2e4f3d9434d16d5b929bb4ecbb2", size = 6041 }, ] [[package]] name = "pyobjc-framework-metrickit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b2/71/82f14e24708d44eb0c53b4fc57224bf5db8fa268c0632974abd6ea4b2e7f/pyobjc_framework_metrickit-10.3.1.tar.gz", hash = "sha256:f0b96fe9da0e26759f38d9e4cdf7d9c8be9c6ba35403bc8e675183a6f81dd0b3", size = 31749 } +sdist = { url = "https://files.pythonhosted.org/packages/67/e9/7bb34b031109e3cde9e8b59af4e1b66a59868ec57f40c3c84140ba281704/pyobjc_framework_metrickit-10.3.2.tar.gz", hash = "sha256:5a3b6f9a9db09a6521ab54610fd8f6a8644622ff248992e8608cfbe721efedca", size = 32121 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/7e/f940ff748d257d0c44415a4f7d1dfad1fa0fabb4d76f77bec62e780abf3d/pyobjc_framework_MetricKit-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:59b6959d6f79f71080d386ad08665c19e52d0cc57943716da180bbb3369c9569", size = 8165 }, - { url = "https://files.pythonhosted.org/packages/a5/c3/0308e5941f509f84b0026dd56329941d4a7bb3859028ddcf4acaede186e9/pyobjc_framework_MetricKit-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f73d240b5e8f2351d6c2258b71a6d06b45ec964523f54acf05af50dc4ffac821", size = 8179 }, + { url = "https://files.pythonhosted.org/packages/e2/16/ad778e7939c120db1089bb488339f9dcd9935fd7e7b0b41df29c6179263d/pyobjc_framework_MetricKit-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29bbc80d73b7a0c1ab4cae05c6273b363b467e4887fde3e4f6f7bfbcb8304ea0", size = 8041 }, + { url = "https://files.pythonhosted.org/packages/84/15/74f105587cfd82533a4f5c5cf5aa6b9c22bc9750838e7540dfc98f7ccce5/pyobjc_framework_MetricKit-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c95fb05070cae690d1f87432672a64d44026b354175eb49af4b228c435fa0b1", size = 8063 }, ] [[package]] name = "pyobjc-framework-mlcompute" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/9a/405b3091a514670d36d21a9f1a9441555ae3b6cc0e6913765484af1cf52f/pyobjc_framework_mlcompute-10.3.1.tar.gz", hash = "sha256:9ac94b0a9511fedceacda846865daa05358eec5a4bf62be534b69eb4d7aced9b", size = 68347 } +sdist = { url = "https://files.pythonhosted.org/packages/6a/83/d1af0d51ce57e96adb86c43507ec7fa6f6d3cb0ac92c4c881e04c88ec149/pyobjc_framework_mlcompute-10.3.2.tar.gz", hash = "sha256:be84c8ff600d2dde5abd9b5d27e4607a14361c6fef404803ad4681f6ecac5569", size = 68700 } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/82/1d9ad402910d9def7622c2b85a147364ecb31ad1add4a3ddb64c98f5abaf/pyobjc_framework_MLCompute-10.3.1-py2.py3-none-any.whl", hash = "sha256:e5f8d98ee43fc795f44dab322299cf8957d7e6acb54139cecebfc7f4b2562b6c", size = 6410 }, + { url = "https://files.pythonhosted.org/packages/c7/e4/51fcd5f13184c09d0e6044626b88e5ad9b5e0f24a11af1fb10aff8996696/pyobjc_framework_MLCompute-10.3.2-py2.py3-none-any.whl", hash = "sha256:d8755b4b74bfa8f6a96221ac18edce0d7a94158ab92b94cdb8a91f1d224ae497", size = 6413 }, + { url = "https://files.pythonhosted.org/packages/a4/24/0383000300a44432a3ee9f952a67dfc809da5fa465965fef9435e28c77a3/pyobjc_framework_MLCompute-10.3.2-py3-none-any.whl", hash = "sha256:7472f29e04478c06a20f6fcc90a0c85a67ebf4282f3d940382215191c85e74df", size = 6409 }, ] [[package]] name = "pyobjc-framework-modelio" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/d1/3020a89e0e1145b831351b1e0b34b89b3af7055843384c2a138d3ef4979a/pyobjc_framework_modelio-10.3.1.tar.gz", hash = "sha256:b1da37d10c38c63006d5173b49d18891b2db2c9acdbb6dbd21c73f17c0ccab7e", size = 93075 } +sdist = { url = "https://files.pythonhosted.org/packages/44/9c/93d1bf803924372e31547c1faef512c457f11ecb61ae6554d903cb1acf48/pyobjc_framework_modelio-10.3.2.tar.gz", hash = "sha256:ab0b2ed488e7ba4e4d2862cbc8629d309832bdfcdde3b0c32f87dd2d9e7134bf", size = 93453 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/fb/cd67b4b488f9c7463dfd9ddf4ed10796ecf9e20037b11143700e75b8568c/pyobjc_framework_ModelIO-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e841be15f1847ffe1d30e0efdbc57d3c6f1a2db7553946bc15dde0d8f57b620d", size = 21656 }, - { url = "https://files.pythonhosted.org/packages/d7/1d/b403003258b758287c515e40895806e0dd60af7329714d0267db7add00a0/pyobjc_framework_ModelIO-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:53d4cc794e0dbc94e622ed164556f82db723f9c3b2d9dbf72bdf44468eb4efa5", size = 21690 }, - { url = "https://files.pythonhosted.org/packages/a1/ef/929e4076ad6104d3f195c60f53f8cb52436829f0a3e3d1a168bb4a0e04e1/pyobjc_framework_ModelIO-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:856e8d63c10238f4b23d30b9fb903d64b9f2b44e4f30f30a28bfc665e1adc5ac", size = 16181 }, - { url = "https://files.pythonhosted.org/packages/29/e4/cb3111bd389461df071ed721734191c1aa9ec9941a7c40783de55d7a9414/pyobjc_framework_ModelIO-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b59069c79c0865334e0036b1938e009addf035bfec36f7d4d871037c14c7accd", size = 21652 }, + { url = "https://files.pythonhosted.org/packages/b8/c2/22848c2d1993852bb36d98ce9e104f996fc551cb8f11a48f0df59874ba39/pyobjc_framework_ModelIO-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c8668b6758f4c3b303263d2dd47160c61891813d3e7afdb9069f6bb2f5a914cd", size = 20894 }, + { url = "https://files.pythonhosted.org/packages/5e/96/580e595281aa664ed2a8cf9e23e8baeedacab9d66923524d006e97e64eb0/pyobjc_framework_ModelIO-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:acee6bea07960babf1d42e201af847090e061363ca9ad92660b58916556b2867", size = 20876 }, + { url = "https://files.pythonhosted.org/packages/eb/cd/14632e23b6bfdb91db4724c6a0465fba5f8e8b46db7a99cde12b74b7af8d/pyobjc_framework_ModelIO-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ef429310ccc062c7153287e9db1b6bb45cbb3d682a589376c8c5269b56189872", size = 15919 }, + { url = "https://files.pythonhosted.org/packages/7c/7f/1909d22c16e195deac883303e4de6ea7b3b77854e0d13afbf9987da32aef/pyobjc_framework_ModelIO-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b57cfcb1bbfdf96d80420060c468092e49d53806c45baa2d0dbacfd6fd12f943", size = 20881 }, ] [[package]] name = "pyobjc-framework-multipeerconnectivity" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/bf/14b2e58b3462ab15fba8fb07fa493da6531d6c8da07382ef2b63e429be4a/pyobjc_framework_multipeerconnectivity-10.3.1.tar.gz", hash = "sha256:eb801d44194eb7eafcb0a21094c4ce78bcf41ed727125b048755838b59de3271", size = 23441 } +sdist = { url = "https://files.pythonhosted.org/packages/dd/e9/f511850e84be7d8645e70934da5f80faa7bd688cd244a1dfbc76ef464870/pyobjc_framework_multipeerconnectivity-10.3.2.tar.gz", hash = "sha256:12f04aca1142ef91ac8292f76ab7fcb3c93eefcb1a1333073dd011cad97cab8a", size = 23803 } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/50/54225bb1e4f98f469531090efb98a5771c4696558f41ceea385194e0c272/pyobjc_framework_MultipeerConnectivity-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:1c0b65734f1e9b907c6198b035ad47c49819711c49694fe73cdf475be37db82e", size = 12779 }, - { url = "https://files.pythonhosted.org/packages/8e/e7/09d67a41a11c0c005200149cfa92e69a9c92f80381622f1f50f3936175e5/pyobjc_framework_MultipeerConnectivity-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:f0e466da15a3daf2c140be66da99ac0526b584fbd6dc08ed82e542e706964449", size = 12833 }, - { url = "https://files.pythonhosted.org/packages/4c/f2/c2aede1feb1517a64bcc9bb2341e4c76027b2287a2283d0ac42048bae17b/pyobjc_framework_MultipeerConnectivity-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:5538caad124908481ee43755d439898f9d7eb0f200856ba246c730ca5fd77e15", size = 8959 }, - { url = "https://files.pythonhosted.org/packages/63/8e/7c070f8cc3a302a3968dbd3318434c40e513440df07d9eb41b522426bc02/pyobjc_framework_MultipeerConnectivity-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:5350d13115b252bf6fa374dba1ef13ffd746b15b16f45d1b77b9231aebdf5b57", size = 12702 }, + { url = "https://files.pythonhosted.org/packages/4d/df/5b7c7915d2f7872fbdf2ad5df4dfb867161b5c63987cdbe67187a0aaa5e4/pyobjc_framework_MultipeerConnectivity-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c4b50190d9c6891de31be4a36beba8e093150dd448e94026e4645ee33aa1a7db", size = 12582 }, + { url = "https://files.pythonhosted.org/packages/13/a8/ed891b4f26c72e913de85510f65dcbe8635faf599fad1f96a0b3d3d17246/pyobjc_framework_MultipeerConnectivity-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:1edbd1dd5f0e137686e6236d59fa5f5d217558c9badfd52d68ee351330ff5ead", size = 12559 }, + { url = "https://files.pythonhosted.org/packages/04/04/f007eaec81170b1ecce0325b3b83161c0fce69fda349b565209fe6ca8eb8/pyobjc_framework_MultipeerConnectivity-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fe9a65446b303b6b6c23f66c57c3aaf780780fe796d6c04370d84afccfeeaefe", size = 8800 }, + { url = "https://files.pythonhosted.org/packages/81/5e/876900a911c753f0dd903b6a958a6f191c50b35ccd8a78786290079685e7/pyobjc_framework_MultipeerConnectivity-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ebb4e10bce3a298e4f5b9478f8a6a97393ea01590493725949b76b1633a23405", size = 12543 }, ] [[package]] name = "pyobjc-framework-naturallanguage" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1f/37/a0af80f8bb4ce27b5d6ab5d6bb8a71ea950cbdf81ec73c03b03388d8c572/pyobjc_framework_naturallanguage-10.3.1.tar.gz", hash = "sha256:49f19d0dba34802696a270d690db310ff03f1c85d6fb411734cb13667db90dd9", size = 39154 } +sdist = { url = "https://files.pythonhosted.org/packages/6b/f8/a7a3d00c1eb5bc8c1d7efd24e655e2f5100322d6adf4c5f12d77018bcc9f/pyobjc_framework_naturallanguage-10.3.2.tar.gz", hash = "sha256:a3a81148b24b744ce5c4289074279cfe4947a79ca9de4d88aa1dbdc44182dede", size = 39472 } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/37/7aabe277c3cfd6dc756959e6fa2bacf8e8e1c435b67e33f6a0c799e2a5ae/pyobjc_framework_NaturalLanguage-10.3.1-py2.py3-none-any.whl", hash = "sha256:d0e47fad66bb74fa68b50093500f5cb49d8a772b522f8c92e725f2e65942dd9c", size = 4923 }, + { url = "https://files.pythonhosted.org/packages/76/ed/108b676bad76e576a62e1fde8739ed172f6da809e555756cb8f3a870344e/pyobjc_framework_NaturalLanguage-10.3.2-py2.py3-none-any.whl", hash = "sha256:d8cfa0f37f89ce2737334b64b3c9412c18abb60613b0d3e691ffbc66e3cd5636", size = 4929 }, + { url = "https://files.pythonhosted.org/packages/4a/33/e691f99a4f585e9fb0b5e2b2b6e38c8f5b3d1a686b1bf4a1f48e3970a393/pyobjc_framework_NaturalLanguage-10.3.2-py3-none-any.whl", hash = "sha256:b684aa6a8023de2297c5673693ade2dbd0289950c6262d425ce7c90fefd9c4a0", size = 4921 }, ] [[package]] name = "pyobjc-framework-netfs" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/94/d467f7bc9efdf633f6cb40b83357f1cb91308efea2738f37b7c682e6619a/pyobjc_framework_netfs-10.3.1.tar.gz", hash = "sha256:46466917f7b0aca3772bf4dfd586b583992c60ecd71c39f7d28ff7665d057637", size = 15212 } +sdist = { url = "https://files.pythonhosted.org/packages/e7/32/c6614fa0255968b8eea59c76da292b6c65f9caf8929d5f524b8155c6e006/pyobjc_framework_netfs-10.3.2.tar.gz", hash = "sha256:931239d3a0171d09b089f229bc58add8098c0d45a37f8f0ef45059ec0d4e69d6", size = 15546 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/08/1a6effdc97f3eede536e66a7c7e1c50cce644e8d4d5e258a243985997b2a/pyobjc_framework_NetFS-10.3.1-py2.py3-none-any.whl", hash = "sha256:84faa7325c4ecc2f4ad199d8c52cebcb520ad2e7713f356c7a5a849839398d77", size = 3791 }, + { url = "https://files.pythonhosted.org/packages/ad/5e/ecd5b171be0148899b9ea783fa0edef066a8ffe17ef57fd542564d5b484c/pyobjc_framework_NetFS-10.3.2-py2.py3-none-any.whl", hash = "sha256:d728d2b69042a18e7441fcbc6109d3ee7fcd9b5afa43cf48c28e6b9ce2acd047", size = 3790 }, + { url = "https://files.pythonhosted.org/packages/bd/55/1e2d99036dc1d2c0009f8643a0d1ee0051c0c04be7065b75657612be309c/pyobjc_framework_NetFS-10.3.2-py3-none-any.whl", hash = "sha256:75089ddd8d0e2ca837ed64d0a0eeccfcc9f47d13ff586b427cbb64c2a6c8ba8e", size = 3785 }, ] [[package]] name = "pyobjc-framework-network" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/a2/547e786e3ff87e4facf038b0375d8fd4a48a8f6c69762efc7aac87b2d379/pyobjc_framework_network-10.3.1.tar.gz", hash = "sha256:87a5839d4ab2ae452b4e563bd7a00569557ede4b8cd1eb77c973cdf45fb8f5ab", size = 104030 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/52/6a1309a9b5766053ce5b2c7fed21751fc1bd9c8dedaf84d3fc6b2753bc98/pyobjc_framework_network-10.3.2.tar.gz", hash = "sha256:351a0eda913c84e3b7c0ffe0f1d4679b2bc21118ccc0e59fd4943326b23ba4e3", size = 104316 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/83/d8799253ebf55496dd0725d9ba4cd03260fc161dee6f128fd3e78ae6a79f/pyobjc_framework_Network-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:56df88c10b948b3b09dd6d0e9061da33683e294d0450efd9076354f41e214f58", size = 19084 }, - { url = "https://files.pythonhosted.org/packages/43/ce/d5e00d0dcf234a0269c079948c855467f5af0464d4d1d44148c20c69f602/pyobjc_framework_Network-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:0336fc0b80a2481d3a032b94e7dfddbb8d0f1ec10e36e80ad424a028b00679ac", size = 19128 }, - { url = "https://files.pythonhosted.org/packages/cb/9c/899932cbf529094f2bf4be1eb863fa78a791dd1095ad0ed92d4e25d11e50/pyobjc_framework_Network-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1e2cbc4d209b6789d8a3bd85cfe472bae50ca2d54355beb25b8336ed65d846e0", size = 14613 }, - { url = "https://files.pythonhosted.org/packages/6d/04/1a5d7daa7704ac3d096a3c76a3ffde49df5b836a7f6f355e72f95f7fbdd2/pyobjc_framework_Network-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c665f3dcfb1375835dd0c6ce10079f22be73f92213fc3d48b176d9c67fc221a9", size = 14385 }, + { url = "https://files.pythonhosted.org/packages/a9/b0/cad0271dc3b87279fc3c1109c8297758535c33899309e96ed768ef2181a1/pyobjc_framework_Network-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c4b3f36a7869b4b69ed497cf99798339921c6ffb0e2796df2eda120a184cab18", size = 18972 }, + { url = "https://files.pythonhosted.org/packages/78/9d/44e18e433ff8ff1f05b18b094c419182d6405ce3bebe517960a8f3e8b6c9/pyobjc_framework_Network-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:07b2c9395c194346b2b8bbb146f46b23d0eb8bcbb0e378c186ceb7c1542a89f5", size = 18956 }, + { url = "https://files.pythonhosted.org/packages/ef/0c/4a4d5abcf96b92ec8a54653a3f11c31dd25b57095757b9221264af831912/pyobjc_framework_Network-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cedf79a69c0e9039b58b217f1769a282f0f19320d5c4831ebd547387794717cc", size = 14544 }, + { url = "https://files.pythonhosted.org/packages/f0/30/4619dac55319fed574e2bd60cf1e708a032fb15a445a82858cf42070ba79/pyobjc_framework_Network-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6e47555e25ffd986a09c677f9a13d758163100450bb31612d607e404a0c0cb79", size = 14360 }, ] [[package]] name = "pyobjc-framework-networkextension" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dc/46/1af5ad27f16af7ef97cced31dc70d92cf85c08d1e15a32997f9e40496601/pyobjc_framework_networkextension-10.3.1.tar.gz", hash = "sha256:c5a094862061565ca6d37457db42f55f344ec24dd7604ddf5d72e20ae7f63fdd", size = 130653 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/91/132fc6782b988b67c6e65d569c5a83c8cf567ef38d6d69016ef7acc902b7/pyobjc_framework_networkextension-10.3.2.tar.gz", hash = "sha256:d79ebd6fa4489e61e95e96e868352c9cef20c48ccb1d90680300c814b659529b", size = 131032 } wheels = [ - { url = "https://files.pythonhosted.org/packages/35/fd/085d7b5ab96a5eec797933246e268773728d58ce4cccfbb06bc210590c4f/pyobjc_framework_NetworkExtension-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:baacdb4ad595d5c5ce9660e10ea476fab9bfd1a1def2357eae7918f5019bb8c0", size = 13808 }, - { url = "https://files.pythonhosted.org/packages/4d/e3/3afdc6ec7c8ecf596b35b3e32f95fc23d755ce42af40375cd96041eeb587/pyobjc_framework_NetworkExtension-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c1efc35dc4ddced3f0e5400e8ae9b28b7585f0cf5701023dd957f3cbd58d361f", size = 13864 }, - { url = "https://files.pythonhosted.org/packages/2d/b2/c907e55127ade6d290f89c61ee20066def925e0b7f539d602d13bb221a08/pyobjc_framework_NetworkExtension-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aeba32d9b9809bb1296d85da00f0c221daf54b25fd864dc9bf03a7007f5ad601", size = 11564 }, - { url = "https://files.pythonhosted.org/packages/d8/df/34dfbcc84a34b3edd4813da0324091f83da64a8d246738903f947c739e94/pyobjc_framework_NetworkExtension-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:1c8ef5fce8846fb3bf459bedf7a31ff0428a9c3184c8b26ced8e322c956e8ec0", size = 14222 }, + { url = "https://files.pythonhosted.org/packages/f0/49/b0d984409fed5d7ea9c482f32d2c311e3fb3c9727dc0e8ebc4f7e3eb5e73/pyobjc_framework_NetworkExtension-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:fc85398073d1626e4e4cd87b9f152489c2fb54361eac9424d786927170e24a9f", size = 13748 }, + { url = "https://files.pythonhosted.org/packages/c0/64/b06272c35f3c72b0dcff9df97d143aa36395fe9d1b3bdc859fb494070503/pyobjc_framework_NetworkExtension-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:1866e6d65ca4d86ef2cc12d321fa39d842fb5ae4c5b6ae826daea2ff07373a13", size = 13720 }, + { url = "https://files.pythonhosted.org/packages/18/cb/575065d39a56ee94118a7a9f2ec0d9db52c684bd9db70936d4998db1cb6e/pyobjc_framework_NetworkExtension-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c20fd0bab4ac386b198616a1dc77db9b1f61354afe36bf38bd9867c3d35e4c6a", size = 11457 }, + { url = "https://files.pythonhosted.org/packages/c3/3b/6c6fffffdcd5f1c70de6e2ac912347a3613e076dc0f66bb98b41d98bdcef/pyobjc_framework_NetworkExtension-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:9973a5b4b7d623180c1efa33c42760c48f4b5c119000917d3916b84e9433d532", size = 14171 }, ] [[package]] name = "pyobjc-framework-notificationcenter" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/a4/105abbec54e815ab9de653bba08db37524589c369badab6e1a5e3bd598a3/pyobjc_framework_notificationcenter-10.3.1.tar.gz", hash = "sha256:3e6efe0fe6389601bb87086f5585fa7e74b2143236b7d5afd02b617a73656419", size = 21039 } +sdist = { url = "https://files.pythonhosted.org/packages/35/ec/befdaf13ca4a9056a3760fbb95ae581b0484dc2b5749be30326c9ea2a799/pyobjc_framework_notificationcenter-10.3.2.tar.gz", hash = "sha256:d0dc85e4da0f0e139e032279893db4827595f8f11830080e294f63f57e984c1f", size = 21367 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/f8/eb4a4703d3b91d91ed050411ac129612d11ce34f3f01cca8c7912cc08ea1/pyobjc_framework_NotificationCenter-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:2818922c2c3f45721515733b452d20a507368a87b793fa976c21945773582abc", size = 10603 }, - { url = "https://files.pythonhosted.org/packages/0a/6e/3be21a76248fcfb4c703bda266f2b289bb0df07ad1ea551209d71ede808b/pyobjc_framework_NotificationCenter-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e08264759b84a21631e143afce1696920207d418be7f8853dbde18dbc7881667", size = 10668 }, - { url = "https://files.pythonhosted.org/packages/82/6c/1d18ab74c090818f4c7be1ee9d126ff4c272acf28db0fac65cdd77a9908e/pyobjc_framework_NotificationCenter-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1560edad4e9fe01cbf3a70bb6e2668985e13903497d3fdc92276d6cecf9e4742", size = 7127 }, - { url = "https://files.pythonhosted.org/packages/57/59/bdf3194bd3693132370f4cc1a002bde09dd248f2a49026e5ec4785970083/pyobjc_framework_NotificationCenter-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:992ea7c86d0330cf10113b829525d74a95d97d0d7245e4e277f75ecbb37b596e", size = 10524 }, + { url = "https://files.pythonhosted.org/packages/45/8d/697597e6823d3467b4288d3b52ba333631f5ed6e49859d55e84de1690469/pyobjc_framework_NotificationCenter-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:573e45bc8726296b3830690b2896a8f2e1d6b5d15a4010b34cc1656bbd6c4311", size = 10426 }, + { url = "https://files.pythonhosted.org/packages/bd/dd/a17d894e8039d80065f89d4e05f9616375b75e585bd873dfc1123ecceab1/pyobjc_framework_NotificationCenter-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:fe43ab134afcc08a9006cb04143473e6757bc59e9e7c4957c99ab9cb09a9bdb4", size = 10374 }, + { url = "https://files.pythonhosted.org/packages/13/4e/0260b61f5fed08d51209e345783a66d3d4585a9793eee2dedd5acfbc56e2/pyobjc_framework_NotificationCenter-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:5659d3cf2bd217b7aa9039e657c7939e6bce59b7e4ce170319aa01b8a1926cdd", size = 6990 }, + { url = "https://files.pythonhosted.org/packages/e4/41/780412624dbdf5fd988b7534a0d4a60b02b172b17824e68c2eec96c77804/pyobjc_framework_NotificationCenter-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:313e3c38c49f29c46c1d2d94df0a1c79b8538f97cef3ad778635ad4ac9384d0e", size = 10354 }, ] [[package]] name = "pyobjc-framework-opendirectory" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/32/1e/85e8d9ea9ee43a111a6d278c5006a3a58c4573af60ba7932402cb3ca5e84/pyobjc_framework_opendirectory-10.3.1.tar.gz", hash = "sha256:cddc25632eebeb6bf0d886ae0fc919d574e458c597691226ba15bbf134ab51a6", size = 159659 } +sdist = { url = "https://files.pythonhosted.org/packages/8f/cf/5e0c2c3b1c29f3869c17149a69d3142b93343161af135c2a822404c8a61a/pyobjc_framework_opendirectory-10.3.2.tar.gz", hash = "sha256:d506f66c888284e50edb766222d9e3311d9a3ec51b561df1994c498233730f62", size = 159962 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/17/74c8d815ddd43d206311baf00237c8a14c4c3cb7ad656ef33afcfe370655/pyobjc_framework_OpenDirectory-10.3.1-py2.py3-none-any.whl", hash = "sha256:7e787e65409aad082faed2ed0c2cd52cccea61702d9c83b6acdcac3fa50a562f", size = 11425 }, + { url = "https://files.pythonhosted.org/packages/3e/2c/11c3118709be26f58b510bb1eeeaa7d536c2610d72fef37b598eba338ab5/pyobjc_framework_OpenDirectory-10.3.2-py2.py3-none-any.whl", hash = "sha256:276eb1615898e134e0bedd142b9003db65db5d542696c796567bc223882bea63", size = 11427 }, + { url = "https://files.pythonhosted.org/packages/19/76/ce9d2bea40e3def7055547c14ed5f59c5f77570109408b36a195a56264f5/pyobjc_framework_OpenDirectory-10.3.2-py3-none-any.whl", hash = "sha256:2f4fd45bac828eeb17c778cf8be0883f58828baa59bfdc3ebf5876aad1318627", size = 11422 }, ] [[package]] name = "pyobjc-framework-osakit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ce/db/2ee141472cb30079b8881d4839f4d46d38bed2e78e04d5ecf44885d05cd7/pyobjc_framework_osakit-10.3.1.tar.gz", hash = "sha256:0af326b831fa29fca11ffe2b641807ad3c233be9eb403e62328fa784528da4ab", size = 18286 } +sdist = { url = "https://files.pythonhosted.org/packages/19/5a/11674938bd217abdfc5ccbd23ebfc0bd21f003cf2609cf545503efdd9214/pyobjc_framework_osakit-10.3.2.tar.gz", hash = "sha256:2a718d4bf08d1b09d41eca1131604ee87929b991506d56951e992e2112a0b4e7", size = 18610 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/37/f644ff0e1013ee25a3c543f4240687f7ab79580df401cafff8e5dfea278c/pyobjc_framework_OSAKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:aaa60e6f455febe45f9be6487c59f11450de81bd7f49a6e4db576a38bcaf1c68", size = 3784 }, + { url = "https://files.pythonhosted.org/packages/57/ae/4c69f54462d8282ca2c633717fcfe5706a85fc660e658f2099d1af791bbb/pyobjc_framework_OSAKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:85d19162d36b94db640a5811351995cfb86a59c28fbd4ee383c3fc5a44139e54", size = 3786 }, + { url = "https://files.pythonhosted.org/packages/09/eb/3f88a1cbbde852869378530567867cbda21306bab82bae416357a54ef51c/pyobjc_framework_OSAKit-10.3.2-py3-none-any.whl", hash = "sha256:86be4f7f9167e7a84e15b218d378ed6b9e301f5b6c000e313e6882a99aa13b04", size = 3781 }, ] [[package]] name = "pyobjc-framework-oslog" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -3628,609 +3676,625 @@ dependencies = [ { name = "pyobjc-framework-coremedia" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/ba/45a84a9a26608c8dd2d909f8ad8183434c17b1d4071ce910388c80a07637/pyobjc_framework_oslog-10.3.1.tar.gz", hash = "sha256:592c3e50cf824c2c07779771aa0065de2dbb4c615de43e8949b39d19ba04d744", size = 22288 } +sdist = { url = "https://files.pythonhosted.org/packages/92/1b/1a404937e72478a6698ac935b7dc0e754b76459a913c6dd26a042a12ebcd/pyobjc_framework_oslog-10.3.2.tar.gz", hash = "sha256:3f9680b737130579e1317e8bb25d6eb044a1a9569b9dbe33c056654a0d40efbd", size = 22643 } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/ef/1d18049de4f5d459107e1703cb42d3e159dffa988bc9968ec43c7cef3742/pyobjc_framework_OSLog-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4799619f9ae12287923e2bc39fc021c75ea4e8bcb0e8ff44201f1018d017db98", size = 7898 }, - { url = "https://files.pythonhosted.org/packages/08/94/609913d615527e891fadf4b3c319ce6df143c5c160ba5e69904fa4d2a666/pyobjc_framework_OSLog-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:7ff719367249c09318a87df47ef8e1c8d18ab5f4b9e94862e7ca9c8fad21ed9a", size = 7958 }, - { url = "https://files.pythonhosted.org/packages/09/d8/faa0f2c72c2a24a3fa44c9d56f613e4ccbd213cb2702481dd750acfd7d0d/pyobjc_framework_OSLog-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:5ae0848bf6de69c95802f11bb4aff5c2edac5c5e6179b9a06a0e4fe05ed48b53", size = 5790 }, - { url = "https://files.pythonhosted.org/packages/fe/33/8185fa32c8705f1b16b0d91b62ab290159d7611f2cf46db0fea7c8c87703/pyobjc_framework_OSLog-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:cded4c706fcf3fd78ef257ab096f4f8cefc70cca81553d2fae88841aaf5d620d", size = 8054 }, + { url = "https://files.pythonhosted.org/packages/22/7e/397f1b87759d399efa1c2422ac80733a97133946c7cc02bb0eb017ddad3f/pyobjc_framework_OSLog-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:958c7cbaa87f6da0dc89092010249b4f880c748b735ae4343c5e60dd9e0c0a31", size = 7828 }, + { url = "https://files.pythonhosted.org/packages/56/10/6e281f06ecae1f490694e52eed475f8ce3dca8f71659de9a7cd9c7b15aab/pyobjc_framework_OSLog-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfa98b576c67cdebe48f6bf0a3a4bc29fb9d80f78c9f2056b01cb97215b7e0d8", size = 7796 }, + { url = "https://files.pythonhosted.org/packages/f3/53/066e596b9e0cf21667bebefd7248437f8b316c2937c6df6e48fa0ef78d52/pyobjc_framework_OSLog-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3659796f54ebeb44e186da42b4d7af6fec7a2a8c78d2145ff235e0b4fffd5d69", size = 5687 }, + { url = "https://files.pythonhosted.org/packages/c4/16/d1962e9de38e8b1b160c8b7cb5bbe56faa5c6aadd8935c09365218474d5e/pyobjc_framework_OSLog-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:43bc2ec01fc6d527ba6880fee1d5b5b500f3e2b30c8b5822bb290fa8f3af7a95", size = 7995 }, ] [[package]] name = "pyobjc-framework-passkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/5a/8336d8fe6371e7696235d131d042572156299d6a0c566a5854f127270adc/pyobjc_framework_passkit-10.3.1.tar.gz", hash = "sha256:4c3eea19c1ae3edf6e7858ab815bcd8ecf517a146928ce6a843910729372f010", size = 94853 } +sdist = { url = "https://files.pythonhosted.org/packages/83/4d/c89c17233d3e3510c7d609384f71fe7b70432f15d16e31ae61deda8c03cc/pyobjc_framework_passkit-10.3.2.tar.gz", hash = "sha256:e85d94062cab45b99dc7123f8de048720730439b66d3b0386eabddb8856aaf12", size = 95237 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/ba/9e247686f64ee75840104d4e85a2c21316ce6abaa0697b0fa826edd69442/pyobjc_framework_PassKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:ce09205aae4e15d3639d76a558c072ae106e8c7dafe9a451c5e27967498b74cd", size = 13868 }, - { url = "https://files.pythonhosted.org/packages/6a/af/081c1c6fd9bbcd93ea983e5ea2111011c669c96cc6d6146e07f570aeb136/pyobjc_framework_PassKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:79ff6fa8ad4c0f9b4a992122b22e2b2b4200534221eb1bfe86bf473fb3c7ca23", size = 13907 }, - { url = "https://files.pythonhosted.org/packages/27/f3/092e31c4892f50eb4b94ddbf29f6a7b658820714e40fdd6e5cf4b22c00d1/pyobjc_framework_PassKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bbb71ac6fc51da06d0fd6cb4d83eb79b704c2bab694a93899d3f83c753c9740b", size = 10785 }, - { url = "https://files.pythonhosted.org/packages/e8/c3/b1a04f416c25f0f4c194137ba8ce4444a7c0e7f3b42b38b278e3a707ff5e/pyobjc_framework_PassKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d41409ee24eee2318023c3ba23218db152fc262ebcbea9021dc533fe80a73f32", size = 13787 }, + { url = "https://files.pythonhosted.org/packages/ac/98/2f79e705d7074509722479f8e2040e46f2a12ed5e35ccf9da19f5f0a1f17/pyobjc_framework_PassKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f37d18fe27453a845ffdf1bb70d9a9f48ddb117ad6ad6f3fd8863b09294c5ae9", size = 13760 }, + { url = "https://files.pythonhosted.org/packages/17/59/b0140880ed90376f97eb30aa0159b54b6627b2552051a89cc9d985c28d01/pyobjc_framework_PassKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:202f716409b9c9fb3a01183db7b46bdd26bd2556184f9ac4e71b67c2d2b0d6bb", size = 13730 }, + { url = "https://files.pythonhosted.org/packages/e5/c1/57a69723e67269493076ec758f8353d493bcfa73155b67c1ebc1a06b70e3/pyobjc_framework_PassKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b433fbddc78f9fca0d7e97268c8f2529e376cae44a4681a6012137c7288025e7", size = 10684 }, + { url = "https://files.pythonhosted.org/packages/6b/8f/a316b95eec95c68805ef82ac2ef42b2d9ab1491b8d15e142ebd7235b7d75/pyobjc_framework_PassKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:fedb99158ba5ba1c437e2fd4b0d408b0e0590ca58e299ddda7db7d99fe83874f", size = 13687 }, ] [[package]] name = "pyobjc-framework-pencilkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d2/8e/9152ecf82135f5f6ec94f4b407948cdee9b8f01ead2896613422dbfe8ef1/pyobjc_framework_pencilkit-10.3.1.tar.gz", hash = "sha256:4dfd8e0179be5ecf67b768317a88d86d93df1c8674d422afa14957cf80e6e01f", size = 18784 } +sdist = { url = "https://files.pythonhosted.org/packages/48/83/630fc7219b046446705771406d9ae6ec027878478e7d8699892786aaec21/pyobjc_framework_pencilkit-10.3.2.tar.gz", hash = "sha256:2390317a7de5f68fb9594f9eccbe55183ee5f40a7efc59c827c5fc2d4abce508", size = 19159 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/41/a15fd222e8f9b28ab18440ac3d4c2aca98c640f2e1456dbc018c451c7556/pyobjc_framework_PencilKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:dc05376fbc5887391ff4e778b6f4b2fa20264aac58cd5fe5f47e4930186c1674", size = 3653 }, + { url = "https://files.pythonhosted.org/packages/4c/fe/94ac0bfe7a93dadf3cce2b9893b7a659e8f2db4faadafb52c7ea04394a6a/pyobjc_framework_PencilKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:680a17eb204db9741545259be29e747f0fc0e35ae9c8ba889ffe4443236b19d8", size = 3660 }, + { url = "https://files.pythonhosted.org/packages/0f/cd/ae0f42e684b7be5924de8f7815b6e8482c1eceb692cec69fe3541c2a6677/pyobjc_framework_PencilKit-10.3.2-py3-none-any.whl", hash = "sha256:a0780237de28e1cade0f3533d94ebf0c4844ca809eed3dea70e94d98ee708251", size = 3656 }, ] [[package]] name = "pyobjc-framework-phase" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-avfoundation" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/7c/57e7a130932027f11ce8bfb68e8a6a910b9ec11c8bd4647605d0c6ff1ade/pyobjc_framework_phase-10.3.1.tar.gz", hash = "sha256:5be2ea5d36ea9620f5278f5ad3b02cc243511be3b137aa28b1523e8f6da54f99", size = 43938 } +sdist = { url = "https://files.pythonhosted.org/packages/67/ff/088a94515efb4c9be86bc45ce1024a924f71a7a836462a9177da42447c0a/pyobjc_framework_phase-10.3.2.tar.gz", hash = "sha256:87a0f4d2e6b9db186fda3e700cfc52bc15a9d38f53f5cb3335be93c75d7cccf2", size = 44249 } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/5b/948fcead87fc9badb4de137829423ce53f1d03a5f8d873e4d0cea01745da/pyobjc_framework_PHASE-10.3.1-py2.py3-none-any.whl", hash = "sha256:eec5a38983d65a4cf022dd01dc6f290ec163399e79592203443b4115ea3c8510", size = 6233 }, + { url = "https://files.pythonhosted.org/packages/d8/6b/cdd547dc958ab14cce0843f8c848c136b9063598a32ae412c0a1ce7d6c06/pyobjc_framework_PHASE-10.3.2-py2.py3-none-any.whl", hash = "sha256:24791034d0c81023d8fd4d22a0373ed508a1624410c1364d4db12c615f6f0247", size = 6236 }, + { url = "https://files.pythonhosted.org/packages/36/c7/39d37817d10b87ebbfdc10005d41b79ead25782b3a6d8737556450093d97/pyobjc_framework_PHASE-10.3.2-py3-none-any.whl", hash = "sha256:a5a6672ed560b264e7f89ca5e50fcd5f3d2a3c5bd783cf5e85468d1efc8bceef", size = 6231 }, ] [[package]] name = "pyobjc-framework-photos" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4f/e3/764707657dc2ee986510ac137dfcb98ca3498fa21ed7c79e711df3b85736/pyobjc_framework_photos-10.3.1.tar.gz", hash = "sha256:8d538c399720062523694f7669aa82dcb75a7b192fb4aca93cf782d04e4c39be", size = 74176 } +sdist = { url = "https://files.pythonhosted.org/packages/ce/29/43357f5a2a57972bd4cdd4bbc5a914cee4e4eb1f9a9ba6b0aaed2f6308e3/pyobjc_framework_photos-10.3.2.tar.gz", hash = "sha256:4aa7180a45ef0b5245a277980c2be32195d6b512d66f8abbfdad480466e06434", size = 74548 } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/e2/7e46258b4c0f75a48e639bc1423830c34067b101bd5512c80db4a6554b1f/pyobjc_framework_Photos-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:9a382201dd14a3f3076d8689267d63520803a1ad1716fb66df5c1bb578bc6384", size = 12793 }, - { url = "https://files.pythonhosted.org/packages/ef/20/3fcc8803c0503bfd7e7f2fb81889d1f41f12cc1660a1b37f31743d271821/pyobjc_framework_Photos-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9c72efff52bed483b0dfaa569a21355f7620f25672a0245c5db8c1df86abc7b8", size = 12850 }, - { url = "https://files.pythonhosted.org/packages/3a/14/8eff6e370acfff5e75902ccb66cbea6d609e54dba87501570642b44cae2e/pyobjc_framework_Photos-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:4841948ce4fe3d5060ec08e760b0b6e476e923782f32b9af2ffe8eb2a4fbb385", size = 9744 }, - { url = "https://files.pythonhosted.org/packages/17/25/83a32b4743b63c7262c476bd0acbca8304e942483e599acade70aa0dc345/pyobjc_framework_Photos-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:50710703d18d0b13c48e02ab4edcca72a67ee20aac2a75664bfb725c8cb3a677", size = 12687 }, + { url = "https://files.pythonhosted.org/packages/89/de/6335cefc3dedd876a2fa30bfb86ef3f83fc8dbd088c32d925b8735b65770/pyobjc_framework_Photos-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:2a8453c5069ae6929bbc0880a0979d4b72986541366e2d0c4665c0874cde832a", size = 12211 }, + { url = "https://files.pythonhosted.org/packages/55/60/e5bc1fd38551bf8bfa90294fe196144c0b6e0a1202c0e5684be08bae339a/pyobjc_framework_Photos-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:95b88aaea9f96489195a9e9957d02588ed1968438998d2afcf0cb6b15d959670", size = 12170 }, + { url = "https://files.pythonhosted.org/packages/26/32/a19d5e44d99b2a9b7e0e74ff3aca8256c7513c4258da873695454da8b658/pyobjc_framework_Photos-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fa8edf4669c3ef6561f3cbafda9776f4183b358f492a77c67da1a8f515f72634", size = 9632 }, + { url = "https://files.pythonhosted.org/packages/af/0d/dd7e6bc36b19610ed4a26db28814992d1c72136a246f06d82f8ae9bd5e07/pyobjc_framework_Photos-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:83bf410aa6e6dfdd0168df4ce2962cdb2a92c73e8422962642010467d0fd1749", size = 12574 }, ] [[package]] name = "pyobjc-framework-photosui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/aa/34/6ee322114383d37c4921fc15e41ba4595347f0b108e14d6232e540d77c5e/pyobjc_framework_photosui-10.3.1.tar.gz", hash = "sha256:e9eb961c6be1f3e00d76cc0a8ec15b50ac0692bd5b5c86268ad08f6d09cf390d", size = 38914 } +sdist = { url = "https://files.pythonhosted.org/packages/6a/78/c30494b5207d1ece728541ec21632317a054a6bfb8aecdac770c79d8ab72/pyobjc_framework_photosui-10.3.2.tar.gz", hash = "sha256:0cafb53b9c6014c524ee230d3278cf224e44c885e1166524db9160f8c928e6ba", size = 39302 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b4/69/422c3f59a3d9f632aaa2440d2cf7f80cd22b6930ef965a0892923bf8b879/pyobjc_framework_PhotosUI-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:88665561d9ef7e9fd2ceb4e7e5da0fc3412a397d4c48a2121250462781106d30", size = 12574 }, - { url = "https://files.pythonhosted.org/packages/09/69/5de76149d57fd1a22cfa8be06e8f7bf76a334e488abafbac6e39773942ac/pyobjc_framework_PhotosUI-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3254605c33e090742d0303a3b5b8ddab5489dbf28ea8a287566106e6887ee561", size = 12626 }, - { url = "https://files.pythonhosted.org/packages/95/3d/c7b7147d02ecdea07fc0ec3bad0c3f4eafa4297e83e02aa336ab4b962d94/pyobjc_framework_PhotosUI-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9370e36bb4ae1e7128006ff6a6b43448ebf8586784749e2a1fa30bbb2ef8fedf", size = 8573 }, - { url = "https://files.pythonhosted.org/packages/65/f2/df518ac867baff73fbf91f7a9e97165065f9db96785c45b2bda6d68d5774/pyobjc_framework_PhotosUI-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:a756c3bbf945ceaa7d184c41053c2a9c1a89b32ffcdf752664b1180927b22cb2", size = 12506 }, + { url = "https://files.pythonhosted.org/packages/69/f2/acda4a9592c414807a29193ded54c6d8d5cd4f8b34fd18dda2551345fa4f/pyobjc_framework_PhotosUI-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:574f03450feb9280904c32dc97c11a00aff1ddcf36250b4d8b100fc14509a7b0", size = 12327 }, + { url = "https://files.pythonhosted.org/packages/3f/07/225f0947f310591b626f407dcb59300bfcac2c212d015d279cb4a49421fb/pyobjc_framework_PhotosUI-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ce192ce1568b04878478ff9d6e50f516b72d919dcd88985b184e762e0661e4cb", size = 12310 }, + { url = "https://files.pythonhosted.org/packages/cd/57/826848c90c049b39f231e2f2b408049b8069b4efa2753f47a1ff951600d5/pyobjc_framework_PhotosUI-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:afc8ecdaddaf184b220b784fe0ab74335207768511a9afe3bdaf1342e5911e6b", size = 8397 }, + { url = "https://files.pythonhosted.org/packages/18/f5/694afc2ea709a3b2b3ecd0a52f9f1fdbe90301b9dd116a75076dcec918a8/pyobjc_framework_PhotosUI-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:a45eb45ab5a6115afd2dc6d68c4b3cc85c2a668b32f91ac2ccf399035a0cb571", size = 12279 }, ] [[package]] name = "pyobjc-framework-preferencepanes" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8a/56/da2d75cf4900a62cafde27d875bbe0dc0e9c3624b6d4c08adc69d9336033/pyobjc_framework_preferencepanes-10.3.1.tar.gz", hash = "sha256:eef150416a39a0109a8a37e9978ac4a55ad0b125ef6053a7431524ede5c69783", size = 25330 } +sdist = { url = "https://files.pythonhosted.org/packages/49/63/d76bc32761d619cadb93fe37054c5f4f7d7e805b68e565170d5412452253/pyobjc_framework_preferencepanes-10.3.2.tar.gz", hash = "sha256:e1cee875450f43700cdfc47d6e9f636b82df31420a0bc29b213670a773225cd6", size = 25669 } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/54/e2d55873233287481d11f9d92254e0fc8a86d2c37c062186c1867d41c7a6/pyobjc_framework_PreferencePanes-10.3.1-py2.py3-none-any.whl", hash = "sha256:319b58b6c8f876f67e879b3a4f74afd6d892aa43a7f9ef4320819265b281c9e5", size = 4384 }, + { url = "https://files.pythonhosted.org/packages/44/0a/2b0a8c01542d23e509be406bbdc33b79fc405c1484c637d0b46e55a8436e/pyobjc_framework_PreferencePanes-10.3.2-py2.py3-none-any.whl", hash = "sha256:3fdef9a7f8c4e0d3d63cd25879acaf9baf273a702734dd6a507eb8d892110794", size = 4384 }, + { url = "https://files.pythonhosted.org/packages/6c/43/6e2b97312d15e375b16150dc31e1200b8efd54c4b69428aae58b58108c22/pyobjc_framework_PreferencePanes-10.3.2-py3-none-any.whl", hash = "sha256:e5a78d01706c23eaf90eea941cf10dfb01b4a53324a996561dba0b7db0587c5c", size = 4380 }, ] [[package]] name = "pyobjc-framework-pushkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/30/d6/2fec9c42a76466902b14afeea7a9c8cc2c90aeafd3f3dbe72af474681dc5/pyobjc_framework_pushkit-10.3.1.tar.gz", hash = "sha256:cc4da5382cf48c29637af1c633490203358a6ab0c76f0c006079cf144eeb9568", size = 19167 } +sdist = { url = "https://files.pythonhosted.org/packages/b4/41/8e9e021c0168e7c8460038bd3f3289232b1b9429c002bc981dbb8bba2a68/pyobjc_framework_pushkit-10.3.2.tar.gz", hash = "sha256:852e8a19424b8a83973f7c3f1ada325871ec2645071abf519712ead972dd0395", size = 19530 } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/33/0b2cf5dadd448498490a31e52dbbbc6015a62402128fb4e7aac90f3d3889/pyobjc_framework_PushKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:39e21ac2b9a529e99d6d33c439c96d4d2bb97d2c56bd6d92b2c5bd497e925851", size = 8204 }, - { url = "https://files.pythonhosted.org/packages/3d/cd/51e1ac0bd23813b6e11a7e1363a104096adc6d56bd2a5f9180014e110d8b/pyobjc_framework_PushKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e20f94ad3fbebf34c613c880e655d0f918d891b0a70763f99bb5d11e0af65c73", size = 8256 }, - { url = "https://files.pythonhosted.org/packages/51/a5/5fad3f215db4b300f5e3efcaa1b1393bcd6c14a141435102798ff7cb2766/pyobjc_framework_PushKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:79f0e66b88473e7fdef304dce06d7d63c3e5e38b12deafcd06a5bd3506ed9398", size = 5969 }, - { url = "https://files.pythonhosted.org/packages/21/ab/c15351016775f0134b3d500f599d07fb20fffae7ec85c089e1ee79f047c9/pyobjc_framework_PushKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ee90959fc7b171930cffdf07cb7865d56a2cb4b723c5826ccf95d6e865dee4bd", size = 8630 }, + { url = "https://files.pythonhosted.org/packages/3e/67/b8083c6f4565d2b3056c68381d5455bee293568561522883973d598881b1/pyobjc_framework_PushKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:9231a7b66cb672f26500fbe9a6f3cd251ff2ff3e4def001b9f153a524c1bbfbb", size = 8136 }, + { url = "https://files.pythonhosted.org/packages/d0/ca/48ec49977623a24dbee4a8b0f6bfa5ea06e6c858300c772d285b9cb264c2/pyobjc_framework_PushKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:d254b0ddd529e38bbb43b487b3ab57c4e6ada810337a5c8459976998e421ede6", size = 8109 }, + { url = "https://files.pythonhosted.org/packages/bc/92/9f266c225113a434a0e769da36c494a9d1fff47ca460edc6edc9db0c731b/pyobjc_framework_PushKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f7ddc930a2b9966793c6412b008a4b4eca39e8062a49ca5028de00b96b56376e", size = 5874 }, + { url = "https://files.pythonhosted.org/packages/02/a0/12ded7d84cc40af56bc0880cc17a77c609ddcfd3c3523822d1f7ca27d46e/pyobjc_framework_PushKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:3ca308738b1b339873ca833678ea42b3a1b3b3f14c2e9f0d065e0156b00dfeea", size = 8578 }, ] [[package]] name = "pyobjc-framework-quartz" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/a2/f488d801197b9b4d28d0b8d85947f9e2c8a6e89c5e6d4a828fc7cccfb57a/pyobjc_framework_quartz-10.3.1.tar.gz", hash = "sha256:b6d7e346d735c9a7f147cd78e6da79eeae416a0b7d3874644c83a23786c6f886", size = 3775947 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/bd/d78c845a6f0640975e837d1d0f04d6bbd95bb88b77dcee22482144ac5ad0/pyobjc_framework_quartz-10.3.2.tar.gz", hash = "sha256:193e7752c93e2d1304f914e3a8c069f4b66de237376c5285ba7c72e9ee0e3b15", size = 3776754 } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/b3/ba33c4a3406fec862a5107da03d8daacbc11daa355f446a8849e1bf2c73e/pyobjc_framework_Quartz-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:96578d4a3e70164efe44ad7dc320ecd4e211758ffcde5dcd694de1bbdfe090a4", size = 227260 }, - { url = "https://files.pythonhosted.org/packages/0f/08/215f38dbebfca74f49276a9471531f360b4fb7888106f78953909919ca53/pyobjc_framework_Quartz-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ca35f92486869a41847a1703bb176aab8a53dbfd8e678d1f4d68d8e6e1581c71", size = 227195 }, + { url = "https://files.pythonhosted.org/packages/e5/0c/465bb4415be16d96106f972500bc0fba5cd8a64951e24b37467d331e68f7/pyobjc_framework_Quartz-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4697f3ef1991f7877c201778005dc4098ced3d19d938ebf916384c8f795488d3", size = 209298 }, + { url = "https://files.pythonhosted.org/packages/ca/92/29f0726d1031f0958db7639ab25fd1d2591b2c0638f3a7ca771bbf2cceee/pyobjc_framework_Quartz-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:604188ee8ff051ffe74a12cb3274403fe9c3fa02b15fc4132685c0f74285ffe5", size = 209183 }, ] [[package]] name = "pyobjc-framework-quicklookthumbnailing" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/29/04/ef2db0a73af5b2530de728529f5d637bbe5f09bf4165493db0ab3df2018b/pyobjc_framework_quicklookthumbnailing-10.3.1.tar.gz", hash = "sha256:ee26be78df9ce46ffa6f971f4ce167a0e98f38167aeb86cfc1b41270f15c96a3", size = 15534 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/12/d8dc4cb3be565df9e245bf8b234a07a74aa7d0966e643e17a3ed2a645bc3/pyobjc_framework_quicklookthumbnailing-10.3.2.tar.gz", hash = "sha256:f6d35495fdad885ae928a074eb9b45d2f426cf161a557510db3fc1f872a76ad1", size = 15877 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/d2/6c199cf69d5402cd4317600e7a4f925964a2eb9df44e4a09437af5dbf037/pyobjc_framework_QuickLookThumbnailing-10.3.1-py2.py3-none-any.whl", hash = "sha256:e5095c0ad8cf1f91a6ed9aa5c4fb7c9b1da122d495ce131bae8d7faa06da9505", size = 3814 }, + { url = "https://files.pythonhosted.org/packages/17/f1/7bec1fb48497f98727a22e3750e21691dae8a00a121f1bccdae9a9463047/pyobjc_framework_QuickLookThumbnailing-10.3.2-py2.py3-none-any.whl", hash = "sha256:fa3f98ae2e014ea3afeac071aeb9eb29ee405d4bf122980de11de0b9ce18b908", size = 3812 }, + { url = "https://files.pythonhosted.org/packages/07/31/45aa6af2ff642c19d8c189a5b7386ca837538fe72bda4f8bfdb4149edc3b/pyobjc_framework_QuickLookThumbnailing-10.3.2-py3-none-any.whl", hash = "sha256:9d6a7c7c733a447d8076813fdf68532e5b5d81d75af85cf64efa32b992d52dae", size = 3805 }, ] [[package]] name = "pyobjc-framework-replaykit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/37/dbadcb487150f4ea1a691c83d09f1ed58463bed6b4fa54dca6aeb1584d06/pyobjc_framework_replaykit-10.3.1.tar.gz", hash = "sha256:21762c8674b629fb670c3cbd515c593f1b5f98ee24ee4834a09055cb08849068", size = 23417 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/b1/b8539b171c6a335378928e077d5a8f05e97d43d459c4f1578cd7ed82ac83/pyobjc_framework_replaykit-10.3.2.tar.gz", hash = "sha256:05c15651ad4051037e7647b04e0304b288fa4663ab182d5848958a33a3b6c136", size = 23771 } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/0a/173ad3f0ae54f172b59a351244a7b049cedca96d2b9b88d2609ea611dd1d/pyobjc_framework_ReplayKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:1d89020e770763947c0e3e3a201b541b81b455656e574d390ad0b0e32a67640a", size = 10127 }, - { url = "https://files.pythonhosted.org/packages/36/c9/493a621107b3d2540140acfa70e72fb9f340485d38b475f1590d57608bc9/pyobjc_framework_ReplayKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b753658337d25964acb83f5edc465b772f276b4c88fc8bd03ad633b4466f6bd4", size = 10163 }, - { url = "https://files.pythonhosted.org/packages/13/3f/3cbeb95beb520422d20d050ae107a8238ca118c36eeddad645248255ef12/pyobjc_framework_ReplayKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fafbc37ef6e44ac5019b4a4b751b3de6d5983500705e8dea2fc62134f8c0dc24", size = 7153 }, - { url = "https://files.pythonhosted.org/packages/5a/7f/0fcd8020fb8b29e31c42ce0a672b58c4e3b41d8a587ce621e06a68d89b0a/pyobjc_framework_ReplayKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:22ca748ae8325e41e0526f13822d2c477ab879cb2d454eee1db47ca91353c986", size = 10047 }, + { url = "https://files.pythonhosted.org/packages/8c/aa/59e930709f3e1ec0d1843cceb11c9f76ecd4760868563fe808fe94a00615/pyobjc_framework_ReplayKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:fbcfae19fbd4f066c1135baf07c0513b6edd8b4392a3b18b44e31567f63e35a4", size = 9456 }, + { url = "https://files.pythonhosted.org/packages/21/06/cf598b30960b5fee4189c83348df62152aad7d9625a33134844b4013f81c/pyobjc_framework_ReplayKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:31aca6e24618d0c65bbaa4e51fbcdcf41d55287e2ebd549fd91c8e9f1f02a83c", size = 9440 }, + { url = "https://files.pythonhosted.org/packages/7c/1b/0951dd465b3bc7ffd43c8a935abe92137bef71a1c0a74cf717fc7cc039e4/pyobjc_framework_ReplayKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:872cf7f8c86a393b2f5ee90e34732a6a026e3b6f9f76195ab9691954b7a3de79", size = 7040 }, + { url = "https://files.pythonhosted.org/packages/87/8d/8173d946668af4103648d39d4229b6eaba7a0eda44a6ac294046d6cbc70b/pyobjc_framework_ReplayKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:136373b12d38c497c6e2f4f8b1f6bd66b2c534903475f07d5ad3c9912659c757", size = 9900 }, ] [[package]] name = "pyobjc-framework-safariservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/63/c12192ed8b5a08cc5313aef6d4e6d86d9d17171d4325a7f6e2f8c0da7a19/pyobjc_framework_safariservices-10.3.1.tar.gz", hash = "sha256:9c5278576e7c28c3d93e74ebe5d39d07c5c91572ddf03ea01cc45d9a06dc8d0a", size = 29436 } +sdist = { url = "https://files.pythonhosted.org/packages/af/ae/b9a7063c6ecce49efe37298b0d80a00aeb51c7777898a574d78791181046/pyobjc_framework_safariservices-10.3.2.tar.gz", hash = "sha256:3601d177ac3900c681a1dd77a3dab28341c40705572006f3fe7834c9890bb708", size = 29867 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/43/e7fd640b320252360e5777b4544dd18a7b507ecd4e31e8a54b877dff761d/pyobjc_framework_SafariServices-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c8afb977b5858d3fd27136146db46a9f2ec43c35f5af269dbcb51c46a422dd7e", size = 7405 }, - { url = "https://files.pythonhosted.org/packages/af/ef/5a28fa9b7e9aea7e011e58f461b60f0fab27488859b1f83b556fcc4c5151/pyobjc_framework_SafariServices-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:adb0332cbfa086892524efa253c873ecc4a8b00c60db45be3362759c4b4ae87d", size = 7461 }, - { url = "https://files.pythonhosted.org/packages/e4/62/5a2293203ec1b2c787a33bb0d7ee8a3cb9e4a6aac455b436e39915f362f8/pyobjc_framework_SafariServices-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7a171f08527c6bd297633e72bc597d68ec74419b5315f8c8122311537a8a6340", size = 5942 }, - { url = "https://files.pythonhosted.org/packages/a7/71/2dcd9ba1b7bd51619db281ff74cbda5ab1a49225bebb8e19ff5ab0556eda/pyobjc_framework_SafariServices-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:aaba0ea92410820d94fef0b93d337478f0e416967cb2aa4e667dd4d1bb561c1e", size = 7461 }, + { url = "https://files.pythonhosted.org/packages/09/b6/a9bf1642528f19f0a4c48696e92adcb969d6e04bb6051228ad71da928f0e/pyobjc_framework_SafariServices-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:afd1cce5f71f1d9c91c092c86e2d0b48fbfdc27793c8aab0222aa727e2440f10", size = 7373 }, + { url = "https://files.pythonhosted.org/packages/d5/74/ffdefe977900ad26c494cf7a5ee0ac1ff4164ca10f7f20baf2308450bfd6/pyobjc_framework_SafariServices-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:4927005cf9da3e270cb465d98a0178e025f224daaeabd7b119cb4994c2cb8eb7", size = 7371 }, + { url = "https://files.pythonhosted.org/packages/2b/a8/6249178c2fe9ece375f782b4a0f6c1361e23d5115286b195bd69c4948fb5/pyobjc_framework_SafariServices-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:085c78a57fcf98675f48624c4a8d62a2a97681233d7bd003c914a091b8893b72", size = 5869 }, + { url = "https://files.pythonhosted.org/packages/24/5f/e9efc48646ea1a3d589c26e2a397cc76fb587b97c39414a32ebf294eb05c/pyobjc_framework_SafariServices-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6e4ffcbfe31dfb553bb061d1dffdfa551069ef37595d4d663943a2a57cc651f7", size = 7453 }, ] [[package]] name = "pyobjc-framework-safetykit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d8/db/1d099ed2b3655caacad70315a6789b47277f9939f73d4f13810bf27f9e29/pyobjc_framework_safetykit-10.3.1.tar.gz", hash = "sha256:8421be801ce29053e67a2c91673913562c3ad9d4bb1fbaa934a3a365d8bff12d", size = 19035 } +sdist = { url = "https://files.pythonhosted.org/packages/70/b3/b5fa5d14cc95c52a67b3e676a8badc671057bd3b483dcd2dd37b37bc9c2b/pyobjc_framework_safetykit-10.3.2.tar.gz", hash = "sha256:d6902abba592532ae7c4864d16df9cb88dab2451e9fcecaa48b5e01948dd84fd", size = 19392 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/13/35bfd2d99a20f035d8c1e0c266b2c5d90c64f8f075d6d70743c8b1fa4118/pyobjc_framework_SafetyKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e554cb94bc2f89f525ccaa4ed827390d188eba8bb24049acdc764f3dfee9af08", size = 8039 }, - { url = "https://files.pythonhosted.org/packages/9c/86/7f33005e00824520fa611bcc63ecbbe55979b94dc1599df44d1c8a7ab92c/pyobjc_framework_SafetyKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:8eb160cc4f3b7e6d58f2eecc205f016afd5f4278b9641e49d5ef9c4df7b6df8c", size = 8089 }, - { url = "https://files.pythonhosted.org/packages/55/84/79d6e20377c6cfe07f8289c4dabeda78c5a8c455c465a5793c6e2a4b5d6f/pyobjc_framework_SafetyKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3674b92d8b72d0a6006cb899ec2f605d1d5a6a59ff2d90c51ee2ccfd0f069d10", size = 5921 }, - { url = "https://files.pythonhosted.org/packages/58/50/d8bbb45c931ec9c5205bc1fb3d03336e6c992b90b9444b3c6ed6be0069c7/pyobjc_framework_SafetyKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ac700aa2cbddc8a31626815886e42d0d1591572914c2b15df2dd07871ee84568", size = 8324 }, + { url = "https://files.pythonhosted.org/packages/9c/f2/abffc58ec75a3426722601acaae5315077b201e595ef849c46e659755e2e/pyobjc_framework_SafetyKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c49962f2d082558561750f46b776433dd53828835ebd9a8a5bb0f6069b0b9c8c", size = 7945 }, + { url = "https://files.pythonhosted.org/packages/3f/04/ae861242521826bb8bb4585ce05050aeb26bfd8ecb4d2748204cf968111f/pyobjc_framework_SafetyKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9c2d51465702538e141b44822bc729d8f5f74b03c949bd998a123173f33753a0", size = 7916 }, + { url = "https://files.pythonhosted.org/packages/d6/cb/e2227d08b809e71a59f28a8af9008845caca5c2d4a269b84a4f77af68617/pyobjc_framework_SafetyKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:04dd10134b8ead357d8f1cbbd643cd0fc81faf1b78c9825a45f9d2cde87c7edd", size = 5818 }, + { url = "https://files.pythonhosted.org/packages/b4/d0/b3cd5cb3c8f71f392a43dfe74a9088b13dcd3dbacbdbad6f4a89fefb39fd/pyobjc_framework_SafetyKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7dc3810c60614499da7afe460fe779f5b1c5c70ba22076760fdc9706ee52efc4", size = 8238 }, ] [[package]] name = "pyobjc-framework-scenekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/23/cb/0451b9463cc1d19eef523dfc6098c5d774cbd5f4cae9fbc6884b17cd5cd9/pyobjc_framework_scenekit-10.3.1.tar.gz", hash = "sha256:99cf0db3055d9bae0a8643400e528a8c012235db8ee6a1864ea0b03a0854c9d0", size = 155276 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/60/9140bd2f59c00c05a549cad6f6ef303d1ea12bf39ac70cfd9c244ed775a9/pyobjc_framework_scenekit-10.3.2.tar.gz", hash = "sha256:451b02c3b58f78adeb06239f9e4d2ac8545277056e5945eca3592b04c5f3ed67", size = 155651 } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/37/d10538c3547f8aac05fd8d7b519ce46f54ed1eda6f77686e319f0191a0ee/pyobjc_framework_SceneKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:7a108ef1a660a7928d1d44e415c84f544d296745d5350235addaab82777b080a", size = 32978 }, - { url = "https://files.pythonhosted.org/packages/cf/73/79c969fe840aede23074ba229c077653e778c7a6735709a642c17c870862/pyobjc_framework_SceneKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:08fb5dd8c10a5624a0bf3dd9f448b2fe4c8b9c7c3c98708d28b0b4c72dd2a107", size = 33193 }, - { url = "https://files.pythonhosted.org/packages/4a/d0/b9de585d75d71666026deea22bf5249eb7c2ec0394489239db1423f4743e/pyobjc_framework_SceneKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:08601223416fa048d9468f961b170e3c2009d7e2434eea92c12ee12f6c672961", size = 22568 }, - { url = "https://files.pythonhosted.org/packages/44/17/6c72f136bdd00e2bb7093247db6be90117f9a0512cc3a15fa56073886843/pyobjc_framework_SceneKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2984a543221190547bff603a6a59c931cda7099b91ac7412e11c962e8f6c3bc1", size = 33117 }, + { url = "https://files.pythonhosted.org/packages/f9/f1/7045b96b6e13dc3c85852b104dfe4aa8af220032639536cea7cfcfc822c2/pyobjc_framework_SceneKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:9a344a455136e186c9ecd92cc195aa64b41e9686db1890ae646499e654589c21", size = 32468 }, + { url = "https://files.pythonhosted.org/packages/ed/73/56b9b0a58b3b71cd2478bbc7b6abdbcaf14fde59874b77cceec10b5cadf1/pyobjc_framework_SceneKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:0984cd93e2cd2aabcd4b259a15dc24c17d39e195bfb7ede060f5fc21cec680a8", size = 32466 }, + { url = "https://files.pythonhosted.org/packages/8c/a0/baf35780cdefcda65b0f7d730bb1ec18f9378dee93824baa5d81313a6cb3/pyobjc_framework_SceneKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:8fbec8b31375bcf3b146198abaece8cfe6bbbffab642c013dfb4ba0092ae208f", size = 22074 }, + { url = "https://files.pythonhosted.org/packages/f2/41/ea3461de6bad2004ac4e5ba332dc7fd2de2bc5e01caf5b3014e31a11844d/pyobjc_framework_SceneKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4eee24aca5fa88d7a5dc7cfd2f3dfcbf215556fc633ae67ac3c68da9e8a805a5", size = 32591 }, ] [[package]] name = "pyobjc-framework-screencapturekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-coremedia" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d4/20/51dbb697dc5d3bc522771afa375e05370e6357b49dacf1bafe7dae37908f/pyobjc_framework_screencapturekit-10.3.1.tar.gz", hash = "sha256:cb1a2e746e0f98ea14a11ea35d059d38587340beeeb905812085e2c7ceb14e0c", size = 34829 } +sdist = { url = "https://files.pythonhosted.org/packages/a5/f6/0f9a509f86d5b876ebdbcf4b96a01a824ecdaf4f3e8ff9516f7e7c13abc9/pyobjc_framework_screencapturekit-10.3.2.tar.gz", hash = "sha256:948d6663243e141acfc4ea1499f4690e5ec51d9cad9db843d5450548a2a7028f", size = 35192 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/67/ff55c30ac3508f3c1214a084f321d2268c56d15fe5be436591a5ee24eb7e/pyobjc_framework_ScreenCaptureKit-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0953f8d43bd7f0012decebe34401d361c4a64472190960204b3214e4850e4ef2", size = 11398 }, - { url = "https://files.pythonhosted.org/packages/b2/c7/25af6462a4f161dca7ffb375348716b6cb271c29e356bbfd4e4693f87b69/pyobjc_framework_ScreenCaptureKit-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a80928dc483046ac72294fd576c53f793045aad700b740ec9591b23a3ccc011d", size = 11435 }, + { url = "https://files.pythonhosted.org/packages/ce/2a/41de89612952e64e3c9eee4334675d8155f3bde562d262047a844689b4c0/pyobjc_framework_ScreenCaptureKit-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:050f322024ea3c19c46068a8a994eb39f70b349efb43fbe2512484a09923fbb9", size = 10613 }, + { url = "https://files.pythonhosted.org/packages/55/7e/56d2350e1068f1a7b57c3548da2bcec4d2151f1c52cb276e3e1bf097b3f9/pyobjc_framework_ScreenCaptureKit-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d835c7cb37ae009240934cb15d9a11320031c4f2b15a15f265da684433fb6a6d", size = 10655 }, ] [[package]] name = "pyobjc-framework-screensaver" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dc/7c/55374bae0be8632e2c76b911af3bcdfd5b5ea417c125d8268f8207c77516/pyobjc_framework_screensaver-10.3.1.tar.gz", hash = "sha256:0bbc5b574f12e95f6f6e48ced40b601e46e560ef6786845c15c57d78e6cd083e", size = 22037 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/7f/b4472750bc0f66b6b43ae462e2bfccc113fa135780ab9b4e43e648f19a51/pyobjc_framework_screensaver-10.3.2.tar.gz", hash = "sha256:2e0bc1406848607931123b87a59235712c40d362247be6c0c0746b26a4bd8e5f", size = 22469 } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/26/d9db1199855e3b3227bfe3c156750786f23d600055732eea2be28314b4c3/pyobjc_framework_ScreenSaver-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:31bffb17ec131509c4cc584e98328497310ea644c764b50fb6bf7850617ec5a5", size = 7961 }, - { url = "https://files.pythonhosted.org/packages/b5/0a/0eac07594070e89c796fb56858fa75f2a39dbc407e02ded06624d26120ed/pyobjc_framework_ScreenSaver-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ff25ad7cfffa116feaa117989f0a4b68dd6b7318aea4320ece6f75caf0092cfa", size = 8166 }, - { url = "https://files.pythonhosted.org/packages/6a/34/2e98bf93ba933c466f206087d31c5aec678aa13270817a8be3bf0c2be622/pyobjc_framework_ScreenSaver-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:51e5bce05a3ada526c5c19b21cfb383cd7653d78f175c5abaf500a67ddab1c19", size = 6285 }, - { url = "https://files.pythonhosted.org/packages/7a/c7/76e8315650b4d90c2ef690480fba37d75dcf5aa1c3fe177238348e6d2e7d/pyobjc_framework_ScreenSaver-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:616ffb4bac2a56108778e33be6fe75b28f19511157abc411960b72324276635d", size = 8005 }, + { url = "https://files.pythonhosted.org/packages/82/e2/4e249dcec82b09bccf1377bd9f03b57d9e26ef691bd64e2db3dfdd2c108e/pyobjc_framework_ScreenSaver-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:8cee3c2f9d57ad208fe43e4c8bfa90530ab90de876dad75b787185e2c6a3db5f", size = 7936 }, + { url = "https://files.pythonhosted.org/packages/15/ca/29f190e05f8176715c6cf40bff362ff8bd54e80a68de6c99c4f930481e5f/pyobjc_framework_ScreenSaver-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:bbcea74b13915adee1c96e9b78b27ec6c5e1130eea3ce6babd8ca4ce9cfa1ff5", size = 8013 }, + { url = "https://files.pythonhosted.org/packages/9a/07/36d055c00a729fb0ba25540ec378ef0f3b634199ce301d2c74407ccebd94/pyobjc_framework_ScreenSaver-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2e29925bd49a0a8d5494197110a3c0464e4d4201991dbc3f735a668de25a3f9", size = 6150 }, + { url = "https://files.pythonhosted.org/packages/8e/45/26d4d3172b3243bdf3c96cc16789d1e52944a1f1234324b05eab58558322/pyobjc_framework_ScreenSaver-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:ff407e1550771ba147e2285d46c8725f6f0433f62e40f3a33b4f3b98fdcc840d", size = 7996 }, ] [[package]] name = "pyobjc-framework-screentime" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/a5/b2b9c57eb364ccc1074442ce956b0052f71e903b7b944a93bc4888deb94d/pyobjc_framework_screentime-10.3.1.tar.gz", hash = "sha256:351179d5bf951aa754c72f50ba8785212adf1b26abe10149c750fafd0a3108ae", size = 13365 } +sdist = { url = "https://files.pythonhosted.org/packages/02/50/6189139ea6736443f8b9f3ff6b776b62070b967965c4292d60e121884fed/pyobjc_framework_screentime-10.3.2.tar.gz", hash = "sha256:1f57188ea57d71204a65e1f342ed34128704bcee3ff7d8566f503d87b779e902", size = 13688 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/00/475bee668c55ca6d39464bb80ffb7e8c3012b027183e6d91c675b4b5e5aa/pyobjc_framework_ScreenTime-10.3.1-py2.py3-none-any.whl", hash = "sha256:d4f8a0784dc7d7060dadae2e4b5aae5e1afe8bbf453ce49cbb1860b8920114c3", size = 3403 }, + { url = "https://files.pythonhosted.org/packages/79/fb/1801ac9b9209e71dc46248c73145800a5adf82581979c9819e0283d79318/pyobjc_framework_ScreenTime-10.3.2-py2.py3-none-any.whl", hash = "sha256:5b56da2b391ad73ca31a29439637b911b49424d7c6194138de45a3242313b53a", size = 3404 }, + { url = "https://files.pythonhosted.org/packages/b3/bd/6dab7269cd3e7ac2440c6afdf42b018a3abb8e0a06e4cbec3c3a419a53e3/pyobjc_framework_ScreenTime-10.3.2-py3-none-any.whl", hash = "sha256:e6667965389139f8abbbf85759de6bf11ffa8c95fb8b2dd767f80d56f7deb8ac", size = 3399 }, ] [[package]] name = "pyobjc-framework-scriptingbridge" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/10/45/ef1ae83f84555c3cf7ba18e53be9ace9f4225e56b852d7f5d79b5c516d4f/pyobjc_framework_scriptingbridge-10.3.1.tar.gz", hash = "sha256:6bfb45efd0a1cda38a37154afe69f86ea086d5cbdfbc33b3e31c0bda97537fe9", size = 20828 } +sdist = { url = "https://files.pythonhosted.org/packages/ed/0c/fff6cf7279cb78e8bd09a9a605d06f6e53a7d7d6b8a5c80f66477010d68b/pyobjc_framework_scriptingbridge-10.3.2.tar.gz", hash = "sha256:07655aff60a238fcf25918bd62fda007aef6076a92c47ea543dd71028e812a8c", size = 21176 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/4f/33f9ddb57f3cfc88d878e2bfbe99ecc10f775bd62a0bbc3b53ec4fad709c/pyobjc_framework_ScriptingBridge-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:3a88e1a6c6b7d8935ab4baa9dcdeccb9cb08a44906bdd69b77302f48c88408d9", size = 8365 }, - { url = "https://files.pythonhosted.org/packages/10/bb/f692b524f4ff77535f6d7b4f9e54f8fa2ed5e82e01bea9506f5a78bbf9f8/pyobjc_framework_ScriptingBridge-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:66b55a9c12572f9bd6c00fd0a5aa5353354e7b717e37ffd1e843614d2fbde3d5", size = 8424 }, - { url = "https://files.pythonhosted.org/packages/cb/d6/19275587fd90c3f1d0c6eebc881f802eac1e0e63d66a0b380d63dbe01fc7/pyobjc_framework_ScriptingBridge-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:387c0720842a1285afde5b56c43d9ed1332736ff8f6119ba6c6a551018552182", size = 6535 }, - { url = "https://files.pythonhosted.org/packages/51/f3/8417c284db5b68f958d8421b331cb3d4ab4caf85a7af8110dede55b084aa/pyobjc_framework_ScriptingBridge-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:90022f44f2bf0563bf5a75669198b9d778f76ece719f237750e9c5fcb00a601d", size = 8510 }, + { url = "https://files.pythonhosted.org/packages/d3/a2/12a2444f9ee7554e6a8b1b038dea9dbc2c3e4c3f9f50ec6c1b9726e4c3b2/pyobjc_framework_ScriptingBridge-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f045ba439b8ba13febb76254c5a21ba9f76c82a0e27f0f414b5f782625f2e46f", size = 8318 }, + { url = "https://files.pythonhosted.org/packages/9b/1c/6654a91890627904f68c75d796d13e241f71a5b868f68adc36ec92662f6b/pyobjc_framework_ScriptingBridge-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9223cd568170f6842df6bdf2d6719a3719b977e91a8d8e531d1a1eb0ef45c302", size = 8299 }, + { url = "https://files.pythonhosted.org/packages/47/23/222e3b61927366ba94c3ba591b96b13f07f4b4cc52fc0b3588c822332164/pyobjc_framework_ScriptingBridge-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:dc4db637b1422c47b8aa4d33319f216de116832ef16fe1195e84e6fb7ca8f732", size = 6451 }, + { url = "https://files.pythonhosted.org/packages/ed/aa/96bb253340c58403904089ff0235da77970ec816337706701456241f95ac/pyobjc_framework_ScriptingBridge-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:0d99ba4d7ed9a538b666f3aa81bd94b298f6663361dc3bccfe2718d9e28f1a2c", size = 8480 }, ] [[package]] name = "pyobjc-framework-searchkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-coreservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/85/74/1ee0012987c203f6776b7ca3da12b68623d9861c96ddc9575809c38864bc/pyobjc_framework_searchkit-10.3.1.tar.gz", hash = "sha256:7efb76b7af9d8f0f08efb91543f4dba0b00261ed41abb121ada80175cc82d65d", size = 30449 } +sdist = { url = "https://files.pythonhosted.org/packages/9c/6a/586d7534ef7dd9277297d25ef96e96da5ee701cdaad1d4039c3f9219c1ae/pyobjc_framework_searchkit-10.3.2.tar.gz", hash = "sha256:1acaf21339e6583e901535f82271578b43ec44797b9b1293a3b7692deca3d704", size = 30823 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/40/9c3231a96b55776338005ec60f278488111f4093af8bc9f1c7f17696406e/pyobjc_framework_SearchKit-10.3.1-py2.py3-none-any.whl", hash = "sha256:48ec776603e350405c7311f29d5941e0e9d6b6a75e2aec69e0acd28be0979905", size = 3320 }, + { url = "https://files.pythonhosted.org/packages/6e/2d/4110a048d6a2625547d133084ab2cb564d9f9720d0fdabdc337e67b383ad/pyobjc_framework_SearchKit-10.3.2-py2.py3-none-any.whl", hash = "sha256:e0d80867d2367b6c1b0367b9f5cb8295284608c5a589f85c0ce3479593918479", size = 3325 }, + { url = "https://files.pythonhosted.org/packages/45/61/cb4a0a1674e6ad587a6e28232192a38bd9a4bb39715ade068d434503ffea/pyobjc_framework_SearchKit-10.3.2-py3-none-any.whl", hash = "sha256:516f460aba35be34da0c216be8e3ebb34a67dfe198d251ff11c800fa981fbf96", size = 3320 }, ] [[package]] name = "pyobjc-framework-security" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/db/3fa2a151c53f2d87d9da725948d33f8bb4c7f36d6cb468411ae4b46ad474/pyobjc_framework_security-10.3.1.tar.gz", hash = "sha256:0d4e679a8aebaef9b54bd24e2fe2794ad5c28d601b6d140ed38370594bcb6fa0", size = 252496 } +sdist = { url = "https://files.pythonhosted.org/packages/fc/08/bbbfa295aef75986d7204ba3d856b26779d9eb2d0efbdcce2ddcb468d9b9/pyobjc_framework_security-10.3.2.tar.gz", hash = "sha256:8e018ad36a5ba4ebf1da45cc3ca2a658906ed1e3f9ffdde8f743c813a233d735", size = 252834 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/d2/c8e65fd0d5905883bfae7c087645bba247e109570d5c55f814cdaa027eea/pyobjc_framework_Security-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:499372b4b87de0198601e0c6b3d3e43d48605218149a5808c6567b601147a9bf", size = 41023 }, - { url = "https://files.pythonhosted.org/packages/36/96/f8f714d8eaa7e7741475a53c3e6a06cc550cd996153e5076fe2276e00ad2/pyobjc_framework_Security-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b3daed9661bd80245dd8dbc738a17870226969db27f6dbb3424ec0ebdbb6ba83", size = 41069 }, + { url = "https://files.pythonhosted.org/packages/d6/ee/ee20b313ee18094424e4f3064eac99f234e4440da0c8198dd49335facd13/pyobjc_framework_Security-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9b4505472e21d18f1cebfc773c2148efc6446d62389304330fd7f7f5b30eea97", size = 40779 }, + { url = "https://files.pythonhosted.org/packages/af/b2/99d5e08eafd89750d81d36201dd8faeb3c5880dd1241b070084675486ef9/pyobjc_framework_Security-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2fae458eaa4263c3daf8a12ad62a92bc14be32ed251dcaa95d2caca324520036", size = 40832 }, ] [[package]] name = "pyobjc-framework-securityfoundation" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-security" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/40/d6/908dcceb7cd5dcfa3ff265dfcb945a8707256f7ab09ee709d86cb26ae1d4/pyobjc_framework_securityfoundation-10.3.1.tar.gz", hash = "sha256:414b13acabfae584729cd614e27247d250ec225d31140e8d971aa08536d6150c", size = 12595 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/3f/0b46d29ef0075c27f48288da2daaca83cf3707a922a0fd9051e111045a42/pyobjc_framework_securityfoundation-10.3.2.tar.gz", hash = "sha256:738e8034f7c7a91f37e6e5b0bc94d9d74ad8016c96508994fdc4d76915d76fc4", size = 12907 } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/43/3f0b77bc72a9c419b355cbdaaa4a289ae838f6593421292b790b58512888/pyobjc_framework_SecurityFoundation-10.3.1-py2.py3-none-any.whl", hash = "sha256:c352cde672c9c2afa89575c362a0714e589c118485cec49ba230327e92c8a9a6", size = 3383 }, + { url = "https://files.pythonhosted.org/packages/37/0f/acb4eced9fec6d7f4c72dc7849318e33c52805f49f203f1398feb11883ae/pyobjc_framework_SecurityFoundation-10.3.2-py2.py3-none-any.whl", hash = "sha256:c1d2e04a0f7cf96c2e0b8287c7a626fa8f4d1f70990593d33dbfc6ec20bbff0f", size = 3388 }, + { url = "https://files.pythonhosted.org/packages/a7/b5/0776c9515726b47d71a001e73b9771fe8353d2fd21f4af7a54c077752b8c/pyobjc_framework_SecurityFoundation-10.3.2-py3-none-any.whl", hash = "sha256:f518c3f6221d93a4e8880547fda6d4642be20076c683a5118b6707e97f4b06ce", size = 3383 }, ] [[package]] name = "pyobjc-framework-securityinterface" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-security" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b6/8b/d2dfd658f279fe6d3416b45c5030a65342ded0150ba56e028f6dcc9b38e1/pyobjc_framework_securityinterface-10.3.1.tar.gz", hash = "sha256:cd25f342a2b53cbffd134443506d5e75c96ba7145135debb8932c1252d57269a", size = 31921 } +sdist = { url = "https://files.pythonhosted.org/packages/3c/ea/1dfdf32ab13daa11f99d33ce62cc99076a6162dd4175442675f01711dbd2/pyobjc_framework_securityinterface-10.3.2.tar.gz", hash = "sha256:9d90589f165b2c4fb8c252179f5c0003c8ee6df22d0ead2b8f77e07ff4733dfe", size = 32274 } wheels = [ - { url = "https://files.pythonhosted.org/packages/05/17/ba99db445a991ecba87f82d190756fb9c9943c68000e2e7d093e830f1051/pyobjc_framework_SecurityInterface-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:7a9bbca70e8a27bd79a0b8846f7d08b693dd309ff780f92f713fee57ff9d3ddf", size = 10731 }, - { url = "https://files.pythonhosted.org/packages/b6/e3/281084dfecb61453da2ccf36c8cbf3c6db24191c973a0c4f14397a1ec186/pyobjc_framework_SecurityInterface-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b964ecbde276611c14fd70884ab9c08c4aae75633deda1a29813dbe42dc83dd6", size = 10780 }, - { url = "https://files.pythonhosted.org/packages/bc/ec/2af619d126a82869ced4d6ef8af7f9bfcebcb721cad70ccb0792c7f84ddd/pyobjc_framework_SecurityInterface-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:8c2998c09767f0214891c553fadb8ec72a8273c95fca820c44cb11f3b0cdb8a4", size = 7515 }, - { url = "https://files.pythonhosted.org/packages/7e/b1/8bd136570f27057f2a73bb27f67f2ed638169d9660474d77e9b531e821a7/pyobjc_framework_SecurityInterface-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d913d30d04c9f01679ead33c95ad53dade587995f48c778a6de4d7da239b43e3", size = 10809 }, + { url = "https://files.pythonhosted.org/packages/0b/5c/0c805ed633823e0eaf8581718ab527665f63ee4588ac18dfc22d912db8d5/pyobjc_framework_SecurityInterface-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4cd7207a47490a04f309463cad285209e53f322a2a6819e87c1b1f5ecc2ea831", size = 10682 }, + { url = "https://files.pythonhosted.org/packages/9d/39/966d55400afd8ef27b6a4ed753b853a5460b0703beacf2f05b5c7be45d4f/pyobjc_framework_SecurityInterface-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c5b709804645b3dfc5a2b5c13ee350cd0c3e7a2bd47fd66d4b638b52801f597a", size = 10634 }, + { url = "https://files.pythonhosted.org/packages/52/bf/38d9222b20c97ed6f94d0451297da82066ef3d3bcfd3701be9f8fe17bfc4/pyobjc_framework_SecurityInterface-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:94a7b6fcac0ab9dd6e53a526633c1698f17e39f80d6e4727e5b5866288912763", size = 7432 }, + { url = "https://files.pythonhosted.org/packages/58/57/7d343e70f9ac8841f8fcaa549baa7256d919b91ad9002b17bf435da160a2/pyobjc_framework_SecurityInterface-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:d7e415b53d6cc5f62543546948a18e1f85a0cf77258a0f9065a563c6f1fa0ea9", size = 10776 }, ] [[package]] name = "pyobjc-framework-sensitivecontentanalysis" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/3d/7b50fb510374640c7562fc3cc83a75d91bd23f3f53a15579bd0061ffc3bd/pyobjc_framework_sensitivecontentanalysis-10.3.1.tar.gz", hash = "sha256:ac8dd18d77ccc0bb4eb24839cf39da9981db64e53f52b09636e47bd7b3066f84", size = 12006 } +sdist = { url = "https://files.pythonhosted.org/packages/2d/c0/b23985c0a71168317a15c3b440cf02b3f546d8248b3d82cb9f13b4fe2b5e/pyobjc_framework_sensitivecontentanalysis-10.3.2.tar.gz", hash = "sha256:561c0b19144648a0dab19da1896cbdfbf484f3cb752e95aa42e27ff7c5da923b", size = 12323 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/bc/09d3c469f63366eff7caf148e53bf38a3752178a62a99881a0ef11453549/pyobjc_framework_SensitiveContentAnalysis-10.3.1-py2.py3-none-any.whl", hash = "sha256:6b5cfe771a28300d766ff14ff81313fda946943d54a039d5574478a070933e03", size = 3451 }, + { url = "https://files.pythonhosted.org/packages/34/82/aa5693d5b6e2dceb98d4ca4c50042800fcd11f51ff999f4ed772f7b627b6/pyobjc_framework_SensitiveContentAnalysis-10.3.2-py2.py3-none-any.whl", hash = "sha256:1c31183ca67bda6c5b1982b094d2aea35deac13260d586238cebe26db5d755fa", size = 3447 }, + { url = "https://files.pythonhosted.org/packages/fd/fc/c173077c769011c0204f6030da75ff6b80b4fda3b82666e412a45e2f683d/pyobjc_framework_SensitiveContentAnalysis-10.3.2-py3-none-any.whl", hash = "sha256:8d0e4bf06939706d48a6d24b326c9d388e943a3988f97df0591ecd5f575047d7", size = 3441 }, ] [[package]] name = "pyobjc-framework-servicemanagement" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ec/de/f60506eef312ea3cbd5eacd1308bfb7e68f8d1a032573840f46b7de3a122/pyobjc_framework_servicemanagement-10.3.1.tar.gz", hash = "sha256:d048a803ad34c997dcc99ba778fca9d91cc5adfa1d115202e4bf22d9b04fd92c", size = 15746 } +sdist = { url = "https://files.pythonhosted.org/packages/47/d1/06333ad3eb0fd5f7f2f34d9f3c48f81c1732aa66f7d97c63899c7832fbc3/pyobjc_framework_servicemanagement-10.3.2.tar.gz", hash = "sha256:60415ce7ce789062a1bb066a1e698325cc110fcab94324368f1697cb171387e5", size = 16076 } wheels = [ - { url = "https://files.pythonhosted.org/packages/09/ed/72cbba493d3e6d17127f39f1436b12248a812ca9714fdcf02f6834e7bb93/pyobjc_framework_ServiceManagement-10.3.1-py2.py3-none-any.whl", hash = "sha256:6b7ca0de9cf74439df0947aae29f5f31d58eeacb0ff55e1465faed540d31de4b", size = 4927 }, + { url = "https://files.pythonhosted.org/packages/8e/49/f6d2e07a8876c3bbe1bef26e3e69738214a18945546db4dc2ae9259ef77a/pyobjc_framework_ServiceManagement-10.3.2-py2.py3-none-any.whl", hash = "sha256:cd5e5e0e461550bb7c9ddb7170372530eb3a391c7ba797675be86f87fbd062b3", size = 4930 }, + { url = "https://files.pythonhosted.org/packages/db/e2/6128e99978d7e81b03162f06338ebd831ac579ead7065daa527cdb6a0317/pyobjc_framework_ServiceManagement-10.3.2-py3-none-any.whl", hash = "sha256:c7b4ff6cddc0ad2ff229432cddb77bf19cfba70296f54928c8004b87040d4255", size = 4926 }, ] [[package]] name = "pyobjc-framework-sharedwithyou" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-sharedwithyoucore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a2/c8/261b3ae7063550b157fd33e9931c53007e4b7ff209a6d5a393b301af67c3/pyobjc_framework_sharedwithyou-10.3.1.tar.gz", hash = "sha256:7e35b631bc77b040151515e4fee9c8f47bc313924fc3e5970e940f1343db039b", size = 27924 } +sdist = { url = "https://files.pythonhosted.org/packages/21/21/4b28cac56c3637a942c8ad70490fc48586fbfbc503088594b0110325b116/pyobjc_framework_sharedwithyou-10.3.2.tar.gz", hash = "sha256:2a2717f85b7a8db33ef04dc90dfdfcb9f6891740112bdcd739a7d5ff37185107", size = 28260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/94/e54dfbdb57e82d65cc78a881ed02240e7bd6f12b4b8da5d003ff18acaf07/pyobjc_framework_SharedWithYou-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:175cb32c93c55511f86ccf02b1da2fdcbc2a0f92422d451ff5dd4a864b3f3faf", size = 8782 }, - { url = "https://files.pythonhosted.org/packages/e8/35/ccb26fa87164b6616f208b87fc255cce06bb23443473f1fa3ab2f89fa59d/pyobjc_framework_SharedWithYou-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:8a1ee78d6220e02e073c5fe6fea8f223ef870086c1afe60f346e7bb3dbdcb165", size = 8831 }, - { url = "https://files.pythonhosted.org/packages/e1/33/f7a2fe06b25836687e829408763d86b593aff9b0f6921443bb3e4be1cbaf/pyobjc_framework_SharedWithYou-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:824d56ecf85dbaa938a2db42bf2f5a55a4e9f94019dee2dc90578040cc2bbd3c", size = 6591 }, - { url = "https://files.pythonhosted.org/packages/4f/33/bb8c76ac26329e37b22386d238cd97683494e5e8f875c0a6682b7ea524c6/pyobjc_framework_SharedWithYou-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:bc37e1c86f460095085a5060149ca013d4dcb9b54337887bff86a2e07302c0f1", size = 9084 }, + { url = "https://files.pythonhosted.org/packages/ec/29/9f12d223d61b8e5fdbb95c37d80cb2496788e0c012082a99ac2d782d87c5/pyobjc_framework_SharedWithYou-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d94d88115fac7a200fb36c7d4eff8960f3b0663074e290d096b92b7aababa66f", size = 8708 }, + { url = "https://files.pythonhosted.org/packages/45/7c/4451b22a26c0aed24f3bd42cc6d489827c2172f359bda13b69c6959b30df/pyobjc_framework_SharedWithYou-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3bab53551624aa7921deacf0ed7c107a6c4eb247a9aec6dde0e0bf819d39e955", size = 8689 }, + { url = "https://files.pythonhosted.org/packages/3f/bc/fe41bdc5303f31b2aeec22d3e876bcf93f2733ed13d07732e3d53d6ed845/pyobjc_framework_SharedWithYou-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:89728935f8382691082a398f3308ca4401125718f1a5a8600face26ccf7f0f6a", size = 6496 }, + { url = "https://files.pythonhosted.org/packages/b1/96/08aa3df73accc42a9da5e585e831f03bf6a36ded8fd8070b040f3d3a176a/pyobjc_framework_SharedWithYou-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:a1af4e482dfa4d4365e8e9cab0bf13bd9b3da95809684c31ed76a96e637ad439", size = 9034 }, ] [[package]] name = "pyobjc-framework-sharedwithyoucore" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/ba/09d6cfb51167b14711d2a2526d69994566eec101578af0e39b84a4794e5b/pyobjc_framework_sharedwithyoucore-10.3.1.tar.gz", hash = "sha256:e4768b7fdb18730e225bbebc9c9f9acfa7e44e648875816aff8c7e7f0e82afbf", size = 24331 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/8a/62a767e8e37faf7720ef0e9a0743bf6d0b5f0776813ab5a4d0fe7c4d5507/pyobjc_framework_sharedwithyoucore-10.3.2.tar.gz", hash = "sha256:8c877f0e4590da6c687cecabfd15ca5cab3ca82cf70c7d228473e02e0e796225", size = 24687 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/4f/7d1f125b94f5fd88d66c4d5969b54fd2902e9c683a6ad6092e8b8638856e/pyobjc_framework_SharedWithYouCore-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:b0fb4e84e15765d913d5383b61004b7ff9a637f198ec7c3dee07632f3a4e2b4c", size = 8540 }, - { url = "https://files.pythonhosted.org/packages/ba/d7/06cc06c15fa69500c9f321e575cc296913e560b04ab448b477f7bec012d3/pyobjc_framework_SharedWithYouCore-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9b480058016216e5a3715e3ff50f5430159ec4235dcd110141f53637f5dbb51d", size = 8589 }, - { url = "https://files.pythonhosted.org/packages/44/cf/09ca1c5a2dbcfe58a0f36f4aaefe094f1c9e93a5c054b5e332115775a9f4/pyobjc_framework_SharedWithYouCore-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:17a5e29f832d395030b1ab5dfcf43dad2a9c0f917e6b443ac383dea06e3aa304", size = 6321 }, - { url = "https://files.pythonhosted.org/packages/e5/90/aaf3a46470effa512fd7aa9f8cd35ed1ce861b785c8dc5f5519052a249c0/pyobjc_framework_SharedWithYouCore-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:1e51f315b5b16b340a1a12d4a0f3244f1925f14c9e148ca4dfdcfad6baa7ee5a", size = 8886 }, + { url = "https://files.pythonhosted.org/packages/ca/96/373a9b2cc73ce06a654e210bace0bb6a9318fc067dd0821a126fcb07d1b7/pyobjc_framework_SharedWithYouCore-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:3bbeba3bf8549d7a2515edb9fbe0f1e6f164717c746f301e16efa65acdb0d076", size = 8465 }, + { url = "https://files.pythonhosted.org/packages/6f/8d/379db8a9c54058f0e326dfbfd9cf4e46ebe4fae7df6bc7a5a732016f5bc5/pyobjc_framework_SharedWithYouCore-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:34a1686e43a735c4ec7dafcd40894e8128d2ef878091cf1e33adbe70e5ae3f08", size = 8443 }, + { url = "https://files.pythonhosted.org/packages/d1/56/5d93dc68a35656cb85068958a4c68c24cbbd4f8f525afea61f01e3b6e870/pyobjc_framework_SharedWithYouCore-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3e83e14e511de3cb347eebd17ace42a47cfb9b19432eef89dc40fcda6f3be6fa", size = 6224 }, + { url = "https://files.pythonhosted.org/packages/76/21/c41e928af1f0a841af681cd2263d2c76fe6ee0e9742b249f6883c1ff4c49/pyobjc_framework_SharedWithYouCore-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:82117418a290198ab369da72051776440ce26ede46530c08af3ff2bee6459cc3", size = 8824 }, ] [[package]] name = "pyobjc-framework-shazamkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/07/d7/5cf2157fd163084d75d1cf9cf2de774d373387162a7b03c19cbcd193f22f/pyobjc_framework_shazamkit-10.3.1.tar.gz", hash = "sha256:deef11a43e773b876df31eeadbfc447892fda0607e314ca2afb2c012284cfa32", size = 22923 } +sdist = { url = "https://files.pythonhosted.org/packages/c2/f3/8626b1f52c3c7665cb8f84966db045877456b9d9c55d9faa686cc773590b/pyobjc_framework_shazamkit-10.3.2.tar.gz", hash = "sha256:6158120a2d25b74a88c1ddc9d5f70df30ad4cd9c19b4f9db95434cc5fbb99f70", size = 23291 } wheels = [ - { url = "https://files.pythonhosted.org/packages/05/05/ac965959bfd2261bbcc590e1db7f9b7b59a39736db6b7398a20a8d510d38/pyobjc_framework_ShazamKit-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cc77fde1503ec1f96d7b9a05ad784d29d94065732f0cfe089321be423e5045f3", size = 8628 }, - { url = "https://files.pythonhosted.org/packages/77/03/470f30e129d93faee2cc418a38acabd16b331b403cb201d3cefe380ae9a4/pyobjc_framework_ShazamKit-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:012560cab1997c1da6e19388b5192f68dcdf806c2f8d7bd1e66da37512d18b30", size = 8652 }, + { url = "https://files.pythonhosted.org/packages/ff/67/e240edb4005befd797b948c9b2416769991cbc5f45a65b3b7a3a86c10666/pyobjc_framework_ShazamKit-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aba33267e5624473fc4985ffbc10b74542694c0ec96050e69bf7afc25367a3e1", size = 8498 }, + { url = "https://files.pythonhosted.org/packages/be/a5/1c74ed5f624b525988353a488eea817c14be391d910271b551b54d60a7a4/pyobjc_framework_ShazamKit-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e97ee0a5f00d3ff1ab22540049cf1facfd7c8eb550730d67b56b328672e9fb67", size = 8532 }, ] [[package]] name = "pyobjc-framework-social" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/a8/c5a8ea9eea5ec096e03fcda22f3bf5077710a988dbcdbc543afed7478d34/pyobjc_framework_social-10.3.1.tar.gz", hash = "sha256:d1303cf3860ad02a8795c099e17888923505a9c45be407da50721a9a8a5b2efd", size = 13749 } +sdist = { url = "https://files.pythonhosted.org/packages/75/6f/83f92ac162fbb14fef97f100da2ad35ed2ed5bff2cb864e59b34ab5608c8/pyobjc_framework_social-10.3.2.tar.gz", hash = "sha256:8d55fe68ea1dff205c6b10fd57b0ab8e8ff1b0801ae61fd358a1c97b1a88f733", size = 14063 } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/bc/aa8ad14fc35f7a08fdc78757bfb341f3f4da9c6c8036201777d5f17b5ca7/pyobjc_framework_Social-10.3.1-py2.py3-none-any.whl", hash = "sha256:f83617c07db7c8bd15b3b9e0878ab2b6a286dcbd9a8c7f451da204f75db880e9", size = 4065 }, + { url = "https://files.pythonhosted.org/packages/d4/b2/96baecef2802c20ab47bb74d9d27c9291c0600d4a5681af4a9b7bb69be27/pyobjc_framework_Social-10.3.2-py2.py3-none-any.whl", hash = "sha256:9a2cbb8a25f1923e867ead924d9252992109a8462272dba47c1097e1fae4a61b", size = 4065 }, + { url = "https://files.pythonhosted.org/packages/ce/26/f25c19bc0d7f69992920b3c300384228cf476cc1703baa0db3ffd5ebd9a5/pyobjc_framework_Social-10.3.2-py3-none-any.whl", hash = "sha256:741e8017d737ae3288dc7b242238ab5248657f5f00c575f7e924b65c8bfbedec", size = 4060 }, ] [[package]] name = "pyobjc-framework-soundanalysis" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/23/bb9bc28f3d96e1316ac257b6b0605bcefb4b38879b9594272bbc9505e341/pyobjc_framework_soundanalysis-10.3.1.tar.gz", hash = "sha256:faa533644231f99dbdc2fcc3ecb9181c5df4f4dc68d42856729214021c83c881", size = 15578 } +sdist = { url = "https://files.pythonhosted.org/packages/20/99/52fead19bfc957466758e76f540c3bced518958f64cc73c6f34b6b21e856/pyobjc_framework_soundanalysis-10.3.2.tar.gz", hash = "sha256:3e5326c40b62238d448da9d52c78b22a659a1ec00eeed4358f58d5dc6758b2aa", size = 15900 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/f6/350c7b3e9ceba976a4669c87b86cf378918cb6938a6083cc16aeb271c81b/pyobjc_framework_SoundAnalysis-10.3.1-py2.py3-none-any.whl", hash = "sha256:ef67207ff4045e5db37f017bdcd07d4b42464c86fe6c3b56524f6f22a9cde216", size = 3789 }, + { url = "https://files.pythonhosted.org/packages/57/c1/94e0d04655e4d02f7b3cb3590dbfe5ec85018df85400a7bd3b3d67585e18/pyobjc_framework_SoundAnalysis-10.3.2-py2.py3-none-any.whl", hash = "sha256:8d654057428004c6ffeccc92e663560a544dc1a8b4234c404af089c55e1ad803", size = 3791 }, + { url = "https://files.pythonhosted.org/packages/e5/94/6c078f840ccfe2d02024d5340279cd60be0e120d63662d0d1dfceca71933/pyobjc_framework_SoundAnalysis-10.3.2-py3-none-any.whl", hash = "sha256:2c964e811adbdd5b86f207e6011e7ab6deb89896fb1bff19c1d7936ed6af7665", size = 3786 }, ] [[package]] name = "pyobjc-framework-speech" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/8c/cc25b4267f884139b9677ea3fed8a8b99c423ef3f72dcc35eae6a01e4007/pyobjc_framework_speech-10.3.1.tar.gz", hash = "sha256:5b77b1d1ced0d1ad7244037b865dda2b83e8f9562d76d1e9fa4fea3b89e437b8", size = 29979 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/3a/c9f92ab6b648b1ea346d2c8aac78e8a82fd56c9e8c1fa0c369c09ce535b7/pyobjc_framework_speech-10.3.2.tar.gz", hash = "sha256:86e825076ce65b5dbdf3ce0b37ab1d251beff3e97773114d3933012d6d771fd8", size = 30314 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/13/112143807eae621c4237bdc75e6275af9915313ea64cffe3fd6e255ca6ae/pyobjc_framework_Speech-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:07afd82d76b98b67a78c07098a814a0b862bcf00fc072d49d8da435202008a18", size = 9135 }, - { url = "https://files.pythonhosted.org/packages/14/f1/6902241407b59de5c889e72fe05a329d107e97e50c6829023b9adfbab7e7/pyobjc_framework_Speech-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:444994d062286ff2769e07425d511503b2047b381afad1d64c8517ef4e44d01f", size = 9190 }, - { url = "https://files.pythonhosted.org/packages/13/98/f1f6ac438b9712f351e7fb013be4d95eb40692f5570eaea8138c4ccb4337/pyobjc_framework_Speech-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:e7fad907f9c0c49c5272f316d20e66ba0415038203ca277381753b035c16061a", size = 6712 }, - { url = "https://files.pythonhosted.org/packages/0d/f9/ae6eb7a2c72f15820ab8bbbf3b57be719fb491fe6523a7e9d1700c613b82/pyobjc_framework_Speech-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2294b60e1ab59b1340b820e6fee67766a959edd580d73e3b938f15653805d64c", size = 9555 }, + { url = "https://files.pythonhosted.org/packages/de/06/af0e21c571e61f6f43a1c0244f1c7eba2f5cffeb609408d538f8b1d3ae44/pyobjc_framework_Speech-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:372efaf0ace54a4b3a3dd09525e94f7dc9c964062cfe3523de89a68f0e75839f", size = 9034 }, + { url = "https://files.pythonhosted.org/packages/1b/45/fa71effc59cb835d3f05315ea9bec250f0089cc57876f78e1b0e2f1837bd/pyobjc_framework_Speech-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c4601f2012c0299b3191baff9a35d14bc40a4139ac6aac1439731a287b50558f", size = 8997 }, + { url = "https://files.pythonhosted.org/packages/20/14/e633e89e1be1b87331e0e715e887b01a6944d08d1b0bff4f67a93ae9a742/pyobjc_framework_Speech-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3958d497b20a567afd7382360738809049f02cb712a8c21a5f6bbcb962857da2", size = 6597 }, + { url = "https://files.pythonhosted.org/packages/ac/bb/c927eff4762523f5c31e878371af3f3dd9bbfbdb926c3468c50c5c858412/pyobjc_framework_Speech-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:8c562b43963a2764e5565f5151ebacb31af87bfc1de3556cada8358eb9ad6855", size = 9466 }, ] [[package]] name = "pyobjc-framework-spritekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/a3/037c63ce21d3a01d1d3c891b17979c5c1ce13a0893c97848bf2eb3e30442/pyobjc_framework_spritekit-10.3.1.tar.gz", hash = "sha256:2c11f35f48302f487c51ba8030f5cf79493a9dc0993dd901016ae4b8d8047c8b", size = 95557 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/11/aefc94b7d2d8a3e43f51bf448d7dea48fca8c637439b2708e203fe16e4c3/pyobjc_framework_spritekit-10.3.2.tar.gz", hash = "sha256:cd28510d2158455ab9f0109655ecbebbdaff98daf3fb6af19e2f472a91496270", size = 95884 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/15/df384944ae0699ff3dffe20e0f9f3d64f09d58d2ee33dbc4beff2e359e38/pyobjc_framework_SpriteKit-10.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:af355eccc18437e0932e1b327817e8f50d194bfa471b65b4733185ba606ab792", size = 17827 }, - { url = "https://files.pythonhosted.org/packages/78/19/60a5a3da996744095234e01445e93cbfdedb44dd0b0e01b661bb6618de7b/pyobjc_framework_SpriteKit-10.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c3fd6aaecd7abd6ebc83d4c37a22950d55b75911fdb99628b2677f44085a0212", size = 17881 }, + { url = "https://files.pythonhosted.org/packages/27/49/e213e65c43746eb6d7ffcbcd12b585f23c45bc37683ec7ad07e407926333/pyobjc_framework_SpriteKit-10.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:76b215b7834d03f7b1d87b5566d254dca73fa1a66c70c2e8d2d2802c916fdbf5", size = 17608 }, + { url = "https://files.pythonhosted.org/packages/5a/02/a9b5cf9724065d2b21f159bb5eac81b1ad25fcee2063d6504aaebbe24850/pyobjc_framework_SpriteKit-10.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1eb4e7106897702398b4b975268f94291b4747f04d0cb9ea8765ba3b12eff3e6", size = 17671 }, ] [[package]] name = "pyobjc-framework-storekit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/42/e0ebe600ca0572fea164c2308bdd8866cb09167ef1617ed66d5c9a9a6026/pyobjc_framework_storekit-10.3.1.tar.gz", hash = "sha256:913b4aad7dc31df7d8011c54a695da65cc57819f4b48c98abaed4e6d9ff7d323", size = 63667 } +sdist = { url = "https://files.pythonhosted.org/packages/24/eb/cf77c88a0a957b142869b184600ca0a43b8a944fd257429e64a9a04b1abe/pyobjc_framework_storekit-10.3.2.tar.gz", hash = "sha256:8112857047363c200708ba4472e644d1d465a134edcd5edd4b0da6ab4bcff143", size = 64015 } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/dd/a10721d0d7634deff95a2e5d514269fa89b8d1754a7c724d85eab155286b/pyobjc_framework_StoreKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f9c50a980846b236884504ad42690d49935bda3de5d779fca3cdfb16d43fa8d1", size = 12630 }, - { url = "https://files.pythonhosted.org/packages/d7/45/06593054fa5ac13701e1571f1560b0b9418e47b0a8f98dcd8521ca748804/pyobjc_framework_StoreKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:b3846b249a6fc5d26c80320098858978e0a16f46e98fc998075f16f539ac89fc", size = 12682 }, - { url = "https://files.pythonhosted.org/packages/a1/14/2e120443f39891d350ce213939cd20a52158dccd92ad9046d72744812723/pyobjc_framework_StoreKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c3575facbb3d238b8c9f3054c1422488414d89a42906dbcbfdbb47ef8be3da66", size = 9084 }, - { url = "https://files.pythonhosted.org/packages/2b/e7/49a1b2b3ef3a16ea29110db454f7428e78472aacba230e4d96c81e18451c/pyobjc_framework_StoreKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:2b5848f0e08b42dd4dabe5822b436b904a697e923f529ccaad910dfb822b2b9d", size = 12544 }, + { url = "https://files.pythonhosted.org/packages/96/f3/63bfd03cc831a79cf5bb8424dd69fdcad7a642df5a3dc7f747a8d8cd33b1/pyobjc_framework_StoreKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:f5747eea8acbdabb91f6928072724fc4e3519bc9c0b13ba3555b595cf434398a", size = 12437 }, + { url = "https://files.pythonhosted.org/packages/da/1c/64b95c69253c72c070bee14572958e5592a7e3c5cc46233a94c641e7e677/pyobjc_framework_StoreKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:c90c764811e234d8fe84b6ed1cabfc920e6672b0886325d70f055c3177e35c5f", size = 12409 }, + { url = "https://files.pythonhosted.org/packages/e1/c1/be31ee465e631ef391120851922bc7fd89f2e116dd51f0d89255ebbfd02d/pyobjc_framework_StoreKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1cc915f33f4fb6fd064e2cdd06afedb65e4e369d4daf8a9ec0b12088ae298411", size = 8920 }, + { url = "https://files.pythonhosted.org/packages/79/9a/4bb361811778d13744a2f806c53ec15ad167afeba3ff11acbb3592e859ff/pyobjc_framework_StoreKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:63856ef6decc3240dbb53131710b35d2d65d878010c3deeb62e2af52867d0d6f", size = 12390 }, ] [[package]] name = "pyobjc-framework-symbols" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d7/2b/e32921c7f2e00ba41fdd6befc0f7aabf17bc4c136f2b6a0cf4f44939940e/pyobjc_framework_symbols-10.3.1.tar.gz", hash = "sha256:3e3f35ef3646b5f9c0653d9dbf5693cf87de3df04420cb2679dad74c75965d18", size = 11785 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/bc/80ed504beaeddebaeca4fd1237315987971af99ade2f6e755f4663b8dbeb/pyobjc_framework_symbols-10.3.2.tar.gz", hash = "sha256:b6293ac919513f8f91e2f4d847bca3b67a10e3a9e636bd2a6a05d7d2b43bb3ad", size = 12118 } wheels = [ - { url = "https://files.pythonhosted.org/packages/97/bb/f4a01bec12bc1c9dfe86b0428d39a5e9d5614e0f433b5eda42af43d3d1c0/pyobjc_framework_Symbols-10.3.1-py2.py3-none-any.whl", hash = "sha256:6e171da5af2612e186cc4cf896ad7f2672c021a1fc18bc8ef49b79c4c831202d", size = 2958 }, + { url = "https://files.pythonhosted.org/packages/b3/e3/8ef641dd42b3225bf907b9b877d9d67c3d8684a3563b6ef989f29de5f8be/pyobjc_framework_Symbols-10.3.2-py2.py3-none-any.whl", hash = "sha256:f2d003989d857f62d9cf5f93dce83ea58f59319b0cdd6ef178ce1d380907831e", size = 2958 }, + { url = "https://files.pythonhosted.org/packages/ab/98/860c1b05b9be35d74d716db421daf654cd984188cb5998c2beac5557889c/pyobjc_framework_Symbols-10.3.2-py3-none-any.whl", hash = "sha256:bcc5453605ecbf462c1f868db91921eab4d23039d1ddc04f3be5fba719efe3c3", size = 2954 }, ] [[package]] name = "pyobjc-framework-syncservices" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-coredata" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/77/eb/6b73844bc7a4f964128cde7fffbe4243b62c691626b4b101337b6ac7caff/pyobjc_framework_syncservices-10.3.1.tar.gz", hash = "sha256:1cd5e3eaf85a11996184afad1da47037cd921e302ccb35fe388b19f91a685669", size = 49572 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/49/2a72d27312a7b41f814f0dec33d6b27972a4842e509d2db39200a189ac63/pyobjc_framework_syncservices-10.3.2.tar.gz", hash = "sha256:4ccd394746027b788907af2846dd1ab3505f340f0bf24400191017e5d0e6300e", size = 49889 } wheels = [ - { url = "https://files.pythonhosted.org/packages/da/cf/bf62d8583436bad00a8b0bf59a6f0b1009b25229f51522a22f2164beeff5/pyobjc_framework_SyncServices-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:aa98a38f59f230da7817dc08055c8049fa961193af16caa262c51e4ec8b5de20", size = 14394 }, - { url = "https://files.pythonhosted.org/packages/ca/ed/3a406dde3ec505c5650ce8b379e566f146a84a22efca1b7a12a10e61e613/pyobjc_framework_SyncServices-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:9d3798cc745143d44da101bb0eb9d482326b761f48c3699251191e9c3656ee6c", size = 14450 }, - { url = "https://files.pythonhosted.org/packages/78/82/402f2ddb89c41c1c2db4aa6b9683d169bbddac89c284951126415734170b/pyobjc_framework_SyncServices-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:97020a88d743a6f12ed3f72d062ab96712a7cc0e7b0293c7c5860c014002cc73", size = 10337 }, - { url = "https://files.pythonhosted.org/packages/84/e0/e72454fbef0749ba98e77ac91a5fc055abadec202ee75b1d95001fcf0fab/pyobjc_framework_SyncServices-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:b9b7bc58b04654172968cdc1cfe74b43ca0ad2e03c24c7921234a57be2c22985", size = 14329 }, + { url = "https://files.pythonhosted.org/packages/81/00/9661a6f584bee05d1620f18799e049e8956391ff7178ec8de193fc4b80a8/pyobjc_framework_SyncServices-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:1ce9b66103d83021ca52b86cf3ad431a1ff29a2ad14c72e208c67cbf90b01eac", size = 14200 }, + { url = "https://files.pythonhosted.org/packages/29/31/b3c5f90858431f637b8acd5d8870521c27526e11c850fc933b4bc4dd71a3/pyobjc_framework_SyncServices-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:363d3a2e0bd067b0369921d9dc22707cc0c0b4a0aca0dad313b2de3ba52e943b", size = 14175 }, + { url = "https://files.pythonhosted.org/packages/55/8e/83e26740b02c11ef37b7a88fcfb3c0ae0f4dba85c0687ca8f34455152890/pyobjc_framework_SyncServices-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:88a35e31ca3ea3e29dcda259aee2bea9fe6eab97cb4017aa03d622efe21d11b8", size = 10190 }, + { url = "https://files.pythonhosted.org/packages/18/b2/0c9004d26bda69ad1be0d258b57a038a2023d0fe462d2600b208cb86b34b/pyobjc_framework_SyncServices-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:bb2f187ffae9627ce5745b61d9427e9234e73e043bda7471efa332be4092a9c4", size = 14140 }, ] [[package]] name = "pyobjc-framework-systemconfiguration" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1f/34/4a8a79ae382296533cf0aa51377f53d9157aa41484c83a506d9dc43fc9e1/pyobjc_framework_systemconfiguration-10.3.1.tar.gz", hash = "sha256:1bf6ffe98faa4e208bf594c857ba23cd56fe404bc579188ff53b704844d9c402", size = 124143 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/df/28b0da49f01b3f6b0b26d9ae530d4ad5d225e67c812469204552c8bc4c34/pyobjc_framework_systemconfiguration-10.3.2.tar.gz", hash = "sha256:6d98d26da42501abceb9b374ba8e31b01a96af87a77cd578ea1b691f8152bc86", size = 124533 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/23/4986e3f009493910f552e74cf239e09802d1df059075b021611959f22c5f/pyobjc_framework_SystemConfiguration-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:200c4b7d3483e5ccb86d4d5783ace8c26d4b3f9130684280f30080d53f62d4c5", size = 21723 }, - { url = "https://files.pythonhosted.org/packages/9c/65/c2db36889167836e1d26134c650e638cbf0667ceb815b2cc6d8bb9ed1ced/pyobjc_framework_SystemConfiguration-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:403392b0e2085cf528547d468bc523fbee418381bb61446eb4aa1f9a1c8a8494", size = 21800 }, - { url = "https://files.pythonhosted.org/packages/28/75/7a9635b41648b24c50eeb2c36a23e9ac37a3b5af8602fd42a34c4275e072/pyobjc_framework_SystemConfiguration-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f38a824261a30dc9961e13a7b9759dd0c77e1c7c4681e3c80c5751c560735289", size = 16960 }, - { url = "https://files.pythonhosted.org/packages/17/8e/fc0b787b8b68b1baf1f1881150f6b6d8d1b5480cf1f22ea063260a057ac9/pyobjc_framework_SystemConfiguration-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4e8816524cbb6c6ea9e1c596fc9a16c91f2063eba394135be9437bdbd469e125", size = 21680 }, + { url = "https://files.pythonhosted.org/packages/24/22/f97e03c121c7046232a2a66c04fe4b2b5cf9e7ee73d7b2da8c6ea55b57ea/pyobjc_framework_SystemConfiguration-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:e62d0aeb92b13f35bcba98ab40cc032af680f90e238929b9b5009517eac2eb1b", size = 21597 }, + { url = "https://files.pythonhosted.org/packages/a6/9b/332fe6055868fa3388c76023e658d0dbcdcadb8efb590da20f3317e2fae6/pyobjc_framework_SystemConfiguration-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:a346b119cf8b648d54d407a925a3492a4765312f7d9e1101db3dbc04d5d5d11e", size = 21607 }, + { url = "https://files.pythonhosted.org/packages/8f/4c/146579fc7ac78b416a15e353e058737c200be7abb3a660303446f44ed7a8/pyobjc_framework_SystemConfiguration-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3584696d9a69ac45eea07ae26a7605ccd6d6b1da5786d4b8115b0f667a61c730", size = 16838 }, + { url = "https://files.pythonhosted.org/packages/dd/81/14d32e91cf38feaa0761fecf3b1e5a926c62d8f00ff569b5a23ee92d23e7/pyobjc_framework_SystemConfiguration-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:9ca01e70d675811c27e6dde4ed662b5f29da5f131832129e4dc0d229f17d6059", size = 21577 }, ] [[package]] name = "pyobjc-framework-systemextensions" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dd/d2/eab93a69f95c757104112cb0bce3e1fc70de59ca47ff0c60d180f306819f/pyobjc_framework_systemextensions-10.3.1.tar.gz", hash = "sha256:34412e75c95a585d222ea23efc3eba436210ec0345cec6c7dc78d16e027d03e1", size = 19844 } +sdist = { url = "https://files.pythonhosted.org/packages/d5/45/df446df16f431d2c8c1733f5076b75eb3119ac21371dbe9c900542488099/pyobjc_framework_systemextensions-10.3.2.tar.gz", hash = "sha256:8e513fbc750cce3af0a77fab08c05c9cc2ba0d64116490bd1f7b0f9fe8ba6972", size = 20236 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/a9/5c97bbf22f792fd4beb01dc2bad894eab5f62687122fd9b156c743c04f8f/pyobjc_framework_SystemExtensions-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:b24edd33c71cb02a16bdd9b26d3a229a6b2a815c26a4c908b1b8b6cdf4f6c84a", size = 8672 }, - { url = "https://files.pythonhosted.org/packages/d5/bd/caf73e19fb2b4bae267df4cef98debfad7db265228337c4ab84540507561/pyobjc_framework_SystemExtensions-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:e2a24501a782d2b6f7fa339619eb5c988db6b31a6043d029f40f67c54fd9399e", size = 8739 }, - { url = "https://files.pythonhosted.org/packages/fb/c8/c92741bd28ed5eb51d6d62fe512c9d8cc9bb7956cf1729b2f09400f95df7/pyobjc_framework_SystemExtensions-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:1cacd2356142307cf221d568f3e7adda654c28c90c223db3830746f4c2b12aea", size = 6412 }, - { url = "https://files.pythonhosted.org/packages/9d/79/5cf9fad837bb20f221ac981e3f300eecb9a92d154bc53685173654baee30/pyobjc_framework_SystemExtensions-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6561876b2fd5c40620073fae9b924f2d8e0110e8573756ffc9521e4fbc825249", size = 9091 }, + { url = "https://files.pythonhosted.org/packages/82/25/83c77f5df751edc0a6012f1382287107646b4f86c514e58bf1bf18cc5aed/pyobjc_framework_SystemExtensions-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:ea3c137f9ce6cc151fd10bf5e6575a3078621c8483999a35d10f9eb2cd1e0940", size = 8598 }, + { url = "https://files.pythonhosted.org/packages/57/12/09f8865804700124acb5acac808c14db115fd076bad24669561a6531203e/pyobjc_framework_SystemExtensions-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:7678aaac1b0b704515448018544ee75cb4ed21a097e6cfeef1f3366ee4d4426a", size = 8573 }, + { url = "https://files.pythonhosted.org/packages/33/27/a8dcf0a653ed93e28cc77b754537f769dee761b1afb467fcd37f7740f108/pyobjc_framework_SystemExtensions-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:baf0ae2a280719162017be54ad7f5492db784f2e720f09b30399823020ebfa25", size = 6316 }, + { url = "https://files.pythonhosted.org/packages/07/cb/951dee2b1f50a29dfca6503eab062ca83b6536fa0789d6d99e52536cd749/pyobjc_framework_SystemExtensions-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:de854daa0a31a795a679b8695213a55d8de829e0047945539658afd25ec447bf", size = 9023 }, ] [[package]] name = "pyobjc-framework-threadnetwork" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dc/6c/c502594ac550436bb8d989b18734eeabd5ce189c2ebb1f4895e3e00d424d/pyobjc_framework_threadnetwork-10.3.1.tar.gz", hash = "sha256:1038210a8e5dfa86aefd10894563913e767e95d1c1bd4333ae5f9c6cabbb3ce9", size = 12639 } +sdist = { url = "https://files.pythonhosted.org/packages/91/85/821d14d8118329be7106e2d656fd8466ceb20d6d90e4341ac8e7b43dc970/pyobjc_framework_threadnetwork-10.3.2.tar.gz", hash = "sha256:1d8b73000c077da1dafc4c4298acda6df8ec615a4bf94ffc2f9f3ef8c209dc45", size = 12976 } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/d0/bcc8756d01a1d4f400148f67123a7238429be7c2ddb95f94d15beec8372f/pyobjc_framework_ThreadNetwork-10.3.1-py2.py3-none-any.whl", hash = "sha256:95ddbed8a114cc1f05db613bb53247465ec48ccaad2b56f5da466317808fc32b", size = 3377 }, + { url = "https://files.pythonhosted.org/packages/c6/9d/3b4ea6436886cb61ac948310de2d2ca9c151aef0a7884722820143c61e11/pyobjc_framework_ThreadNetwork-10.3.2-py2.py3-none-any.whl", hash = "sha256:291d6cd9b7ccec8d82ab6be21597b9478a022d6cf2f63006c05fba2e0764c36f", size = 3382 }, + { url = "https://files.pythonhosted.org/packages/ea/b6/53f54252118508eeabf049a607af47f79c7748d34cd14c8977314b4d77b4/pyobjc_framework_ThreadNetwork-10.3.2-py3-none-any.whl", hash = "sha256:dd218e6f246e3a006b46cb76c4a82d7f45e2c827e91464fe12026fb0dcaa0409", size = 3376 }, ] [[package]] name = "pyobjc-framework-uniformtypeidentifiers" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1f/54/10c56c741e7c95ee4dd8db06afac5e59722e5372e35f3c5a3e7c2954c746/pyobjc_framework_uniformtypeidentifiers-10.3.1.tar.gz", hash = "sha256:1985fee7e1f1157db36f3c19ee0ad273677eeff10467f575086246bbeffcdf50", size = 18476 } +sdist = { url = "https://files.pythonhosted.org/packages/40/2b/665cebe17818d7cf6bb5edf38319bcb3dd2915e1eb6c9e65db8c7fb045a0/pyobjc_framework_uniformtypeidentifiers-10.3.2.tar.gz", hash = "sha256:59e8b11d78d89a24f7fb944853b93705ca48febf1ae42be57d16100e38703f69", size = 18820 } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/5c/48f1c942fa870439598e296eb2136fc5cec3f4a6e08bff25f727dc5e9bb8/pyobjc_framework_UniformTypeIdentifiers-10.3.1-py2.py3-none-any.whl", hash = "sha256:8bd1516ccec1807e2ad92a071242d83e9d1eda08ddbfae04dacc30d76c3d734c", size = 4467 }, + { url = "https://files.pythonhosted.org/packages/7d/82/3cf17596335b4f88e078761aae5940575d314921d3c1f4b3c82ef040766e/pyobjc_framework_UniformTypeIdentifiers-10.3.2-py2.py3-none-any.whl", hash = "sha256:9ee1c3297efead181deeae50d3322582517f6e5fd45e247f5691cdae995bda62", size = 4470 }, + { url = "https://files.pythonhosted.org/packages/62/02/032ad4a30d0e834ba3863562cdc962d7cbf4202530067a3437ac564737c7/pyobjc_framework_UniformTypeIdentifiers-10.3.2-py3-none-any.whl", hash = "sha256:a1a01cf7d41346e9c2002f979783d797b35f07def5b3c7c426f2c4f34f8163d1", size = 4461 }, ] [[package]] name = "pyobjc-framework-usernotifications" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/12/d2/32432d2b579ca393f65f7ae7b53cf887f2efda861c4e1b372428f65dd4bf/pyobjc_framework_usernotifications-10.3.1.tar.gz", hash = "sha256:ddb5de88fb659c2241429b6408ddcabbfc0c2c9e4a7f5f543a6fab1c4953403b", size = 45987 } +sdist = { url = "https://files.pythonhosted.org/packages/39/87/2cf1c42e4686fe407b1043ae6fce7484da9a05d5f930ef4807aeb7f62233/pyobjc_framework_usernotifications-10.3.2.tar.gz", hash = "sha256:84743b40d950959b92bc15265278d4e4de45bf84fc3a45d8636f38476d7201c1", size = 46431 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/63/3d1151dd355936977c3a713d0952f384d0f175e2d8ed29352ba374f17c80/pyobjc_framework_UserNotifications-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:d85c293e0520530ac7152b3f293c5606f0495b7727de331ef4e198278bf40e98", size = 9677 }, - { url = "https://files.pythonhosted.org/packages/32/4d/631dd68f95261db9acd8488519bf9afd9359686cd5a027ba653f64b60f04/pyobjc_framework_UserNotifications-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:0001bb25f15e6f8cac81bcb58cab8161a15a6fe41f6c475e8da364c913bdb090", size = 9721 }, - { url = "https://files.pythonhosted.org/packages/2b/37/b052c7afbe4d9e7e6c6fbe3faf2fc81e766bcb8012809b496315177e1295/pyobjc_framework_UserNotifications-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:0bba49b0f290f5597b94a80608c785b61d61aa3885cdf05529862e47fe1cec67", size = 7315 }, - { url = "https://files.pythonhosted.org/packages/f7/46/188efc812446f32793673d1d3d000e037052373e2bb19e0a3e5d1036b53b/pyobjc_framework_UserNotifications-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:59294fa6110778de145c9299c220990d057a6a171d37ab5d8a6ab1780bf7888f", size = 10049 }, + { url = "https://files.pythonhosted.org/packages/bf/21/2c83a778d0da60260bbde94ce1bf005a701925166b6026f097ed958fe456/pyobjc_framework_UserNotifications-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:4b4374e72846f9773e1b424760d2b198e77a38497068822be1cf31da2861c421", size = 9594 }, + { url = "https://files.pythonhosted.org/packages/0a/93/5a5f4e51ca777b48c46c7c355687be7a03e17a995429661a864d7306da58/pyobjc_framework_UserNotifications-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:72bf46de155743fa642f00b842d94335590f6b764a4d252d6fd8d8c93fb94292", size = 9556 }, + { url = "https://files.pythonhosted.org/packages/d7/76/18d38dfed670c633d818a04cb952a42551a6e386e1691ea9a55e289a8c7d/pyobjc_framework_UserNotifications-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:a8430e6fc5e8ac7f5f4a10a28d609d3b995f682a93213e656f0bb60c725f104e", size = 7202 }, + { url = "https://files.pythonhosted.org/packages/cf/b2/948d5494c85fc77d64c69c01c7259c0fcd7006d09fee49bd4a73dfb92538/pyobjc_framework_UserNotifications-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:809c9b19ebca72928fc1f78dfa6a4010c5ba20a36d7a355405a87c8b3e30c0ee", size = 9971 }, ] [[package]] name = "pyobjc-framework-usernotificationsui" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, { name = "pyobjc-framework-usernotifications" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/10/a525f13919955d653fd431f527974e2604b0b8727c886de1ec7e2bf34189/pyobjc_framework_usernotificationsui-10.3.1.tar.gz", hash = "sha256:80390b5361bb6014dc32d0afbf581280e7762a4f67460a736f461f613d397094", size = 13288 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/14/c028e54d93df12c4b84376bb1f343bbcf338dea8f21bd724c32de8841efe/pyobjc_framework_usernotificationsui-10.3.2.tar.gz", hash = "sha256:9e21f207dcb4305b2dd80ed5329515867aee0caf8f40157911f8b4c6674e4b60", size = 13611 } wheels = [ - { url = "https://files.pythonhosted.org/packages/17/4b/1a198d4d8907d83f4334d34dae76572e18362391ee0644c9a5bc002980e7/pyobjc_framework_UserNotificationsUI-10.3.1-py2.py3-none-any.whl", hash = "sha256:bc6cb92a6ac947e8fe9685f3c1964c5a9f98e576b936b0bbff8c528f47f976d2", size = 3522 }, + { url = "https://files.pythonhosted.org/packages/f6/48/f1151d0a32375c0ec62307dd742f04653bd997787cfd936be8184394329a/pyobjc_framework_UserNotificationsUI-10.3.2-py2.py3-none-any.whl", hash = "sha256:fc7c1b88c59f64e9b0d859b456f8f08cdded7daa6360e073f99d91ae84d641af", size = 3526 }, + { url = "https://files.pythonhosted.org/packages/5c/c9/16ceccd1c95f899b503be31ab4d39b898df9c1179001cf15f1b5caa34e3e/pyobjc_framework_UserNotificationsUI-10.3.2-py3-none-any.whl", hash = "sha256:6a59e6a08dfd1d9d4e0a9e3f61099731b2a901d189e14d97ccf8fe12fd011be4", size = 3520 }, ] [[package]] name = "pyobjc-framework-videosubscriberaccount" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/a6/41d6afaa800bf8839c45642b60d7fa13a0e292d477762c33ce22ba1c0aa6/pyobjc_framework_videosubscriberaccount-10.3.1.tar.gz", hash = "sha256:f62509e976b805bc76ff5928444677ac542b52dd9f7781ac0731d7c4b22bed96", size = 23793 } +sdist = { url = "https://files.pythonhosted.org/packages/6d/05/6a25c1ef8189288ae7267cacf444031083840c9bd7fc0f8d9c6e61de34d6/pyobjc_framework_videosubscriberaccount-10.3.2.tar.gz", hash = "sha256:6072e55242c150bfc09417679813966482570fcfd0f0dd740c241ef5589f546a", size = 24126 } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/38/a9e721db0fa383eeabaadd6c6762ea33d6f50a25c22b70ee82c31d536e66/pyobjc_framework_VideoSubscriberAccount-10.3.1-py2.py3-none-any.whl", hash = "sha256:4b489f0007dce8ea17f37316175dac2768cd173a4d4c7a1d5f87fb3991c1e518", size = 4295 }, + { url = "https://files.pythonhosted.org/packages/e9/bb/5e6281b9eaf8e0f70ba59cabcc7198ca385b5c3b42aca9472c6701f82334/pyobjc_framework_VideoSubscriberAccount-10.3.2-py2.py3-none-any.whl", hash = "sha256:aa3695a742f6ba04285a3721ca33bd537adcafd3ca018757fd95234a5c11baa1", size = 4297 }, + { url = "https://files.pythonhosted.org/packages/32/aa/5c135299b1b3fdcea0fb87075fd512710f348d7771a946326e9fbf84b2db/pyobjc_framework_VideoSubscriberAccount-10.3.2-py3-none-any.whl", hash = "sha256:c0ad86a912eed0d21fe8b93dda213928bad5c06cc106afa0d6fb7cf012f55f54", size = 4293 }, ] [[package]] name = "pyobjc-framework-videotoolbox" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -4238,33 +4302,33 @@ dependencies = [ { name = "pyobjc-framework-coremedia" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/65/e4/435561672801cb29a398b208e75e6823e6c369027cd51f0774f3b24f2baf/pyobjc_framework_videotoolbox-10.3.1.tar.gz", hash = "sha256:7ebc281523b2b37aff17ce6eabd0c81081864b3e3e4a83ae72b18fd70c57c521", size = 66253 } +sdist = { url = "https://files.pythonhosted.org/packages/8c/19/06a028ffdb254cf621795158f7da56c6c0f201d53b40709095a5f60fe55d/pyobjc_framework_videotoolbox-10.3.2.tar.gz", hash = "sha256:8ddfa3d25d53d03d00847f63cfcc7c033aab54d9fc1fdd0d18ff60af17aa2b14", size = 66599 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/98/96be1155746ad418400628191c9dd5e8354bb9f7f842c3c134a04d47efa5/pyobjc_framework_VideoToolbox-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:bc52aa91f568060e0087762f2a4d876bf7b683e5396779e93925252e26f0330b", size = 12471 }, - { url = "https://files.pythonhosted.org/packages/3b/e1/dbe5951097e627f6a7be79ee9a662beba8fb4eb20cebabab1d810f4aa881/pyobjc_framework_VideoToolbox-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3d20ea92b597f4758f24ed8e19f7a7a372faf6478d739e7cb7f7cd73d3e8617a", size = 12527 }, - { url = "https://files.pythonhosted.org/packages/30/19/45ba628af703952faa1989fc5801102067b406595089dbaea50c4ab1016d/pyobjc_framework_VideoToolbox-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:761e3cd05090f5d9e9fbae2c25e3f352f19aa86a0d02a1189b94ec5c4bc37111", size = 10050 }, - { url = "https://files.pythonhosted.org/packages/a6/6c/51641d571758869feac26a48f625be1bcfe8ef3e30badcc36823baffe486/pyobjc_framework_VideoToolbox-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7d4fb38f95e91f62d14b05fafcc6197775e9eaf4e5b698bc1fb313756f59b10d", size = 12811 }, + { url = "https://files.pythonhosted.org/packages/5e/f4/ba94c7e311f68f9cda0456b8dc689158faf773c95e969b662ae9d75027f2/pyobjc_framework_VideoToolbox-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:32f68e12382812942582af7e7989eb6bad20842dfa7fc49d42d9e030ab9d7d68", size = 12414 }, + { url = "https://files.pythonhosted.org/packages/99/a3/c1c8fa454053a18f1cbd4d31f33344824e052402475faf518fb551ef028d/pyobjc_framework_VideoToolbox-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:85cc24f28bf3e9f097ed18179444c8ad60e8c8e174b2f7a8e550044336bdf13b", size = 12428 }, + { url = "https://files.pythonhosted.org/packages/f6/35/7ba035993cb0c5961734358c334a74661cbe17371c6e5026856a11ed1108/pyobjc_framework_VideoToolbox-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3553a087ad6be8bc99eada062a95aa03cf5128fcfb168c43564eed16f9fe80ed", size = 9969 }, + { url = "https://files.pythonhosted.org/packages/be/c2/f95bd57feb9fad969ab61ebdb2147df308019cf9706ceef033d07abc26ea/pyobjc_framework_VideoToolbox-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:7bf688e46e5439237e34c575291615dc8ec3fd2a63723712ab9db708c39d385d", size = 12778 }, ] [[package]] name = "pyobjc-framework-virtualization" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/d1/427065aab5570855228fe0bc3d387fcc4c76e18538c28c5fc2497b0f75f2/pyobjc_framework_virtualization-10.3.1.tar.gz", hash = "sha256:8348ddef18eb943d151e5b5977e4d410012ee2e3f6048c16f7cfe0c1a73536cb", size = 61591 } +sdist = { url = "https://files.pythonhosted.org/packages/71/5d/df555942df3bcd7df6a6ed0830b5b4a0024f4fda00ee7cefaf61afc19e05/pyobjc_framework_virtualization-10.3.2.tar.gz", hash = "sha256:6b8cd5b69dd5197b96d6b907c9224ea4d05ef3bebad552cfebf331ed98c2d4eb", size = 61977 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/3f/5e11618a50c525bd89b8219360f1782dc6aff52cae6548cd767dc32af74c/pyobjc_framework_Virtualization-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c046abcebf6a64a47ea50311f3e4aaae424dbac719e847cd15b375ebe99a51ed", size = 12300 }, - { url = "https://files.pythonhosted.org/packages/2f/41/9ef6d54da4bbc517ca5132a01e385b0ec3e329f9437a12fea608016a89a1/pyobjc_framework_Virtualization-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:dc14f6c3deaf367adff18b509e766dc78c4695a4cd76e4aad3ff4b1e207a4635", size = 12343 }, - { url = "https://files.pythonhosted.org/packages/9e/f5/7a98665de2b20a524600b2cca273bf7364e6adb51b77b9b8ee12549b2d58/pyobjc_framework_Virtualization-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bd79c1bb45113957f24cbf8b6d0ff175361c52c97e326313ecd76cfa015f6cef", size = 9124 }, - { url = "https://files.pythonhosted.org/packages/9e/6a/732e29e221584680c669a2cf5e0c148832ef3643588cbf8ba1ec971be773/pyobjc_framework_Virtualization-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:6e5e6645e31acd07d30b1607c4cdaf0ae0e4d8223471a8a089004c2deb6fdea5", size = 12231 }, + { url = "https://files.pythonhosted.org/packages/fc/41/57fcaedd3ea5b13298fd4951d2728625cce94bf04412547f91737dd29a22/pyobjc_framework_Virtualization-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:68159f5947956a08f26c3f94ce2dc390ed721b0edbbe7ab757ca9cb3217130f9", size = 11550 }, + { url = "https://files.pythonhosted.org/packages/7d/10/aa03e2dac3cdd9a32e04d6fb470d46dbcff106f9e146d17de818053f8c1c/pyobjc_framework_Virtualization-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:760100c421920927d301655138f8082b220a0af95e23bf86caf8d88bce102672", size = 11542 }, + { url = "https://files.pythonhosted.org/packages/d9/1b/c681f3b43725cda8b49537ff05a640190e63e262005df720b8b2cb23cecd/pyobjc_framework_Virtualization-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c467afb44f2731ebd3836f63a888097ee1fc823b310d9c348c9a89d43bce9749", size = 8980 }, + { url = "https://files.pythonhosted.org/packages/be/d8/588cf8a9106bbec33482744191ab5a93468947d3a04c9ce03ab86c64ba54/pyobjc_framework_Virtualization-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:a77afef5364c18c84f4b9b3c97a0dfaa037f34218ccea5f87f30d344eba86532", size = 12046 }, ] [[package]] name = "pyobjc-framework-vision" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, @@ -4272,28 +4336,28 @@ dependencies = [ { name = "pyobjc-framework-coreml" }, { name = "pyobjc-framework-quartz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/55/ff278351cb47f939a932dc5d9d80a8a0d51a427e27e0419833d49219e757/pyobjc_framework_vision-10.3.1.tar.gz", hash = "sha256:aa071656d395afc2d624600a9f30d6a3344aa747bf37f613ff3972158c40881c", size = 108532 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/f9/f9063b8cdbb2210b51beadffabb7021d55a20b3e9693219c53e98d067c10/pyobjc_framework_vision-10.3.2.tar.gz", hash = "sha256:5cfea4a750657e2c8e7c8b0c26c7aac2578ba09ab8f66ffa0e2ee632410cacf3", size = 108990 } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/4a/c6e7e1aaa2e095be007c82fa4861fae9496737a6a446b0671e12d39bd1fd/pyobjc_framework_Vision-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:dff3582678930461a0bb11bf070854d49f6944a851dc89edc63fac93c75ddf39", size = 17706 }, - { url = "https://files.pythonhosted.org/packages/63/a0/aa85feda6dc7d3a516f4d5059e421a7692d1f4d43e9d3f66e4f56f1281cb/pyobjc_framework_Vision-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:32626183c51674efb3b5738e2884c3fea37edca010117cf71bd72cb3c49c869a", size = 22423 }, - { url = "https://files.pythonhosted.org/packages/c5/ac/ef1f7365ce8b5f0f912553a3dd182998ddef60a5ae7998304231035b0755/pyobjc_framework_Vision-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2473b346a112c51ac485184305bd13c402e0db45f2df3d277315bd49efba18e9", size = 15731 }, - { url = "https://files.pythonhosted.org/packages/0c/c8/9c6e715b310613aff7612d0b70588cca53e066b577f69db5d66d62e147b9/pyobjc_framework_Vision-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:4302e2c5f68c9667ecd4273809cbc4611af6368b123d69596e5b088f1b1aa16b", size = 17614 }, + { url = "https://files.pythonhosted.org/packages/af/ef/16c0b66793d538402b125db5d579e18a40ac7163f154a2190a93a88796af/pyobjc_framework_Vision-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:cae03536f12ed5764ecfdcf9cf96b37e577cc6e8c466aeb23a6aa0682b45ae39", size = 17546 }, + { url = "https://files.pythonhosted.org/packages/ec/2b/16ed6ddea51eca88c7b9676431d7b35767b9b97c10e25ec8b5d762009923/pyobjc_framework_Vision-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:ba5ccd0bf12c29c2cdf1b52405c395929b5802e9120476b8e9a01af691ab33dc", size = 22021 }, + { url = "https://files.pythonhosted.org/packages/ee/b5/02bd6bd54c456962ea9b1a09be96ce7af936e40b57555f035a3d79204d47/pyobjc_framework_Vision-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2b7edc178ebeb621ba9a239449f8ae1fc6b643f60914ff2be4dad69e901ca331", size = 15580 }, + { url = "https://files.pythonhosted.org/packages/b1/24/13648f9449a2406c0134f35cbdebe124c571b275b7b3061cf7bf3ceaf8ab/pyobjc_framework_Vision-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:1083e23ee4dae7cca8e2d094b1995909690b277c967975227d3395222c0c7377", size = 17469 }, ] [[package]] name = "pyobjc-framework-webkit" -version = "10.3.1" +version = "10.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyobjc-core" }, { name = "pyobjc-framework-cocoa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/15/6b/50c1000354e9de966a150b4a41c291c83517eec9bd162f43ea4e55444d64/pyobjc_framework_webkit-10.3.1.tar.gz", hash = "sha256:7ad9f4eb91a6dff39848d9c2ab71f170aeab4b6396bcec8e5a780739f9be4222", size = 610874 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/98/89187c121e130e11ce6c7ed86a2de10cb6d6c8994eb77ab2b81a060d1916/pyobjc_framework_webkit-10.3.2.tar.gz", hash = "sha256:b60d097a87867c252286855158cc35d991e2273f162f40f8e38e95153894bbbf", size = 611469 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/8b/bddff1733fb4da9b23039b1a51f755a446a127fbab08a6e4fbaae0445510/pyobjc_framework_WebKit-10.3.1-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:df52913e4c3cb77d4551d9848e30be01b82cace54cede850c88a7e0ab41a20a9", size = 44518 }, - { url = "https://files.pythonhosted.org/packages/fa/e9/304f8cc6e3a5ac7062c77134e14579ad33941a761b43c97f1be8aa16ad0a/pyobjc_framework_WebKit-10.3.1-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:207a7aa57817d3ab3fa033e42ab612f8c00521f13ff2871547c92cd94ed51f85", size = 44626 }, - { url = "https://files.pythonhosted.org/packages/e1/8a/a5bd21238eb1cc5bbc2efc1e3fafad64ec60cd43d728e7d02767b041fe66/pyobjc_framework_WebKit-10.3.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c0d4c1ba0fafae503a8df95e7b6bd4236951ba72508ec62809e37825f382c635", size = 32764 }, - { url = "https://files.pythonhosted.org/packages/77/5a/c9620198d192abc6e8e694301507a3e6c8c76f4d3aac3bac24414f807c95/pyobjc_framework_WebKit-10.3.1-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:c8e3334978a1bd927ea14ed73f56d6741561a69d31d082d2b23d1b48446917c8", size = 44697 }, + { url = "https://files.pythonhosted.org/packages/86/83/a4526fb64176b7e0d19ee20a8760548ef144227784aea5f0e1bf634c3ae2/pyobjc_framework_WebKit-10.3.2-cp36-abi3-macosx_10_13_universal2.whl", hash = "sha256:c72c1b0c5b72fd5203cd4b445e96494eab2518ef688629d2ea75dced95c236e9", size = 44898 }, + { url = "https://files.pythonhosted.org/packages/f1/85/e8d439d84bed84a15bd22bb0c2a4c7ab9371a37d3038fbde478d1be4ee2a/pyobjc_framework_WebKit-10.3.2-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:3ef315a185289c051f43f1d2aebf94a2cdd4408731d1d712972e2e130a17e632", size = 44879 }, + { url = "https://files.pythonhosted.org/packages/3c/a4/df27ea5a5256e0a031ccdfc875636641dd807f1f882b95f8a61bb189b871/pyobjc_framework_WebKit-10.3.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f8e89d51511b0bf2d6ec8d8a0cf8e74b3451987fb10a3adf5d6181cc77c1260a", size = 32797 }, + { url = "https://files.pythonhosted.org/packages/68/1a/06e6f8de19505c3807db47962308390e2d15e5729342c8382750a538762c/pyobjc_framework_WebKit-10.3.2-cp36-abi3-macosx_11_0_universal2.whl", hash = "sha256:efce711d3cbe5ef34620002ae2189b802420e6e2923973ed4c59989443b5499f", size = 44847 }, ] [[package]] @@ -4301,9 +4365,9 @@ name = "pyopencl" version = "2024.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy" }, - { name = "platformdirs" }, - { name = "pytools" }, + { name = "numpy", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "platformdirs", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "pytools", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ec/28/4679ea08b84532a67fd2d270c8f87aec64dab9ab99e618927b6a26ea063e/pyopencl-2024.3.tar.gz", hash = "sha256:d5d08de9b0a6d85695caba1769aceae4e7661f06951c507bd1ce8fb7a89e2413", size = 422604 } wheels = [ @@ -4357,7 +4421,7 @@ name = "pyqt5" version = "5.15.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyqt5-sip" }, + { name = "pyqt5-sip", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/28/6c/640e3f5c734c296a7193079a86842a789edb7988dca39eab44579088a1d1/PyQt5-5.15.2.tar.gz", hash = "sha256:372b08dc9321d1201e4690182697c5e7ffb2e0770e6b4a45519025134b12e4fc", size = 3265445 } wheels = [ @@ -4416,7 +4480,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.3.3" +version = "8.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -4424,9 +4488,9 @@ dependencies = [ { name = "packaging" }, { name = "pluggy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 } +sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 }, + { url = "https://files.pythonhosted.org/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6", size = 343083 }, ] [[package]] @@ -4575,9 +4639,9 @@ name = "pytools" version = "2024.1.10" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "platformdirs" }, - { name = "siphash24" }, - { name = "typing-extensions" }, + { name = "platformdirs", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "siphash24", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, + { name = "typing-extensions", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ee/0f/56e109c0307f831b5d598ad73976aaaa84b4d0e98da29a642e797eaa940c/pytools-2024.1.10.tar.gz", hash = "sha256:9af6f4b045212c49be32bb31fe19606c478ee4b09631886d05a32459f4ce0a12", size = 81741 } wheels = [ @@ -4725,7 +4789,7 @@ wheels = [ [[package]] name = "rerun-sdk" -version = "0.20.0" +version = "0.20.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -4735,11 +4799,11 @@ dependencies = [ { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/06/58c8253f74d10ef55ff90668eee831a7bce8f727c616755383b89f398aef/rerun_sdk-0.20.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:a3219692a9fde1021f6b249e2ed179b6b13a0b57972339a01086bd895d378e7b", size = 41828529 }, - { url = "https://files.pythonhosted.org/packages/0d/ab/d4a5a596f9768a2ad0c392eea4e6136573fa1c6926359748d3a10399475d/rerun_sdk-0.20.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:4275f4260f1cf1acd326deb01efc70ac15a0009a72cd765d8361e026dc87ce8f", size = 40032577 }, - { url = "https://files.pythonhosted.org/packages/35/0d/65eb62dc9eb4330efb179f556485b4c6043f4e09d49bf9545d5773e8a60f/rerun_sdk-0.20.0-cp38-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:75693f7a364e66579085aefe4f6035ec2ddf1c6c6e65838b9ce8975dc33d3d82", size = 44502703 }, - { url = "https://files.pythonhosted.org/packages/44/63/b5cfd5651747a58020d3fa29d943e7a70f268bec33e881c3cc15c622d9c6/rerun_sdk-0.20.0-cp38-abi3-manylinux_2_31_x86_64.whl", hash = "sha256:dfaf0e4e60f9909366866a568e4786458b5cd85635f5740bbfe696e298c68a6a", size = 45994387 }, - { url = "https://files.pythonhosted.org/packages/9b/6b/436de0d7b31331b925082784c34831a5bab41ad0bd6ff015bfb86bc634b8/rerun_sdk-0.20.0-cp38-abi3-win_amd64.whl", hash = "sha256:9d5988769b6b668728b24303e0502d867ae2a8cd457e21d7da48d5a3ca2e1538", size = 37450315 }, + { url = "https://files.pythonhosted.org/packages/3a/33/07f3b0bbf52b7ec35f75b542c4695a1dec759485d8a09ab7431b6abebf9c/rerun_sdk-0.20.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:19a55f96f76669661b0ca0de611ce7a2155fc34a03bfdc157704f75b2344578e", size = 40849237 }, + { url = "https://files.pythonhosted.org/packages/14/71/57dcee8bcbb6ce6800337c38c7e86a9b14a69ccd9df804053605fedadf60/rerun_sdk-0.20.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:09ad76d2554ddb5f822177040001d88302b085cd405e03664452b56a1228d3e7", size = 39005923 }, + { url = "https://files.pythonhosted.org/packages/49/8d/200246d82923dd23b1cd7ea48699604738e2648b3be5abc35afc60557ed2/rerun_sdk-0.20.2-cp38-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:ded02ec65ea36ceb18880c2bcf70a0606644ffc1da1d21c5ebef7bafd4e92292", size = 43487593 }, + { url = "https://files.pythonhosted.org/packages/a8/bd/43a042b07882e516104048ff6384840cfb6cc08d3ebd8b5d9148ce2ec6c1/rerun_sdk-0.20.2-cp38-abi3-manylinux_2_31_x86_64.whl", hash = "sha256:b448636d13cd8d7b7b3892113709ac1e94d285496345226d0d4b004e85007f31", size = 44983516 }, + { url = "https://files.pythonhosted.org/packages/9c/04/8255b3bd802906d8e9d6845f301d4142398c2a273d64ea353b4438b48207/rerun_sdk-0.20.2-cp38-abi3-win_amd64.whl", hash = "sha256:5ff1f5441299ffe4307e1c2e59592bd498e15b39c6116d346ff1a1e9618ebd4f", size = 36455244 }, ] [[package]] @@ -4789,27 +4853,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.7.4" +version = "0.8.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/8b/bc4e0dfa1245b07cf14300e10319b98e958a53ff074c1dd86b35253a8c2a/ruff-0.7.4.tar.gz", hash = "sha256:cd12e35031f5af6b9b93715d8c4f40360070b2041f81273d0527683d5708fce2", size = 3275547 } +sdist = { url = "https://files.pythonhosted.org/packages/95/d0/8ff5b189d125f4260f2255d143bf2fa413b69c2610c405ace7a0a8ec81ec/ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f", size = 3313222 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/4b/f5094719e254829766b807dadb766841124daba75a37da83e292ae5ad12f/ruff-0.7.4-py3-none-linux_armv6l.whl", hash = "sha256:a4919925e7684a3f18e18243cd6bea7cfb8e968a6eaa8437971f681b7ec51478", size = 10447512 }, - { url = "https://files.pythonhosted.org/packages/9e/1d/3d2d2c9f601cf6044799c5349ff5267467224cefed9b35edf5f1f36486e9/ruff-0.7.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfb365c135b830778dda8c04fb7d4280ed0b984e1aec27f574445231e20d6c63", size = 10235436 }, - { url = "https://files.pythonhosted.org/packages/62/83/42a6ec6216ded30b354b13e0e9327ef75a3c147751aaf10443756cb690e9/ruff-0.7.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:63a569b36bc66fbadec5beaa539dd81e0527cb258b94e29e0531ce41bacc1f20", size = 9888936 }, - { url = "https://files.pythonhosted.org/packages/4d/26/e1e54893b13046a6ad05ee9b89ee6f71542ba250f72b4c7a7d17c3dbf73d/ruff-0.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d06218747d361d06fd2fdac734e7fa92df36df93035db3dc2ad7aa9852cb109", size = 10697353 }, - { url = "https://files.pythonhosted.org/packages/21/24/98d2e109c4efc02bfef144ec6ea2c3e1217e7ce0cfddda8361d268dfd499/ruff-0.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0cea28d0944f74ebc33e9f934238f15c758841f9f5edd180b5315c203293452", size = 10228078 }, - { url = "https://files.pythonhosted.org/packages/ad/b7/964c75be9bc2945fc3172241b371197bb6d948cc69e28bc4518448c368f3/ruff-0.7.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80094ecd4793c68b2571b128f91754d60f692d64bc0d7272ec9197fdd09bf9ea", size = 11264823 }, - { url = "https://files.pythonhosted.org/packages/12/8d/20abdbf705969914ce40988fe71a554a918deaab62c38ec07483e77866f6/ruff-0.7.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:997512325c6620d1c4c2b15db49ef59543ef9cd0f4aa8065ec2ae5103cedc7e7", size = 11951855 }, - { url = "https://files.pythonhosted.org/packages/b8/fc/6519ce58c57b4edafcdf40920b7273dfbba64fc6ebcaae7b88e4dc1bf0a8/ruff-0.7.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00b4cf3a6b5fad6d1a66e7574d78956bbd09abfd6c8a997798f01f5da3d46a05", size = 11516580 }, - { url = "https://files.pythonhosted.org/packages/37/1a/5ec1844e993e376a86eb2456496831ed91b4398c434d8244f89094758940/ruff-0.7.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7dbdc7d8274e1422722933d1edddfdc65b4336abf0b16dfcb9dedd6e6a517d06", size = 12692057 }, - { url = "https://files.pythonhosted.org/packages/50/90/76867152b0d3c05df29a74bb028413e90f704f0f6701c4801174ba47f959/ruff-0.7.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e92dfb5f00eaedb1501b2f906ccabfd67b2355bdf117fea9719fc99ac2145bc", size = 11085137 }, - { url = "https://files.pythonhosted.org/packages/c8/eb/0a7cb6059ac3555243bd026bb21785bbc812f7bbfa95a36c101bd72b47ae/ruff-0.7.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3bd726099f277d735dc38900b6a8d6cf070f80828877941983a57bca1cd92172", size = 10681243 }, - { url = "https://files.pythonhosted.org/packages/5e/76/2270719dbee0fd35780b05c08a07b7a726c3da9f67d9ae89ef21fc18e2e5/ruff-0.7.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2e32829c429dd081ee5ba39aef436603e5b22335c3d3fff013cd585806a6486a", size = 10319187 }, - { url = "https://files.pythonhosted.org/packages/9f/e5/39100f72f8ba70bec1bd329efc880dea8b6c1765ea1cb9d0c1c5f18b8d7f/ruff-0.7.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:662a63b4971807623f6f90c1fb664613f67cc182dc4d991471c23c541fee62dd", size = 10803715 }, - { url = "https://files.pythonhosted.org/packages/a5/89/40e904784f305fb56850063f70a998a64ebba68796d823dde67e89a24691/ruff-0.7.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:876f5e09eaae3eb76814c1d3b68879891d6fde4824c015d48e7a7da4cf066a3a", size = 11162912 }, - { url = "https://files.pythonhosted.org/packages/8d/1b/dd77503b3875c51e3dbc053fd8367b845ab8b01c9ca6d0c237082732856c/ruff-0.7.4-py3-none-win32.whl", hash = "sha256:75c53f54904be42dd52a548728a5b572344b50d9b2873d13a3f8c5e3b91f5cac", size = 8702767 }, - { url = "https://files.pythonhosted.org/packages/63/76/253ddc3e89e70165bba952ecca424b980b8d3c2598ceb4fc47904f424953/ruff-0.7.4-py3-none-win_amd64.whl", hash = "sha256:745775c7b39f914238ed1f1b0bebed0b9155a17cd8bc0b08d3c87e4703b990d6", size = 9497534 }, - { url = "https://files.pythonhosted.org/packages/aa/70/f8724f31abc0b329ca98b33d73c14020168babcf71b0cba3cded5d9d0e66/ruff-0.7.4-py3-none-win_arm64.whl", hash = "sha256:11bff065102c3ae9d3ea4dc9ecdfe5a5171349cdd0787c1fc64761212fc9cf1f", size = 8851590 }, + { url = "https://files.pythonhosted.org/packages/a2/d6/1a6314e568db88acdbb5121ed53e2c52cebf3720d3437a76f82f923bf171/ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5", size = 10532605 }, + { url = "https://files.pythonhosted.org/packages/89/a8/a957a8812e31facffb6a26a30be0b5b4af000a6e30c7d43a22a5232a3398/ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087", size = 10278243 }, + { url = "https://files.pythonhosted.org/packages/a8/23/9db40fa19c453fabf94f7a35c61c58f20e8200b4734a20839515a19da790/ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209", size = 9917739 }, + { url = "https://files.pythonhosted.org/packages/e2/a0/6ee2d949835d5701d832fc5acd05c0bfdad5e89cfdd074a171411f5ccad5/ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871", size = 10779153 }, + { url = "https://files.pythonhosted.org/packages/7a/25/9c11dca9404ef1eb24833f780146236131a3c7941de394bc356912ef1041/ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1", size = 10304387 }, + { url = "https://files.pythonhosted.org/packages/c8/b9/84c323780db1b06feae603a707d82dbbd85955c8c917738571c65d7d5aff/ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5", size = 11360351 }, + { url = "https://files.pythonhosted.org/packages/6b/e1/9d4bbb2ace7aad14ded20e4674a48cda5b902aed7a1b14e6b028067060c4/ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d", size = 12022879 }, + { url = "https://files.pythonhosted.org/packages/75/28/752ff6120c0e7f9981bc4bc275d540c7f36db1379ba9db9142f69c88db21/ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26", size = 11610354 }, + { url = "https://files.pythonhosted.org/packages/ba/8c/967b61c2cc8ebd1df877607fbe462bc1e1220b4a30ae3352648aec8c24bd/ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1", size = 12813976 }, + { url = "https://files.pythonhosted.org/packages/7f/29/e059f945d6bd2d90213387b8c360187f2fefc989ddcee6bbf3c241329b92/ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c", size = 11154564 }, + { url = "https://files.pythonhosted.org/packages/55/47/cbd05e5a62f3fb4c072bc65c1e8fd709924cad1c7ec60a1000d1e4ee8307/ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa", size = 10760604 }, + { url = "https://files.pythonhosted.org/packages/bb/ee/4c3981c47147c72647a198a94202633130cfda0fc95cd863a553b6f65c6a/ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540", size = 10391071 }, + { url = "https://files.pythonhosted.org/packages/6b/e6/083eb61300214590b188616a8ac6ae1ef5730a0974240fb4bec9c17de78b/ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9", size = 10896657 }, + { url = "https://files.pythonhosted.org/packages/77/bd/aacdb8285d10f1b943dbeb818968efca35459afc29f66ae3bd4596fbf954/ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5", size = 11228362 }, + { url = "https://files.pythonhosted.org/packages/39/72/fcb7ad41947f38b4eaa702aca0a361af0e9c2bf671d7fd964480670c297e/ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790", size = 8803476 }, + { url = "https://files.pythonhosted.org/packages/e4/ea/cae9aeb0f4822c44651c8407baacdb2e5b4dcd7b31a84e1c5df33aa2cc20/ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6", size = 9614463 }, + { url = "https://files.pythonhosted.org/packages/eb/76/fbb4bd23dfb48fa7758d35b744413b650a9fd2ddd93bca77e30376864414/ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737", size = 8959621 }, ] [[package]] @@ -4823,15 +4887,15 @@ wheels = [ [[package]] name = "sentry-sdk" -version = "2.18.0" +version = "2.19.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/24/cc/0d87cc8246f52d92228aa6718a24e1988a2893f4abe2f64ec5a8bcba4185/sentry_sdk-2.18.0.tar.gz", hash = "sha256:0dc21febd1ab35c648391c664df96f5f79fb0d92d7d4225cd9832e53a617cafd", size = 293615 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/0e/cc0e60f0e0cfd5a9e42622ff5a227301c6475a56bcfa82e8e893bc209f20/sentry_sdk-2.19.0.tar.gz", hash = "sha256:ee4a4d2ae8bfe3cac012dcf3e4607975904c137e1738116549fc3dbbb6ff0e36", size = 298045 } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/9b/2d512efdb0de203d1f0312fae53433c3009ba70b0078421d25baaedc960a/sentry_sdk-2.18.0-py2.py3-none-any.whl", hash = "sha256:ee70e27d1bbe4cd52a38e1bd28a5fadb9b17bc29d91b5f2b97ae29c0a7610442", size = 317514 }, + { url = "https://files.pythonhosted.org/packages/c6/6b/191ca63f05d3ecc7600b5b3abd493a4c1b8468289c9737a7735ade1fedca/sentry_sdk-2.19.0-py2.py3-none-any.whl", hash = "sha256:7b0b3b709dee051337244a09a30dbf6e95afe0d34a1f8b430d45e0982a7c125b", size = 322158 }, ] [[package]] @@ -4868,11 +4932,11 @@ wheels = [ [[package]] name = "setuptools" -version = "75.5.0" +version = "75.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c8/db/722a42ffdc226e950c4757b3da7b56ff5c090bb265dccd707f7b8a3c6fee/setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef", size = 1336032 } +sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/df/88ccbee85aefbca071db004fdc8f8d2507d55d5a9dc27ebb93c92edb1bd8/setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829", size = 1222710 }, + { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 }, ] [[package]] @@ -4880,7 +4944,7 @@ name = "shapely" version = "2.0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy" }, + { name = "numpy", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4a/89/0d20bac88016be35ff7d3c0c2ae64b477908f1b1dfa540c5d69ac7af07fe/shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", size = 282361 } wheels = [ @@ -4989,23 +5053,43 @@ wheels = [ [[package]] name = "tomli" -version = "2.1.0" +version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/e4/1b6cbcc82d8832dd0ce34767d5c560df8a3547ad8cbc427f34601415930a/tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8", size = 16622 } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/f7/4da0ffe1892122c9ea096c57f64c2753ae5dd3ce85488802d11b0992cc6d/tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391", size = 13750 }, + { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 }, + { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 }, + { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 }, + { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 }, + { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 }, + { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, + { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, + { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, + { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 }, + { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] [[package]] name = "tqdm" -version = "4.67.0" +version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "platform_system == 'Windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e8/4f/0153c21dc5779a49a0598c445b1978126b1344bab9ee71e53e44877e14e0/tqdm-4.67.0.tar.gz", hash = "sha256:fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a", size = 169739 } +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/78/57043611a16c655c8350b4c01b8d6abfb38cc2acb475238b62c2146186d7/tqdm-4.67.0-py3-none-any.whl", hash = "sha256:0cd8af9d56911acab92182e88d763100d4788bdf421d251616040cc4d44863be", size = 78590 }, + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, ] [[package]] @@ -5085,7 +5169,7 @@ name = "yapf" version = "0.43.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "platformdirs" }, + { name = "platformdirs", marker = "platform_machine != 'aarch64' or platform_system != 'Linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/23/97/b6f296d1e9cc1ec25c7604178b48532fa5901f721bcf1b8d8148b13e5588/yapf-0.43.0.tar.gz", hash = "sha256:00d3aa24bfedff9420b2e0d5d9f5ab6d9d4268e72afbf59bb3fa542781d5218e", size = 254907 } wheels = [ @@ -5094,48 +5178,48 @@ wheels = [ [[package]] name = "yarl" -version = "1.17.2" +version = "1.18.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/d5/0d0481857de42a44ba4911f8010d4b361dc26487f48d5503c66a797cff48/yarl-1.17.2.tar.gz", hash = "sha256:753eaaa0c7195244c84b5cc159dc8204b7fd99f716f11198f999f2332a86b178", size = 178947 } +sdist = { url = "https://files.pythonhosted.org/packages/b7/9d/4b94a8e6d2b51b599516a5cb88e5bc99b4d8d4583e468057eaa29d5f0918/yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1", size = 181062 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/3a/56d6c650a51f9f44b5d848c0c2f2d994aced6fdb8bc993641f913f286eb4/yarl-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:792155279dc093839e43f85ff7b9b6493a8eaa0af1f94f1f9c6e8f4de8c63500", size = 141027 }, - { url = "https://files.pythonhosted.org/packages/6a/fa/3d180fde00a1825db11c9f6539dc8a52edd09838f3c18d484cdceea289c2/yarl-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38bc4ed5cae853409cb193c87c86cd0bc8d3a70fd2268a9807217b9176093ac6", size = 93821 }, - { url = "https://files.pythonhosted.org/packages/19/71/f7241b745f0f9b3120de1b2a63c08b5bae5ec6d42890026a58545a068c4e/yarl-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4a8c83f6fcdc327783bdc737e8e45b2e909b7bd108c4da1892d3bc59c04a6d84", size = 91759 }, - { url = "https://files.pythonhosted.org/packages/c1/75/be5ef48a356966fa15f98002d7f3bfbed2bc71b6f815f77914147c1607c4/yarl-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6d5fed96f0646bfdf698b0a1cebf32b8aae6892d1bec0c5d2d6e2df44e1e2d", size = 340120 }, - { url = "https://files.pythonhosted.org/packages/73/4e/61ac73e26e9d184a8f5186c764a039c682fdbe71be84a5eaf3dca1b459f4/yarl-1.17.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:782ca9c58f5c491c7afa55518542b2b005caedaf4685ec814fadfcee51f02493", size = 356095 }, - { url = "https://files.pythonhosted.org/packages/98/3b/3db2fcc6eba18c47108f5c4d737818ca266086e9fb11675e268ebac33f41/yarl-1.17.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff6af03cac0d1a4c3c19e5dcc4c05252411bf44ccaa2485e20d0a7c77892ab6e", size = 353460 }, - { url = "https://files.pythonhosted.org/packages/e1/fc/01eba5b0ff6c7d49e86d77561a3d89493b4bbae8cc91bd137ed3dfd2c4b2/yarl-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a3f47930fbbed0f6377639503848134c4aa25426b08778d641491131351c2c8", size = 343630 }, - { url = "https://files.pythonhosted.org/packages/52/a3/2823941b1c3e13e6442cefcb5fec60265c7c5fbcf6361bd8056505ac8f7f/yarl-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1fa68a3c921365c5745b4bd3af6221ae1f0ea1bf04b69e94eda60e57958907f", size = 335610 }, - { url = "https://files.pythonhosted.org/packages/13/71/6d54fa13ac34207083fd7c3b6b3a218503dfdd7d14d9915dd5e830e5e514/yarl-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:187df91395c11e9f9dc69b38d12406df85aa5865f1766a47907b1cc9855b6303", size = 347466 }, - { url = "https://files.pythonhosted.org/packages/50/5e/0fe426c43d86e32193e02a3b34f1a5179e87be9c95eec722da2386b00f9d/yarl-1.17.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:93d1c8cc5bf5df401015c5e2a3ce75a5254a9839e5039c881365d2a9dcfc6dc2", size = 345927 }, - { url = "https://files.pythonhosted.org/packages/62/a0/bf973a0c1912f9993e3db9ac270e18a3a71ca83e495ee52a3d25e6a64253/yarl-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:11d86c6145ac5c706c53d484784cf504d7d10fa407cb73b9d20f09ff986059ef", size = 349662 }, - { url = "https://files.pythonhosted.org/packages/a2/9d/02a574f7281a48e95b3a9d7ae4ea069ad617356492abaebb02ac861b037a/yarl-1.17.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c42774d1d1508ec48c3ed29e7b110e33f5e74a20957ea16197dbcce8be6b52ba", size = 361601 }, - { url = "https://files.pythonhosted.org/packages/5b/56/7887ea130159ff3354423173ba815963da8f1cba2df054e06d561d08e179/yarl-1.17.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8e589379ef0407b10bed16cc26e7392ef8f86961a706ade0a22309a45414d7", size = 365767 }, - { url = "https://files.pythonhosted.org/packages/4d/3e/84f6d161f74c2b478d774e35b5200981bb373846fc5420880607113fbba5/yarl-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1056cadd5e850a1c026f28e0704ab0a94daaa8f887ece8dfed30f88befb87bb0", size = 358643 }, - { url = "https://files.pythonhosted.org/packages/fd/d5/efe4dce200bfe64eab34f550548805350d46e95f5e24b51a46fe71d0f526/yarl-1.17.2-cp311-cp311-win32.whl", hash = "sha256:be4c7b1c49d9917c6e95258d3d07f43cfba2c69a6929816e77daf322aaba6628", size = 83884 }, - { url = "https://files.pythonhosted.org/packages/9b/24/fa2fe6ff50a49ec059698ef3738b00531977473ca1dcf6225db29d07404f/yarl-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:ac8eda86cc75859093e9ce390d423aba968f50cf0e481e6c7d7d63f90bae5c9c", size = 90514 }, - { url = "https://files.pythonhosted.org/packages/47/d0/aa07433c3a8958bc7639e7d7cb2d6fbad204b40e59b6ec7c95c51ef891d8/yarl-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd90238d3a77a0e07d4d6ffdebc0c21a9787c5953a508a2231b5f191455f31e9", size = 142115 }, - { url = "https://files.pythonhosted.org/packages/44/ce/0be3f77e99aded7b949ca2c822203309ef20d5ec0dd4470056e21dabcdb1/yarl-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c74f0b0472ac40b04e6d28532f55cac8090e34c3e81f118d12843e6df14d0909", size = 94435 }, - { url = "https://files.pythonhosted.org/packages/ae/4e/e22fb21928889837ebf97dd04c7c523cad992edb1499c8cabbd438e8e93a/yarl-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d486ddcaca8c68455aa01cf53d28d413fb41a35afc9f6594a730c9779545876", size = 92264 }, - { url = "https://files.pythonhosted.org/packages/95/5b/4f54cac3711a76c22c4c47cedb216fdd6296ad5dafab4bc64da2e417c4f6/yarl-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25b7e93f5414b9a983e1a6c1820142c13e1782cc9ed354c25e933aebe97fcf2", size = 331820 }, - { url = "https://files.pythonhosted.org/packages/5b/8b/ab46adcf981c406a7b8cc47593505ac64cf0c7dbfa233900da6c37288042/yarl-1.17.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a0baff7827a632204060f48dca9e63fbd6a5a0b8790c1a2adfb25dc2c9c0d50", size = 341798 }, - { url = "https://files.pythonhosted.org/packages/54/cc/db5d3ddcc8d2b34775fef2c5b3a50332f822e70d5828ab9216e1ea0e9033/yarl-1.17.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:460024cacfc3246cc4d9f47a7fc860e4fcea7d1dc651e1256510d8c3c9c7cde0", size = 341445 }, - { url = "https://files.pythonhosted.org/packages/ec/1f/c45d9c02111389f71e6d9b49dff8744f7987b174da974619c4815f2d671d/yarl-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5870d620b23b956f72bafed6a0ba9a62edb5f2ef78a8849b7615bd9433384171", size = 336391 }, - { url = "https://files.pythonhosted.org/packages/9b/11/6946a16258ae9fcea4da2e71c0d5d9f21868821109ceca2884d6bb137fc1/yarl-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2941756754a10e799e5b87e2319bbec481ed0957421fba0e7b9fb1c11e40509f", size = 325233 }, - { url = "https://files.pythonhosted.org/packages/ae/83/72453e6e570fd6948d21348350c3cf2cd811dc0cc9b7779a99e5a57554a3/yarl-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9611b83810a74a46be88847e0ea616794c406dbcb4e25405e52bff8f4bee2d0a", size = 343952 }, - { url = "https://files.pythonhosted.org/packages/6e/91/4de2fecb15129a0ecb6844b7693f18c6616586b801635e30ef0d232bc0e2/yarl-1.17.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cd7e35818d2328b679a13268d9ea505c85cd773572ebb7a0da7ccbca77b6a52e", size = 340256 }, - { url = "https://files.pythonhosted.org/packages/60/d4/6dd9959a6499a8d52ca48bbe139fc84ad3291697c681758c4851f5375972/yarl-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6b981316fcd940f085f646b822c2ff2b8b813cbd61281acad229ea3cbaabeb6b", size = 345975 }, - { url = "https://files.pythonhosted.org/packages/1f/97/76ac1bc71faa71101ed8e0d902471124d8d9d5adc3faa3aa9a0bd0989e54/yarl-1.17.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:688058e89f512fb7541cb85c2f149c292d3fa22f981d5a5453b40c5da49eb9e8", size = 359359 }, - { url = "https://files.pythonhosted.org/packages/1b/d7/47ffcb4ea188af16b6b0f6ae1b53ed620a81a7180b92f68a551750f5c812/yarl-1.17.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56afb44a12b0864d17b597210d63a5b88915d680f6484d8d202ed68ade38673d", size = 363988 }, - { url = "https://files.pythonhosted.org/packages/30/d6/385e830d3b9efcd18bcdd212d5c752dbcc9f1c48bde00a256f7401f8b32b/yarl-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:17931dfbb84ae18b287279c1f92b76a3abcd9a49cd69b92e946035cff06bcd20", size = 357342 }, - { url = "https://files.pythonhosted.org/packages/ae/5b/6b5e78e7a71698b2b4830e83aa71e86c85357dbf13c617c8515c03d019a9/yarl-1.17.2-cp312-cp312-win32.whl", hash = "sha256:ff8d95e06546c3a8c188f68040e9d0360feb67ba8498baf018918f669f7bc39b", size = 83581 }, - { url = "https://files.pythonhosted.org/packages/bd/fa/a70635eabe46ba55032bd1e1c2561067f35036b614299f09b15cdef167ee/yarl-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:4c840cc11163d3c01a9d8aad227683c48cd3e5be5a785921bcc2a8b4b758c4f3", size = 89882 }, - { url = "https://files.pythonhosted.org/packages/80/01/7536ea609df5afce0c0d3c00e5843f0005d65226b6a61028310ac9673a07/yarl-1.17.2-py3-none-any.whl", hash = "sha256:dd7abf4f717e33b7487121faf23560b3a50924f80e4bef62b22dab441ded8f3b", size = 44583 }, + { url = "https://files.pythonhosted.org/packages/40/93/282b5f4898d8e8efaf0790ba6d10e2245d2c9f30e199d1a85cae9356098c/yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069", size = 141555 }, + { url = "https://files.pythonhosted.org/packages/6d/9c/0a49af78df099c283ca3444560f10718fadb8a18dc8b3edf8c7bd9fd7d89/yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193", size = 94351 }, + { url = "https://files.pythonhosted.org/packages/5a/a1/205ab51e148fdcedad189ca8dd587794c6f119882437d04c33c01a75dece/yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889", size = 92286 }, + { url = "https://files.pythonhosted.org/packages/ed/fe/88b690b30f3f59275fb674f5f93ddd4a3ae796c2b62e5bb9ece8a4914b83/yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8", size = 340649 }, + { url = "https://files.pythonhosted.org/packages/07/eb/3b65499b568e01f36e847cebdc8d7ccb51fff716dbda1ae83c3cbb8ca1c9/yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca", size = 356623 }, + { url = "https://files.pythonhosted.org/packages/33/46/f559dc184280b745fc76ec6b1954de2c55595f0ec0a7614238b9ebf69618/yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8", size = 354007 }, + { url = "https://files.pythonhosted.org/packages/af/ba/1865d85212351ad160f19fb99808acf23aab9a0f8ff31c8c9f1b4d671fc9/yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae", size = 344145 }, + { url = "https://files.pythonhosted.org/packages/94/cb/5c3e975d77755d7b3d5193e92056b19d83752ea2da7ab394e22260a7b824/yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3", size = 336133 }, + { url = "https://files.pythonhosted.org/packages/19/89/b77d3fd249ab52a5c40859815765d35c91425b6bb82e7427ab2f78f5ff55/yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb", size = 347967 }, + { url = "https://files.pythonhosted.org/packages/35/bd/f6b7630ba2cc06c319c3235634c582a6ab014d52311e7d7c22f9518189b5/yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e", size = 346397 }, + { url = "https://files.pythonhosted.org/packages/18/1a/0b4e367d5a72d1f095318344848e93ea70da728118221f84f1bf6c1e39e7/yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59", size = 350206 }, + { url = "https://files.pythonhosted.org/packages/b5/cf/320fff4367341fb77809a2d8d7fe75b5d323a8e1b35710aafe41fdbf327b/yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d", size = 362089 }, + { url = "https://files.pythonhosted.org/packages/57/cf/aadba261d8b920253204085268bad5e8cdd86b50162fcb1b10c10834885a/yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e", size = 366267 }, + { url = "https://files.pythonhosted.org/packages/54/58/fb4cadd81acdee6dafe14abeb258f876e4dd410518099ae9a35c88d8097c/yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a", size = 359141 }, + { url = "https://files.pythonhosted.org/packages/9a/7a/4c571597589da4cd5c14ed2a0b17ac56ec9ee7ee615013f74653169e702d/yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1", size = 84402 }, + { url = "https://files.pythonhosted.org/packages/ae/7b/8600250b3d89b625f1121d897062f629883c2f45339623b69b1747ec65fa/yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5", size = 91030 }, + { url = "https://files.pythonhosted.org/packages/33/85/bd2e2729752ff4c77338e0102914897512e92496375e079ce0150a6dc306/yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50", size = 142644 }, + { url = "https://files.pythonhosted.org/packages/ff/74/1178322cc0f10288d7eefa6e4a85d8d2e28187ccab13d5b844e8b5d7c88d/yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576", size = 94962 }, + { url = "https://files.pythonhosted.org/packages/be/75/79c6acc0261e2c2ae8a1c41cf12265e91628c8c58ae91f5ff59e29c0787f/yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640", size = 92795 }, + { url = "https://files.pythonhosted.org/packages/6b/32/927b2d67a412c31199e83fefdce6e645247b4fb164aa1ecb35a0f9eb2058/yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2", size = 332368 }, + { url = "https://files.pythonhosted.org/packages/19/e5/859fca07169d6eceeaa4fde1997c91d8abde4e9a7c018e371640c2da2b71/yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75", size = 342314 }, + { url = "https://files.pythonhosted.org/packages/08/75/76b63ccd91c9e03ab213ef27ae6add2e3400e77e5cdddf8ed2dbc36e3f21/yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512", size = 341987 }, + { url = "https://files.pythonhosted.org/packages/1a/e1/a097d5755d3ea8479a42856f51d97eeff7a3a7160593332d98f2709b3580/yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba", size = 336914 }, + { url = "https://files.pythonhosted.org/packages/0b/42/e1b4d0e396b7987feceebe565286c27bc085bf07d61a59508cdaf2d45e63/yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb", size = 325765 }, + { url = "https://files.pythonhosted.org/packages/7e/18/03a5834ccc9177f97ca1bbb245b93c13e58e8225276f01eedc4cc98ab820/yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272", size = 344444 }, + { url = "https://files.pythonhosted.org/packages/c8/03/a713633bdde0640b0472aa197b5b86e90fbc4c5bc05b727b714cd8a40e6d/yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6", size = 340760 }, + { url = "https://files.pythonhosted.org/packages/eb/99/f6567e3f3bbad8fd101886ea0276c68ecb86a2b58be0f64077396cd4b95e/yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e", size = 346484 }, + { url = "https://files.pythonhosted.org/packages/8e/a9/84717c896b2fc6cb15bd4eecd64e34a2f0a9fd6669e69170c73a8b46795a/yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb", size = 359864 }, + { url = "https://files.pythonhosted.org/packages/1e/2e/d0f5f1bef7ee93ed17e739ec8dbcb47794af891f7d165fa6014517b48169/yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393", size = 364537 }, + { url = "https://files.pythonhosted.org/packages/97/8a/568d07c5d4964da5b02621a517532adb8ec5ba181ad1687191fffeda0ab6/yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285", size = 357861 }, + { url = "https://files.pythonhosted.org/packages/7d/e3/924c3f64b6b3077889df9a1ece1ed8947e7b61b0a933f2ec93041990a677/yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2", size = 84097 }, + { url = "https://files.pythonhosted.org/packages/34/45/0e055320daaabfc169b21ff6174567b2c910c45617b0d79c68d7ab349b02/yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477", size = 90399 }, + { url = "https://files.pythonhosted.org/packages/f5/4b/a06e0ec3d155924f77835ed2d167ebd3b211a7b0853da1cf8d8414d784ef/yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b", size = 45109 }, ] [[package]] From 34d62836fe4892aab9ffa07897be55d7fcbfc7e0 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Wed, 4 Dec 2024 19:24:21 -0800 Subject: [PATCH 25/26] hw: add fan intake and exhaust temps (#34156) * hw: add fan intake and exhaust temps * remove bat --------- Co-authored-by: Comma Device --- cereal/log.capnp | 2 ++ system/hardware/base.py | 2 +- system/hardware/hardwared.py | 2 ++ system/hardware/pc/hardware.py | 2 +- system/hardware/tici/hardware.py | 9 +++++++-- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cereal/log.capnp b/cereal/log.capnp index 142d4afcb9..b6ccf2f55f 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -486,6 +486,8 @@ struct DeviceState @0xa4d8b5af2aa492eb { nvmeTempC @35 :List(Float32); modemTempC @36 :List(Float32); pmicTempC @39 :List(Float32); + intakeTempC @46 :Float32; + exhaustTempC @47 :Float32; maxTempC @44 :Float32; # max of other temps, used to control fan thermalZones @38 :List(ThermalZone); thermalStatus @14 :ThermalStatus; diff --git a/system/hardware/base.py b/system/hardware/base.py index fafdbb41dc..0f8b7d8680 100644 --- a/system/hardware/base.py +++ b/system/hardware/base.py @@ -3,7 +3,7 @@ from collections import namedtuple from cereal import log -ThermalConfig = namedtuple('ThermalConfig', ['cpu', 'gpu', 'mem', 'bat', 'pmic']) +ThermalConfig = namedtuple('ThermalConfig', ['cpu', 'gpu', 'mem', 'pmic', 'intake', 'exhaust']) NetworkType = log.DeviceState.NetworkType diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index beb9b4a3a0..15b144ec4e 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -83,6 +83,8 @@ def read_thermal(thermal_config): dat.deviceState.gpuTempC = [read_tz(z) / thermal_config.gpu[1] for z in thermal_config.gpu[0]] dat.deviceState.memoryTempC = read_tz(thermal_config.mem[0]) / thermal_config.mem[1] dat.deviceState.pmicTempC = [read_tz(z) / thermal_config.pmic[1] for z in thermal_config.pmic[0]] + dat.deviceState.intakeTempC = read_tz(thermal_config.intake[0]) / thermal_config.intake[1] + dat.deviceState.exhaustTempC = read_tz(thermal_config.exhaust[0]) / thermal_config.exhaust[1] return dat diff --git a/system/hardware/pc/hardware.py b/system/hardware/pc/hardware.py index c778f6429b..a2386b92d2 100644 --- a/system/hardware/pc/hardware.py +++ b/system/hardware/pc/hardware.py @@ -54,7 +54,7 @@ class Pc(HardwareBase): print("SHUTDOWN!") def get_thermal_config(self): - return ThermalConfig(cpu=((None,), 1), gpu=((None,), 1), mem=(None, 1), bat=(None, 1), pmic=((None,), 1)) + return ThermalConfig(cpu=((None,), 1), gpu=((None,), 1), mem=(None, 1), pmic=((None,), 1), intake=(None, 1), exhaust=(None, 1)) def set_screen_brightness(self, percentage): pass diff --git a/system/hardware/tici/hardware.py b/system/hardware/tici/hardware.py index c53ef586a3..8950329841 100644 --- a/system/hardware/tici/hardware.py +++ b/system/hardware/tici/hardware.py @@ -323,12 +323,17 @@ class Tici(HardwareBase): os.system("sudo poweroff") def get_thermal_config(self): + intake, exhaust = (None, 1), (None, 1) + if self.get_device_type() == "mici": + intake = ("intake", 1000) + exhaust = ("exhaust", 1000) return ThermalConfig(cpu=([f"cpu{i}-silver-usr" for i in range(4)] + [f"cpu{i}-gold-usr" for i in range(4)], 1000), gpu=(("gpu0-usr", "gpu1-usr"), 1000), mem=("ddr-usr", 1000), - bat=(None, 1), - pmic=(("pm8998_tz", "pm8005_tz"), 1000)) + pmic=(("pm8998_tz", "pm8005_tz"), 1000), + intake=intake, + exhaust=exhaust) def set_screen_brightness(self, percentage): try: From 1f3c365f1aa7b49854b1e0bb9288e8e9426f38d6 Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Wed, 4 Dec 2024 22:10:36 -0800 Subject: [PATCH 26/26] ci: make openpilot-base image smaller (#34154) * big * here * why * pocl * remove this * more debug * see this * more * more * diff * cleanup * cleanup * check * NO DC??? This reverts commit 137cde5fc98ec39497e85f335e2f636cf9a5e5ea. --- Dockerfile.openpilot_base | 50 ++++----------------------------------- 1 file changed, 5 insertions(+), 45 deletions(-) diff --git a/Dockerfile.openpilot_base b/Dockerfile.openpilot_base index 6dbd249c23..aa5230fa6d 100644 --- a/Dockerfile.openpilot_base +++ b/Dockerfile.openpilot_base @@ -4,7 +4,7 @@ ENV PYTHONUNBUFFERED 1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ - apt-get install -y --no-install-recommends sudo tzdata locales ssh pulseaudio xvfb x11-xserver-utils gnome-screenshot && \ + apt-get install -y --no-install-recommends sudo tzdata locales ssh pulseaudio xvfb x11-xserver-utils gnome-screenshot pocl-opencl-icd && \ rm -rf /var/lib/apt/lists/* RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen @@ -18,43 +18,6 @@ RUN /tmp/tools/install_ubuntu_dependencies.sh && \ cd /usr/lib/gcc/arm-none-eabi/* && \ rm -rf arm/ thumb/nofp thumb/v6* thumb/v8* thumb/v7+fp thumb/v7-r+fp.sp -# Add OpenCL -RUN apt-get update && apt-get install -y --no-install-recommends \ - apt-utils \ - alien \ - unzip \ - tar \ - curl \ - xz-utils \ - dbus \ - gcc-arm-none-eabi \ - tmux \ - vim \ - libx11-6 \ - wget \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /tmp/opencl-driver-intel && \ - cd /tmp/opencl-driver-intel && \ - wget https://github.com/intel/llvm/releases/download/2024-WW14/oclcpuexp-2024.17.3.0.09_rel.tar.gz && \ - wget https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/oneapi-tbb-2021.12.0-lin.tgz && \ - mkdir -p /opt/intel/oclcpuexp_2024.17.3.0.09_rel && \ - cd /opt/intel/oclcpuexp_2024.17.3.0.09_rel && \ - tar -zxvf /tmp/opencl-driver-intel/oclcpuexp-2024.17.3.0.09_rel.tar.gz && \ - mkdir -p /etc/OpenCL/vendors && \ - echo /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64/libintelocl.so > /etc/OpenCL/vendors/intel_expcpu.icd && \ - cd /opt/intel && \ - tar -zxvf /tmp/opencl-driver-intel/oneapi-tbb-2021.12.0-lin.tgz && \ - ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbb.so /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \ - ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbbmalloc.so /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \ - ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbb.so.12 /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \ - ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbbmalloc.so.2 /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \ - mkdir -p /etc/ld.so.conf.d && \ - echo /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 > /etc/ld.so.conf.d/libintelopenclexp.conf && \ - ldconfig -f /etc/ld.so.conf.d/libintelopenclexp.conf && \ - cd / && \ - rm -rf /tmp/opencl-driver-intel - ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute ENV QTWEBENGINE_DISABLE_SANDBOX 1 @@ -68,17 +31,14 @@ RUN usermod -aG sudo $USER RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers USER $USER -COPY --chown=$USER pyproject.toml uv.lock /tmp/ -COPY --chown=$USER tools/install_python_dependencies.sh /tmp/tools/ +COPY --chown=$USER pyproject.toml uv.lock /home/$USER +COPY --chown=$USER tools/install_python_dependencies.sh /home/$USER/tools/ ENV VIRTUAL_ENV=/home/$USER/.venv ENV PATH="$VIRTUAL_ENV/bin:$PATH" -RUN cd /tmp && \ +RUN cd /home/$USER && \ tools/install_python_dependencies.sh && \ - mkdir -p $VIRTUAL_ENV && \ - cp -r /tmp/.venv/* $VIRTUAL_ENV && \ - rm -rf /tmp/* && \ - rm -rf /home/$USER/.cache + rm -rf tools/ pyproject.toml uv.lock .cache USER root RUN sudo git config --global --add safe.directory /tmp/openpilot