diff --git a/.env.example b/.env.example index e16ed22..69b1f73 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ #rename this file to .env SIMKL_CLIENT_ID="id" -SIMKL_CLIENT_SECRET="secret" +SIMKL_CLIENT_SECRET="placeholder" SIMKL_ACCESS_TOKEN="token" #optional # Note: SIMKL_CLIENT_ID and SIMKL_CLIENT_SECRET should now be set as environment variables diff --git a/docs/linux-guide.md b/docs/linux-guide.md index dc1bb65..f74275e 100644 --- a/docs/linux-guide.md +++ b/docs/linux-guide.md @@ -13,32 +13,66 @@ Before installing, ensure you have the necessary system dependencies based on yo **For Ubuntu/Debian:** ```bash sudo apt install pipx python3-tk python3-pip python3-dev python3-setuptools wmctrl xdotool python3-gi python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev pkg-config libnotify-bin python3-venv gir1.2-appindicator3-0.1 gnome-shell-extension-appindicator -``` - -**For Fedora/RHEL/CentOS:** -```bash -sudo dnf install pipx python3-tk python3-pip python3-devel gobject-introspection-devel cairo-devel pkg-config python3-gobject gtk3 wmctrl xdotool libnotify -``` - -**For Arch Linux:** -```bash -sudo pacman -S pipx python3-tk python-pip python-setuptools python-gobject gtk3 gobject-introspection cairo pkg-config wmctrl xdotool libnotify -``` - -### Installation Process ```mermaid flowchart TD - A[Install Dependencies] --> B[Install via pipx] - B --> C[Initialize Application] - C --> D[Authenticate with Simkl] - D --> E[Configure Media Players] - E --> F[Setup Autostart] - style A fill:#4285f4,stroke:#333,stroke-width:2px,color:#fff - style D fill:#34a853,stroke:#333,stroke-width:2px,color:#fff - style F fill:#fbbc05,stroke:#333,stroke-width:2px,color:#fff + A[System Tray Icon] -->|Right-click| B[Context Menu] + B --> C[Status Information] + B --> D[Start/Pause Tracking] + B --> E[Scrobbling] + E --> E1[Retry Last Scrobble] + E --> E2[Sync Backlog Now] + E --> E3[Completion Threshold] + E --> E4[Open Local Watch History] + B --> E5[SIMKL] + E5 --> E5A[Authenticate/Re-auth] + E5 --> E5B[Open Website] + E5 --> E5C[Open Watch History] + B --> F[Maintenance] + F --> F1[Open Logs] + F --> F2[Open Data Folder] + F --> F3[Clear Backlog] + F --> F4[Clear Cache] + F --> F5[Clear Watch History] + F --> F6[Clear Logs] + F --> F7[Reset App Data] + B --> G[More] + G --> G1[Donate ❤️] + G --> G2[Check for Updates] + G --> G3[Help] + G --> G4[About] + B --> H[Exit] + style A fill:#4285f4,stroke:#333,stroke-width:2px,color:#fff + style D fill:#34a853,stroke:#333,stroke-width:2px,color:#fff + style F fill:#fbbc05,stroke:#333,stroke-width:2px,color:#fff ``` +- **Status information**: Current monitoring state and connection status +- **Start/Pause Tracking**: Pause or resume tracking on demand +- **Scrobbling**: Recovery and threshold controls + - **Retry Last Scrobble**: Clears cache for the active file and attempts to re-identify and scrobble it. Use when the wrong title/episode appears. + - **Sync Backlog Now**: Immediately processes any offline scrobbles waiting in backlog. + - **Completion Threshold**: Quickly switch between preset watch thresholds (65%, 80%, 90%) or define a custom percentage. + - **Open Local Watch History**: Open the local watch history viewer in your web browser. +- **SIMKL**: Account and service management + - **Authenticate / Re-authenticate**: Launch the Simkl login flow if you are signing in for the first time or need to refresh an expired token. + - **Open Website**: Visit the SIMKL website. + - **Open Watch History**: View your watch history on SIMKL. +- **Maintenance**: Logs, data, and cache management + - **Open Logs**: Jump straight to app diagnostics from the tray. + - **Open Data Folder**: Open the application data directory. + - **Clear Backlog**: Deletes pending offline scrobbles to stop repeated sync prompts. + - **Clear Cache**: Removes local media cache data while keeping logs and settings intact. + - **Clear Watch History**: Removes the local `watch_history.json` file and viewer data without touching your SIMKL account. + - **Clear Logs**: Truncates application and playback logs so you can capture a fresh session before debugging. + - **Reset App Data (Danger)**: Performs a full reset—use only when you want a clean re-authentication; the app exits afterward. +- **More**: Additional utilities + - **Donate ❤️**: Support the project. + - **Check for Updates**: Check if a newer version is available. + - **Help**: Open help documentation. + - **About**: View application information. +- **Exit**: Close the application + 1. Install the application using pipx (recommended for better isolation): ```bash # Install pipx if not already installed @@ -215,27 +249,61 @@ Right-click the system tray icon to access: ```mermaid flowchart TD - A[System Tray Icon] -->|Right-click| B[Context Menu] - B --> C[Status Information] - B --> D[Start/Pause Tracking] - B --> E[Tools Submenu] - B --> F[Online Services] - E --> E1[Open Logs] - E --> E2[Config Directory] - E --> E3[Process Backlog] - F --> F1[Simkl Website] - F --> F2[Watch History] - B --> G[Check for Updates] - B --> H[Help/About] - B --> I[Exit] - style A fill:#4285f4,stroke:#333,stroke-width:2px,color:#fff - style D fill:#34a853,stroke:#333,stroke-width:2px,color:#fff - style F fill:#fbbc05,stroke:#333,stroke-width:2px + A[System Tray Icon] -->|Right-click| B[Context Menu] + B --> C[Status Information] + B --> D[Start/Pause Tracking] + B --> E[Scrobbling] + E --> E1[Retry Last Scrobble] + E --> E2[Sync Backlog Now] + E --> E3[Completion Threshold] + E --> E4[Open Local Watch History] + B --> E5[SIMKL] + E5 --> E5A[Authenticate/Re-auth] + E5 --> E5B[Open Website] + E5 --> E5C[Open Watch History] + B --> F[Maintenance] + F --> F1[Open Logs] + F --> F2[Open Data Folder] + F --> F3[Clear Backlog] + F --> F4[Clear Cache] + F --> F5[Clear Watch History] + F --> F6[Clear Logs] + F --> F7[Reset App Data] + B --> G[More] + G --> G1[Donate ❤️] + G --> G2[Check for Updates] + G --> G3[Help] + G --> G4[About] + B --> H[Exit] + style A fill:#4285f4,stroke:#333,stroke-width:2px,color:#fff + style D fill:#34a853,stroke:#333,stroke-width:2px,color:#fff + style F fill:#fbbc05,stroke:#333,stroke-width:2px,color:#fff ``` - **Status information**: Current monitoring state and connection status -- **Start/Pause Tracking**: Toggle monitoring -- **Tools**: Access to logs, configuration, and backlog management +- **Start/Pause Tracking**: Pause or resume tracking on demand +- **Scrobbling**: Recovery and threshold controls + - **Retry Last Scrobble**: Clears cache for the active file and attempts to re-identify and scrobble it. Use when the wrong title/episode appears. + - **Sync Backlog Now**: Immediately processes any offline scrobbles waiting in backlog. + - **Completion Threshold**: Quickly switch between preset watch thresholds (65%, 80%, 90%) or define a custom percentage. + - **Open Local Watch History**: Open the local watch history viewer in your web browser. +- **SIMKL**: Account and service management + - **Authenticate / Re-authenticate**: Launch the Simkl login flow if you are signing in for the first time or need to refresh an expired token. + - **Open Website**: Visit the SIMKL website. + - **Open Watch History**: View your watch history on SIMKL. +- **Maintenance**: Logs, data, and cache management + - **Open Logs**: Jump straight to app diagnostics from the tray. + - **Open Data Folder**: Open the application data directory. + - **Clear Backlog**: Delete pending offline scrobbles to stop repeated sync prompts. + - **Clear Cache**: Remove media cache data while keeping logs and settings intact. + - **Clear Watch History**: Remove the local `watch_history.json` file and viewer data without touching your SIMKL account. + - **Clear Logs**: Truncate application and playback logs to capture a fresh session for debugging. + - **Reset App Data (Danger)**: Perform a full reset—use only when you want a clean re-authentication; the app will exit afterward. +- **More**: Additional utilities + - **Donate ❤️**: Support the project. + - **Check for Updates**: Check if a newer version is available. + - **Help**: Open help documentation. + - **About**: View application information. - **Exit**: Close the application ### Linux-Specific File Locations diff --git a/docs/usage.md b/docs/usage.md index 6f8dcaa..0ee0ae9 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -60,27 +60,39 @@ MPS for SIMKL uses the system tray/notification area to show its current status | ![Stopped](../simkl_mps/assets/simkl-mps-stopped.png) | **Stopped** | App is inactive and not tracking (but still running in tray) | | ![Error](../simkl_mps/assets/simkl-mps-error.png) | **Error** | There's an issue with the app (authentication, API, etc.) | -Right-click the tray icon to access the app menu with options to: -- Start/stop/pause monitoring -- View currently detected media -- Access settings -- **Tools:** - - **Try Scrobble Again:** If media is misidentified or fails to scrobble, use this option. It clears the cache for the currently playing item and attempts to re-identify and scrobble it. You'll see a notification like `Attempting to re-identify 'Your Media Title'...` when triggered, followed by the usual scrobbling notifications if successful. - - **Clear Cache:** Removes all cached media identification data and backlog entries. This option: - - Clears all stored media cache files - - Removes all backlog data (pending scrobbles) - - Resets currently tracked media - - Shows a confirmation dialog before proceeding - - Helpful when experiencing persistent identification issues or after major updates - - **Clear All Data:** Completely resets the application by removing: - - All cached media data - - All log files - - Backlog and playback history - - Watch history - - All settings and credentials - - Environment configuration - - **Note:** This is a drastic action that will exit the application after completion and require re-authentication -- Exit the application +Right-click the tray icon to access the app menu with the following sections: + +**Main Actions:** +- **Start/Pause Tracking:** Toggle tracking on demand +- **Status:** View current monitoring and connection state + +**Scrobbling** - Recovery and threshold controls: +- **Retry Last Scrobble:** Clears cache for the active file and attempts to re-identify and scrobble it. Use when the wrong title/episode appears. +- **Sync Backlog Now:** Immediately processes any offline scrobbles waiting in backlog. +- **Completion Threshold:** Quickly switch between preset watch thresholds (65%, 80%, 90%) or define a custom percentage. +- **Open Local Watch History:** Browse your tracked movies, shows, and anime in the local viewer. + +**SIMKL** - Account and service management: +- **Authenticate / Re-authenticate:** Sign in to SIMKL or refresh an expired token. +- **Open Website:** Visit the SIMKL website. +- **Open Watch History:** View your watch history on SIMKL. + +**Maintenance** - Logs, data, and cache management: +- **Open Logs:** View application and playback logs. +- **Open Data Folder:** Access the application data directory. +- **Clear Backlog:** Delete pending offline scrobbles. +- **Clear Cache:** Remove media identification cache while preserving logs and settings. +- **Clear Watch History:** Remove the local `watch_history.json` file and viewer data without affecting your SIMKL account. +- **Clear Logs:** Reset application and playback logs to capture a fresh session for debugging. +- **Reset App Data (Danger):** Perform a full reset. Use only when you need a clean re-authentication; the app will exit afterward. + +**More** - Additional utilities: +- **Donate ❤️:** Support the project. +- **Check for Updates:** Check if a newer version is available. +- **Help:** Open help documentation. +- **About:** View application information. + +**Exit:** Close the application ## 🚦 Real-World Performance Timings diff --git a/docs/windows-guide.md b/docs/windows-guide.md index 4962c42..c57c67e 100644 --- a/docs/windows-guide.md +++ b/docs/windows-guide.md @@ -45,6 +45,13 @@ flowchart LR - **Auto-update system**: Checks for updates weekly - **Clean uninstallation**: Properly removes all components +### Silent & Automated Deployment + +- The installer now honors common enterprise parameters: use `/quiet`, `/silent`, `/s`, `/qn`, or `/passive` when automating deployments +- Each alias maps internally to Inno Setup's `/VERYSILENT /SUPPRESSMSGBOXES /NORESTART` flags, ensuring the Microsoft Store silent install check succeeds +- Combine additional switches such as `/LOG="C:\\temp\\mpss-install.log"` as needed; they will be preserved when silent aliases are used +- When running interactively, the traditional `/SILENT` or `/VERYSILENT` options continue to function unchanged + ### Post-Installation After installation completes: @@ -70,12 +77,28 @@ flowchart TD A[System Tray Icon] -->|Right-click| B[Context Menu] B --> C[Status Information] B --> D[Start/Pause Tracking] - B --> E[Tools Submenu] - E --> E1[Open Logs] - E --> E2[Config Directory] - E --> E3[Process Backlog] - B --> F[Check for Updates] - B --> G[Help/About] + B --> E[Scrobbling] + E --> E1[Retry Last Scrobble] + E --> E2[Sync Backlog Now] + E --> E3[Completion Threshold] + E --> E4[Open Local Watch History] + B --> E5[SIMKL] + E5 --> E5A[Authenticate/Re-auth] + E5 --> E5B[Open Website] + E5 --> E5C[Open Watch History] + B --> F[Maintenance] + F --> F1[Open Logs] + F --> F2[Open Data Folder] + F --> F3[Clear Backlog] + F --> F4[Clear Cache] + F --> F5[Clear Watch History] + F --> F6[Clear Logs] + F --> F7[Reset App Data] + B --> G[More] + G --> G1[Donate ❤️] + G --> G2[Check for Updates] + G --> G3[Help] + G --> G4[About] B --> H[Exit] style A fill:#4285f4,stroke:#333,stroke-width:2px,color:#fff style D fill:#34a853,stroke:#333,stroke-width:2px,color:#fff @@ -83,9 +106,29 @@ flowchart TD ``` - **Status information**: Current monitoring state and connection status -- **Start/Pause Tracking**: Toggle monitoring -- **Tools**: Access to logs, configuration, and backlog management -- **Check for Updates**: Manually check for and install updates +- **Start/Pause Tracking**: Pause or resume tracking on demand +- **Scrobbling**: Recovery and threshold controls + - **Retry Last Scrobble**: Clears cache for the active file and attempts to re-identify and scrobble it. Use when the wrong title/episode appears. + - **Sync Backlog Now**: Immediately processes any offline scrobbles waiting in backlog. + - **Completion Threshold**: Quickly switch between preset watch thresholds (65%, 80%, 90%) or define a custom percentage. + - **Open Local Watch History**: Open the local watch history viewer in your web browser. +- **SIMKL**: Account and service management + - **Authenticate / Re-authenticate**: Launch the Simkl login flow if you are signing in for the first time or need to refresh an expired token. + - **Open Website**: Visit the SIMKL website. + - **Open Watch History**: View your watch history on SIMKL. +- **Maintenance**: Logs, data, and cache management + - **Open Logs**: Jump straight to app diagnostics from the tray. + - **Open Data Folder**: Open the application data directory. + - **Clear Backlog**: Deletes pending offline scrobbles to stop repeated sync prompts. + - **Clear Cache**: Removes local media cache data while keeping logs and settings intact. + - **Clear Watch History**: Removes the local `watch_history.json` file and viewer data without touching your SIMKL account. + - **Clear Logs**: Truncates application and playback logs so you can capture a fresh session before debugging. + - **Reset App Data (Danger)**: Performs a full reset—use only when you want a clean re-authentication; the app exits afterward. +- **More**: Additional utilities + - **Donate ❤️**: Support the project. + - **Check for Updates**: Check if a newer version is available. + - **Help**: Open help documentation. + - **About**: View application information. - **Exit**: Close the application ### Windows Auto-Start @@ -151,7 +194,7 @@ The Windows installer version includes an automatic update system: ### Checking Logs on Windows 1. Right-click the system tray icon -2. Select **Tools → Open Logs** +2. Select **Maintenance → Open Logs** 3. The log file opens in your default text editor ### Running with Debug Logging @@ -159,7 +202,7 @@ The Windows installer version includes an automatic update system: For advanced troubleshooting: 1. Open Command Prompt or PowerShell 2. Navigate to the installation directory -3. Run: `simkl-mps.exe --debug` +3. Run: `simkl-mps tray --debug` ## 📲 Uninstallation diff --git a/poetry.lock b/poetry.lock index 1a73bdd..c15014d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,141 +1,163 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "altgraph" -version = "0.17.4" +version = "0.17.5" description = "Python graph (network) package" optional = false python-versions = "*" groups = ["dev"] +markers = "python_version < \"3.15\"" files = [ - {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"}, - {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"}, + {file = "altgraph-0.17.5-py2.py3-none-any.whl", hash = "sha256:f3a22400bce1b0c701683820ac4f3b159cd301acab067c51c653e06961600597"}, + {file = "altgraph-0.17.5.tar.gz", hash = "sha256:c87b395dd12fabde9c99573a9749d67da8d29ef9de0125c7f536699b4a9bc9e7"}, ] [[package]] name = "babelfish" -version = "0.6.0" +version = "0.6.1" description = "A module to work with countries and languages" optional = false -python-versions = ">=3.6,<4.0" +python-versions = "<4.0,>=3.8" groups = ["main"] files = [ - {file = "babelfish-0.6.0-py3-none-any.whl", hash = "sha256:268f1c6279f2a04a66837972e8a9f3dcc68e16f1201eec57d2a4b828a8b41b11"}, - {file = "babelfish-0.6.0.tar.gz", hash = "sha256:2dadfadd1b205ca5fa5dc9fa637f5b7933160a0418684c7c46a7a664033208a2"}, + {file = "babelfish-0.6.1-py3-none-any.whl", hash = "sha256:512f1501d4c8f7d38f0921f48660be7542de1a7b24abb6a6a65324a670150293"}, + {file = "babelfish-0.6.1.tar.gz", hash = "sha256:decb67a4660888d48480ab6998309837174158d0f1aa63bebb1c2e11aab97aab"}, ] [[package]] name = "certifi" -version = "2025.4.26" +version = "2026.1.4" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" groups = ["main", "dev"] files = [ - {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, - {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, + {file = "certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c"}, + {file = "certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120"}, ] [[package]] name = "charset-normalizer" -version = "3.4.2" +version = "3.4.4" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" groups = ["main", "dev"] files = [ - {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, - {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, - {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win32.whl", hash = "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50"}, + {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"}, + {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"}, ] [[package]] @@ -152,15 +174,15 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.3.0" +version = "1.3.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ - {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, - {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, + {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, + {file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"}, ] [package.dependencies] @@ -209,67 +231,42 @@ test = ["PyYAML", "pylint", "pytest", "pytest-benchmark", "pytest-cov", "pytest- [[package]] name = "idna" -version = "3.10" +version = "3.11" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, + {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"}, + {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}, ] [package.extras] all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] -[[package]] -name = "importlib-metadata" -version = "8.7.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version == \"3.9\"" -files = [ - {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, - {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, -] - -[package.dependencies] -zipp = ">=3.20" - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -perf = ["ipython"] -test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] -type = ["pytest-mypy"] - [[package]] name = "iniconfig" -version = "2.1.0" +version = "2.3.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, - {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, + {file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"}, + {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, ] [[package]] name = "macholib" -version = "1.16.3" +version = "1.16.4" description = "Mach-O header analysis and editing" optional = false python-versions = "*" groups = ["dev"] -markers = "sys_platform == \"darwin\"" +markers = "python_version < \"3.15\" and sys_platform == \"darwin\"" files = [ - {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"}, - {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"}, + {file = "macholib-1.16.4-py2.py3-none-any.whl", hash = "sha256:da1a3fa8266e30f0ce7e97c6a54eefaae8edd1e5f86f3eb8b95457cae90265ea"}, + {file = "macholib-1.16.4.tar.gz", hash = "sha256:f408c93ab2e995cd2c46e34fe328b130404be143469e41bc366c807448979362"}, ] [package.dependencies] @@ -289,152 +286,136 @@ files = [ [[package]] name = "packaging" -version = "25.0" +version = "26.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, - {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, + {file = "packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529"}, + {file = "packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4"}, ] [[package]] name = "pefile" -version = "2023.2.7" +version = "2024.8.26" description = "Python PE parsing module" optional = false python-versions = ">=3.6.0" groups = ["dev"] -markers = "sys_platform == \"win32\"" +markers = "python_version < \"3.15\" and sys_platform == \"win32\"" files = [ - {file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"}, - {file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"}, + {file = "pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"}, + {file = "pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632"}, ] [[package]] name = "pillow" -version = "11.3.0" -description = "Python Imaging Library (Fork)" +version = "12.1.1" +description = "Python Imaging Library (fork)" optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860"}, - {file = "pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae"}, - {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9"}, - {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e"}, - {file = "pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6"}, - {file = "pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f"}, - {file = "pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f"}, - {file = "pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722"}, - {file = "pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f"}, - {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e"}, - {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94"}, - {file = "pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0"}, - {file = "pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac"}, - {file = "pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd"}, - {file = "pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4"}, - {file = "pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024"}, - {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809"}, - {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d"}, - {file = "pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149"}, - {file = "pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d"}, - {file = "pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f"}, - {file = "pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c"}, - {file = "pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8"}, - {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2"}, - {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b"}, - {file = "pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3"}, - {file = "pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51"}, - {file = "pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580"}, - {file = "pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e"}, - {file = "pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59"}, - {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe"}, - {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c"}, - {file = "pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788"}, - {file = "pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31"}, - {file = "pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e"}, - {file = "pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12"}, - {file = "pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77"}, - {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874"}, - {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a"}, - {file = "pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214"}, - {file = "pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635"}, - {file = "pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6"}, - {file = "pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae"}, - {file = "pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477"}, - {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50"}, - {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b"}, - {file = "pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12"}, - {file = "pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db"}, - {file = "pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa"}, - {file = "pillow-11.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:48d254f8a4c776de343051023eb61ffe818299eeac478da55227d96e241de53f"}, - {file = "pillow-11.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7aee118e30a4cf54fdd873bd3a29de51e29105ab11f9aad8c32123f58c8f8081"}, - {file = "pillow-11.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:23cff760a9049c502721bdb743a7cb3e03365fafcdfc2ef9784610714166e5a4"}, - {file = "pillow-11.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6359a3bc43f57d5b375d1ad54a0074318a0844d11b76abccf478c37c986d3cfc"}, - {file = "pillow-11.3.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:092c80c76635f5ecb10f3f83d76716165c96f5229addbd1ec2bdbbda7d496e06"}, - {file = "pillow-11.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cadc9e0ea0a2431124cde7e1697106471fc4c1da01530e679b2391c37d3fbb3a"}, - {file = "pillow-11.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6a418691000f2a418c9135a7cf0d797c1bb7d9a485e61fe8e7722845b95ef978"}, - {file = "pillow-11.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:97afb3a00b65cc0804d1c7abddbf090a81eaac02768af58cbdcaaa0a931e0b6d"}, - {file = "pillow-11.3.0-cp39-cp39-win32.whl", hash = "sha256:ea944117a7974ae78059fcc1800e5d3295172bb97035c0c1d9345fca1419da71"}, - {file = "pillow-11.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:e5c5858ad8ec655450a7c7df532e9842cf8df7cc349df7225c60d5d348c8aada"}, - {file = "pillow-11.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:6abdbfd3aea42be05702a8dd98832329c167ee84400a1d1f61ab11437f1717eb"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8"}, - {file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"}, +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "pillow-12.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f1625b72740fdda5d77b4def688eb8fd6490975d06b909fd19f13f391e077e0"}, + {file = "pillow-12.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:178aa072084bd88ec759052feca8e56cbb14a60b39322b99a049e58090479713"}, + {file = "pillow-12.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b66e95d05ba806247aaa1561f080abc7975daf715c30780ff92a20e4ec546e1b"}, + {file = "pillow-12.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89c7e895002bbe49cdc5426150377cbbc04767d7547ed145473f496dfa40408b"}, + {file = "pillow-12.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a5cbdcddad0af3da87cb16b60d23648bc3b51967eb07223e9fed77a82b457c4"}, + {file = "pillow-12.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f51079765661884a486727f0729d29054242f74b46186026582b4e4769918e4"}, + {file = "pillow-12.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:99c1506ea77c11531d75e3a412832a13a71c7ebc8192ab9e4b2e355555920e3e"}, + {file = "pillow-12.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36341d06738a9f66c8287cf8b876d24b18db9bd8740fa0672c74e259ad408cff"}, + {file = "pillow-12.1.1-cp310-cp310-win32.whl", hash = "sha256:6c52f062424c523d6c4db85518774cc3d50f5539dd6eed32b8f6229b26f24d40"}, + {file = "pillow-12.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6008de247150668a705a6338156efb92334113421ceecf7438a12c9a12dab23"}, + {file = "pillow-12.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:1a9b0ee305220b392e1124a764ee4265bd063e54a751a6b62eff69992f457fa9"}, + {file = "pillow-12.1.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e879bb6cd5c73848ef3b2b48b8af9ff08c5b71ecda8048b7dd22d8a33f60be32"}, + {file = "pillow-12.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:365b10bb9417dd4498c0e3b128018c4a624dc11c7b97d8cc54effe3b096f4c38"}, + {file = "pillow-12.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d4ce8e329c93845720cd2014659ca67eac35f6433fd3050393d85f3ecef0dad5"}, + {file = "pillow-12.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc354a04072b765eccf2204f588a7a532c9511e8b9c7f900e1b64e3e33487090"}, + {file = "pillow-12.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e7976bf1910a8116b523b9f9f58bf410f3e8aa330cd9a2bb2953f9266ab49af"}, + {file = "pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:597bd9c8419bc7c6af5604e55847789b69123bbe25d65cc6ad3012b4f3c98d8b"}, + {file = "pillow-12.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c1fc0f2ca5f96a3c8407e41cca26a16e46b21060fe6d5b099d2cb01412222f5"}, + {file = "pillow-12.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:578510d88c6229d735855e1f278aa305270438d36a05031dfaae5067cc8eb04d"}, + {file = "pillow-12.1.1-cp311-cp311-win32.whl", hash = "sha256:7311c0a0dcadb89b36b7025dfd8326ecfa36964e29913074d47382706e516a7c"}, + {file = "pillow-12.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:fbfa2a7c10cc2623f412753cddf391c7f971c52ca40a3f65dc5039b2939e8563"}, + {file = "pillow-12.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:b81b5e3511211631b3f672a595e3221252c90af017e399056d0faabb9538aa80"}, + {file = "pillow-12.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab323b787d6e18b3d91a72fc99b1a2c28651e4358749842b8f8dfacd28ef2052"}, + {file = "pillow-12.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:adebb5bee0f0af4909c30db0d890c773d1a92ffe83da908e2e9e720f8edf3984"}, + {file = "pillow-12.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb66b7cc26f50977108790e2456b7921e773f23db5630261102233eb355a3b79"}, + {file = "pillow-12.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aee2810642b2898bb187ced9b349e95d2a7272930796e022efaf12e99dccd293"}, + {file = "pillow-12.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a0b1cd6232e2b618adcc54d9882e4e662a089d5768cd188f7c245b4c8c44a397"}, + {file = "pillow-12.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7aac39bcf8d4770d089588a2e1dd111cbaa42df5a94be3114222057d68336bd0"}, + {file = "pillow-12.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ab174cd7d29a62dd139c44bf74b698039328f45cb03b4596c43473a46656b2f3"}, + {file = "pillow-12.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:339ffdcb7cbeaa08221cd401d517d4b1fe7a9ed5d400e4a8039719238620ca35"}, + {file = "pillow-12.1.1-cp312-cp312-win32.whl", hash = "sha256:5d1f9575a12bed9e9eedd9a4972834b08c97a352bd17955ccdebfeca5913fa0a"}, + {file = "pillow-12.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:21329ec8c96c6e979cd0dfd29406c40c1d52521a90544463057d2aaa937d66a6"}, + {file = "pillow-12.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:af9a332e572978f0218686636610555ae3defd1633597be015ed50289a03c523"}, + {file = "pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e"}, + {file = "pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9"}, + {file = "pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6"}, + {file = "pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60"}, + {file = "pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2"}, + {file = "pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850"}, + {file = "pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289"}, + {file = "pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e"}, + {file = "pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717"}, + {file = "pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a"}, + {file = "pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029"}, + {file = "pillow-12.1.1-cp313-cp313-win32.whl", hash = "sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b"}, + {file = "pillow-12.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1"}, + {file = "pillow-12.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a"}, + {file = "pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da"}, + {file = "pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc"}, + {file = "pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c"}, + {file = "pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8"}, + {file = "pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20"}, + {file = "pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13"}, + {file = "pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf"}, + {file = "pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524"}, + {file = "pillow-12.1.1-cp313-cp313t-win32.whl", hash = "sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986"}, + {file = "pillow-12.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c"}, + {file = "pillow-12.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3"}, + {file = "pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:417423db963cb4be8bac3fc1204fe61610f6abeed1580a7a2cbb2fbda20f12af"}, + {file = "pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:b957b71c6b2387610f556a7eb0828afbe40b4a98036fc0d2acfa5a44a0c2036f"}, + {file = "pillow-12.1.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:097690ba1f2efdeb165a20469d59d8bb03c55fb6621eb2041a060ae8ea3e9642"}, + {file = "pillow-12.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2815a87ab27848db0321fb78c7f0b2c8649dee134b7f2b80c6a45c6831d75ccd"}, + {file = "pillow-12.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f7ed2c6543bad5a7d5530eb9e78c53132f93dfa44a28492db88b41cdab885202"}, + {file = "pillow-12.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:652a2c9ccfb556235b2b501a3a7cf3742148cd22e04b5625c5fe057ea3e3191f"}, + {file = "pillow-12.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d6e4571eedf43af33d0fc233a382a76e849badbccdf1ac438841308652a08e1f"}, + {file = "pillow-12.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b574c51cf7d5d62e9be37ba446224b59a2da26dc4c1bb2ecbe936a4fb1a7cb7f"}, + {file = "pillow-12.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a37691702ed687799de29a518d63d4682d9016932db66d4e90c345831b02fb4e"}, + {file = "pillow-12.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f95c00d5d6700b2b890479664a06e754974848afaae5e21beb4d83c106923fd0"}, + {file = "pillow-12.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:559b38da23606e68681337ad74622c4dbba02254fc9cb4488a305dd5975c7eeb"}, + {file = "pillow-12.1.1-cp314-cp314-win32.whl", hash = "sha256:03edcc34d688572014ff223c125a3f77fb08091e4607e7745002fc214070b35f"}, + {file = "pillow-12.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:50480dcd74fa63b8e78235957d302d98d98d82ccbfac4c7e12108ba9ecbdba15"}, + {file = "pillow-12.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:5cb1785d97b0c3d1d1a16bc1d710c4a0049daefc4935f3a8f31f827f4d3d2e7f"}, + {file = "pillow-12.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1f90cff8aa76835cba5769f0b3121a22bd4eb9e6884cfe338216e557a9a548b8"}, + {file = "pillow-12.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1f1be78ce9466a7ee64bfda57bdba0f7cc499d9794d518b854816c41bf0aa4e9"}, + {file = "pillow-12.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42fc1f4677106188ad9a55562bbade416f8b55456f522430fadab3cef7cd4e60"}, + {file = "pillow-12.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98edb152429ab62a1818039744d8fbb3ccab98a7c29fc3d5fcef158f3f1f68b7"}, + {file = "pillow-12.1.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d470ab1178551dd17fdba0fef463359c41aaa613cdcd7ff8373f54be629f9f8f"}, + {file = "pillow-12.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6408a7b064595afcab0a49393a413732a35788f2a5092fdc6266952ed67de586"}, + {file = "pillow-12.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5d8c41325b382c07799a3682c1c258469ea2ff97103c53717b7893862d0c98ce"}, + {file = "pillow-12.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7697918b5be27424e9ce568193efd13d925c4481dd364e43f5dff72d33e10f8"}, + {file = "pillow-12.1.1-cp314-cp314t-win32.whl", hash = "sha256:d2912fd8114fc5545aa3a4b5576512f64c55a03f3ebcca4c10194d593d43ea36"}, + {file = "pillow-12.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:4ceb838d4bd9dab43e06c363cab2eebf63846d6a4aeaea283bbdfd8f1a8ed58b"}, + {file = "pillow-12.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7b03048319bfc6170e93bd60728a1af51d3dd7704935feb228c4d4faab35d334"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:600fd103672b925fe62ed08e0d874ea34d692474df6f4bf7ebe148b30f89f39f"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:665e1b916b043cef294bc54d47bf02d87e13f769bc4bc5fa225a24b3a6c5aca9"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:495c302af3aad1ca67420ddd5c7bd480c8867ad173528767d906428057a11f0e"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8fd420ef0c52c88b5a035a0886f367748c72147b2b8f384c9d12656678dfdfa9"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f975aa7ef9684ce7e2c18a3aa8f8e2106ce1e46b94ab713d156b2898811651d3"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8089c852a56c2966cf18835db62d9b34fef7ba74c726ad943928d494fa7f4735"}, + {file = "pillow-12.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:cb9bb857b2d057c6dfc72ac5f3b44836924ba15721882ef103cecb40d002d80e"}, + {file = "pillow-12.1.1.tar.gz", hash = "sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4"}, ] [package.extras] docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] -test-arrow = ["pyarrow"] -tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "trove-classifiers (>=2024.10.12)"] -typing = ["typing-extensions ; python_version < \"3.10\""] +test-arrow = ["arro3-compute", "arro3-core", "nanoarrow", "pyarrow"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma (>=5)", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "trove-classifiers (>=2024.10.12)"] xmp = ["defusedxml"] [[package]] @@ -508,31 +489,31 @@ test = ["psleak", "pytest", "pytest-instafail", "pytest-xdist", "pywin32 ; os_na [[package]] name = "pycairo" -version = "1.28.0" +version = "1.29.0" description = "Python interface for cairo" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"linux\" and extra == \"linux-full\"" files = [ - {file = "pycairo-1.28.0-cp310-cp310-win32.whl", hash = "sha256:53e6dbc98456f789965dad49ef89ce2c62f9a10fc96c8d084e14da0ffb73d8a6"}, - {file = "pycairo-1.28.0-cp310-cp310-win_amd64.whl", hash = "sha256:c8ab91a75025f984bc327ada335c787efb61c929ea0512063793cb36cee503d4"}, - {file = "pycairo-1.28.0-cp310-cp310-win_arm64.whl", hash = "sha256:e955328c1a5147bf71ee94e206413ce15e12630296a79788fcd246c80e5337b8"}, - {file = "pycairo-1.28.0-cp311-cp311-win32.whl", hash = "sha256:0fee15f5d72b13ba5fd065860312493dc1bca6ff2dce200ee9d704e11c94e60a"}, - {file = "pycairo-1.28.0-cp311-cp311-win_amd64.whl", hash = "sha256:6339979bfec8b58a06476094a9a5c104bd5a99932ddaff16ca0d9203d2f4482c"}, - {file = "pycairo-1.28.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6ae15392e28ebfc0b35d8dc05d395d3b6be4bad9ad4caecf0fa12c8e7150225"}, - {file = "pycairo-1.28.0-cp312-cp312-win32.whl", hash = "sha256:c00cfbb7f30eb7ca1d48886712932e2d91e8835a8496f4e423878296ceba573e"}, - {file = "pycairo-1.28.0-cp312-cp312-win_amd64.whl", hash = "sha256:d50d190f5033992b55050b9f337ee42a45c3568445d5e5d7987bab96c278d8a6"}, - {file = "pycairo-1.28.0-cp312-cp312-win_arm64.whl", hash = "sha256:957e0340ee1c279d197d4f7cfa96f6d8b48e453eec711fca999748d752468ff4"}, - {file = "pycairo-1.28.0-cp313-cp313-win32.whl", hash = "sha256:d13352429d8a08a1cb3607767d23d2fb32e4c4f9faa642155383980ec1478c24"}, - {file = "pycairo-1.28.0-cp313-cp313-win_amd64.whl", hash = "sha256:082aef6b3a9dcc328fa648d38ed6b0a31c863e903ead57dd184b2e5f86790140"}, - {file = "pycairo-1.28.0-cp313-cp313-win_arm64.whl", hash = "sha256:026afd53b75291917a7412d9fe46dcfbaa0c028febd46ff1132d44a53ac2c8b6"}, - {file = "pycairo-1.28.0-cp314-cp314-win32.whl", hash = "sha256:d0ab30585f536101ad6f09052fc3895e2a437ba57531ea07223d0e076248025d"}, - {file = "pycairo-1.28.0-cp314-cp314-win_amd64.whl", hash = "sha256:94f2ed204999ab95a0671a0fa948ffbb9f3d6fb8731fe787917f6d022d9c1c0f"}, - {file = "pycairo-1.28.0-cp39-cp39-win32.whl", hash = "sha256:3ed16d48b8a79cc584cb1cb0ad62dfb265f2dda6d6a19ef5aab181693e19c83c"}, - {file = "pycairo-1.28.0-cp39-cp39-win_amd64.whl", hash = "sha256:da0d1e6d4842eed4d52779222c6e43d254244a486ca9fdab14e30042fd5bdf28"}, - {file = "pycairo-1.28.0-cp39-cp39-win_arm64.whl", hash = "sha256:458877513eb2125513122e8aa9c938630e94bb0574f94f4fb5ab55eb23d6e9ac"}, - {file = "pycairo-1.28.0.tar.gz", hash = "sha256:26ec5c6126781eb167089a123919f87baa2740da2cca9098be8b3a6b91cc5fbc"}, + {file = "pycairo-1.29.0-cp310-cp310-win32.whl", hash = "sha256:96c67e6caba72afd285c2372806a0175b1aa2f4537aa88fb4d9802d726effcd1"}, + {file = "pycairo-1.29.0-cp310-cp310-win_amd64.whl", hash = "sha256:65bddd944aee9f7d7d72821b1c87e97593856617c2820a78d589d66aa8afbd08"}, + {file = "pycairo-1.29.0-cp310-cp310-win_arm64.whl", hash = "sha256:15b36aea699e2ff215cb6a21501223246032e572a3a10858366acdd69c81a1c8"}, + {file = "pycairo-1.29.0-cp311-cp311-win32.whl", hash = "sha256:12757ebfb304b645861283c20585c9204c3430671fad925419cba04844d6dfed"}, + {file = "pycairo-1.29.0-cp311-cp311-win_amd64.whl", hash = "sha256:3391532db03f9601c1cee9ebfa15b7d1db183c6020f3e75c1348cee16825934f"}, + {file = "pycairo-1.29.0-cp311-cp311-win_arm64.whl", hash = "sha256:b69be8bb65c46b680771dc6a1a422b1cdd0cffb17be548f223e8cbbb6205567c"}, + {file = "pycairo-1.29.0-cp312-cp312-win32.whl", hash = "sha256:91bcd7b5835764c616a615d9948a9afea29237b34d2ed013526807c3d79bb1d0"}, + {file = "pycairo-1.29.0-cp312-cp312-win_amd64.whl", hash = "sha256:3f01c3b5e49ef9411fff6bc7db1e765f542dc1c9cfed4542958a5afa3a8b8e76"}, + {file = "pycairo-1.29.0-cp312-cp312-win_arm64.whl", hash = "sha256:eafe3d2076f3533535ad4a361fa0754e0ee66b90e548a3a0f558fed00b1248f2"}, + {file = "pycairo-1.29.0-cp313-cp313-win32.whl", hash = "sha256:3eb382a4141591807073274522f7aecab9e8fa2f14feafd11ac03a13a58141d7"}, + {file = "pycairo-1.29.0-cp313-cp313-win_amd64.whl", hash = "sha256:91114e4b3fbf4287c2b0788f83e1f566ce031bda49cf1c3c3c19c3e986e95c38"}, + {file = "pycairo-1.29.0-cp313-cp313-win_arm64.whl", hash = "sha256:09b7f69a5ff6881e151354ea092137b97b0b1f0b2ab4eb81c92a02cc4a08e335"}, + {file = "pycairo-1.29.0-cp314-cp314-win32.whl", hash = "sha256:69e2a7968a3fbb839736257bae153f547bca787113cc8d21e9e08ca4526e0b6b"}, + {file = "pycairo-1.29.0-cp314-cp314-win_amd64.whl", hash = "sha256:e91243437a21cc4c67c401eff4433eadc45745275fa3ade1a0d877e50ffb90da"}, + {file = "pycairo-1.29.0-cp314-cp314-win_arm64.whl", hash = "sha256:b72200ea0e5f73ae4c788cd2028a750062221385eb0e6d8f1ecc714d0b4fdf82"}, + {file = "pycairo-1.29.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5e45fce6185f553e79e4ef1722b8e98e6cde9900dbc48cb2637a9ccba86f627a"}, + {file = "pycairo-1.29.0-cp314-cp314t-win_arm64.whl", hash = "sha256:caba0837a4b40d47c8dfb0f24cccc12c7831e3dd450837f2a356c75f21ce5a15"}, + {file = "pycairo-1.29.0.tar.gz", hash = "sha256:f3f7fde97325cae80224c09f12564ef58d0d0f655da0e3b040f5807bd5bd3142"}, ] [[package]] @@ -611,6 +592,7 @@ description = "PyInstaller bundles a Python application and all its dependencies optional = false python-versions = "<3.15,>=3.8" groups = ["dev"] +markers = "python_version < \"3.15\"" files = [ {file = "pyinstaller-6.18.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:cb7aa5a71bfa7c0af17a4a4e21855663c89e4bd7c40f1d337c8370636d8847c3"}, {file = "pyinstaller-6.18.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:07785459b3bf8a48889eac0b4d0667ade84aef8930ce030bc7cbb32f41283b33"}, @@ -628,7 +610,6 @@ files = [ [package.dependencies] altgraph = "*" -importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""} packaging = ">=22.0" pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""} @@ -642,3611 +623,3571 @@ hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] [[package]] name = "pyinstaller-hooks-contrib" -version = "2025.10" +version = "2026.0" description = "Community maintained hooks for PyInstaller" optional = false python-versions = ">=3.8" groups = ["dev"] +markers = "python_version < \"3.15\"" files = [ - {file = "pyinstaller_hooks_contrib-2025.10-py3-none-any.whl", hash = "sha256:aa7a378518772846221f63a84d6306d9827299323243db890851474dfd1231a9"}, - {file = "pyinstaller_hooks_contrib-2025.10.tar.gz", hash = "sha256:a1a737e5c0dccf1cf6f19a25e2efd109b9fec9ddd625f97f553dac16ee884881"}, + {file = "pyinstaller_hooks_contrib-2026.0-py3-none-any.whl", hash = "sha256:0590db8edeba3e6c30c8474937021f5cd39c0602b4d10f74a064c73911efaca5"}, + {file = "pyinstaller_hooks_contrib-2026.0.tar.gz", hash = "sha256:0120893de491a000845470ca9c0b39284731ac6bace26f6849dea9627aaed48e"}, ] [package.dependencies] -importlib_metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} packaging = ">=22.0" setuptools = ">=42.0.0" [[package]] name = "pyobjc" -version = "11.1" +version = "12.1" description = "Python<->ObjC Interoperability Module" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc-11.1-py3-none-any.whl", hash = "sha256:903f822cba40be53d408b8eaf834514937ec0b4e6af1c5ecc24fcb652812dd85"}, - {file = "pyobjc-11.1.tar.gz", hash = "sha256:a71b14389657811d658526ba4d5faba4ef7eadbddcf9fe8bf4fb3a6261effba3"}, -] - -[package.dependencies] -pyobjc-core = "11.1" -pyobjc-framework-Accessibility = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-Accounts = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-AddressBook = "11.1" -pyobjc-framework-AdServices = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-AdSupport = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-AppleScriptKit = "11.1" -pyobjc-framework-AppleScriptObjC = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-ApplicationServices = "11.1" -pyobjc-framework-AppTrackingTransparency = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-AudioVideoBridging = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-AuthenticationServices = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-AutomaticAssessmentConfiguration = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-Automator = "11.1" -pyobjc-framework-AVFoundation = {version = "11.1", markers = "platform_release >= \"11.0\""} -pyobjc-framework-AVKit = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-AVRouting = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-BackgroundAssets = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-BrowserEngineKit = {version = "11.1", markers = "platform_release >= \"23.4\""} -pyobjc-framework-BusinessChat = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-CalendarStore = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-CallKit = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-Carbon = "11.1" -pyobjc-framework-CFNetwork = "11.1" -pyobjc-framework-Cinematic = {version = "11.1", markers = "platform_release >= \"23.0\""} -pyobjc-framework-ClassKit = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-CloudKit = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-Cocoa = "11.1" -pyobjc-framework-Collaboration = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-ColorSync = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-Contacts = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-ContactsUI = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-CoreAudio = "11.1" -pyobjc-framework-CoreAudioKit = "11.1" -pyobjc-framework-CoreBluetooth = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-CoreData = "11.1" -pyobjc-framework-CoreHaptics = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-CoreLocation = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-CoreMedia = {version = "11.1", markers = "platform_release >= \"11.0\""} -pyobjc-framework-CoreMediaIO = {version = "11.1", markers = "platform_release >= \"11.0\""} -pyobjc-framework-CoreMIDI = "11.1" -pyobjc-framework-CoreML = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-CoreMotion = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-CoreServices = "11.1" -pyobjc-framework-CoreSpotlight = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-CoreText = "11.1" -pyobjc-framework-CoreWLAN = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-CryptoTokenKit = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-DataDetection = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-DeviceCheck = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-DeviceDiscoveryExtension = {version = "11.1", markers = "platform_release >= \"24.0\""} -pyobjc-framework-DictionaryServices = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-DiscRecording = "11.1" -pyobjc-framework-DiscRecordingUI = "11.1" -pyobjc-framework-DiskArbitration = "11.1" -pyobjc-framework-DVDPlayback = "11.1" -pyobjc-framework-EventKit = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-ExceptionHandling = "11.1" -pyobjc-framework-ExecutionPolicy = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-ExtensionKit = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-ExternalAccessory = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-FileProvider = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-FileProviderUI = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-FinderSync = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-FSEvents = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-FSKit = {version = "11.1", markers = "platform_release >= \"24.4\""} -pyobjc-framework-GameCenter = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-GameController = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-GameKit = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-GameplayKit = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-HealthKit = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-ImageCaptureCore = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-InputMethodKit = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-InstallerPlugins = "11.1" -pyobjc-framework-InstantMessage = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-Intents = {version = "11.1", markers = "platform_release >= \"16.0\""} -pyobjc-framework-IntentsUI = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-IOBluetooth = "11.1" -pyobjc-framework-IOBluetoothUI = "11.1" -pyobjc-framework-IOSurface = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-iTunesLibrary = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-KernelManagement = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-LatentSemanticMapping = "11.1" -pyobjc-framework-LaunchServices = "11.1" -pyobjc-framework-libdispatch = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-libxpc = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-LinkPresentation = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-LocalAuthentication = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-LocalAuthenticationEmbeddedUI = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-MailKit = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-MapKit = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-MediaAccessibility = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-MediaExtension = {version = "11.1", markers = "platform_release >= \"24.0\""} -pyobjc-framework-MediaLibrary = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-MediaPlayer = {version = "11.1", markers = "platform_release >= \"16.0\""} -pyobjc-framework-MediaToolbox = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-Metal = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-MetalFX = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-MetalKit = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-MetalPerformanceShaders = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-MetalPerformanceShadersGraph = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-MetricKit = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-MLCompute = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-ModelIO = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-MultipeerConnectivity = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-NaturalLanguage = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-NetFS = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-Network = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-NetworkExtension = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-NotificationCenter = {version = "11.1", markers = "platform_release >= \"14.0\""} -pyobjc-framework-OpenDirectory = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-OSAKit = "11.1" -pyobjc-framework-OSLog = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-PassKit = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-PencilKit = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-PHASE = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-Photos = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-PhotosUI = {version = "11.1", markers = "platform_release >= \"15.0\""} -pyobjc-framework-PreferencePanes = "11.1" -pyobjc-framework-PubSub = {version = "11.1", markers = "platform_release >= \"9.0\" and platform_release < \"18.0\""} -pyobjc-framework-PushKit = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-Quartz = "11.1" -pyobjc-framework-QuickLookThumbnailing = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-ReplayKit = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-SafariServices = {version = "11.1", markers = "platform_release >= \"16.0\""} -pyobjc-framework-SafetyKit = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-SceneKit = {version = "11.1", markers = "platform_release >= \"11.0\""} -pyobjc-framework-ScreenCaptureKit = {version = "11.1", markers = "platform_release >= \"21.4\""} -pyobjc-framework-ScreenSaver = "11.1" -pyobjc-framework-ScreenTime = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-ScriptingBridge = {version = "11.1", markers = "platform_release >= \"9.0\""} -pyobjc-framework-SearchKit = "11.1" -pyobjc-framework-Security = "11.1" -pyobjc-framework-SecurityFoundation = "11.1" -pyobjc-framework-SecurityInterface = "11.1" -pyobjc-framework-SecurityUI = {version = "11.1", markers = "platform_release >= \"24.4\""} -pyobjc-framework-SensitiveContentAnalysis = {version = "11.1", markers = "platform_release >= \"23.0\""} -pyobjc-framework-ServiceManagement = {version = "11.1", markers = "platform_release >= \"10.0\""} -pyobjc-framework-SharedWithYou = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-SharedWithYouCore = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-ShazamKit = {version = "11.1", markers = "platform_release >= \"21.0\""} -pyobjc-framework-Social = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-SoundAnalysis = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-Speech = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-SpriteKit = {version = "11.1", markers = "platform_release >= \"13.0\""} -pyobjc-framework-StoreKit = {version = "11.1", markers = "platform_release >= \"11.0\""} -pyobjc-framework-Symbols = {version = "11.1", markers = "platform_release >= \"23.0\""} -pyobjc-framework-SyncServices = "11.1" -pyobjc-framework-SystemConfiguration = "11.1" -pyobjc-framework-SystemExtensions = {version = "11.1", markers = "platform_release >= \"19.0\""} -pyobjc-framework-ThreadNetwork = {version = "11.1", markers = "platform_release >= \"22.0\""} -pyobjc-framework-UniformTypeIdentifiers = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-UserNotifications = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-UserNotificationsUI = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-VideoSubscriberAccount = {version = "11.1", markers = "platform_release >= \"18.0\""} -pyobjc-framework-VideoToolbox = {version = "11.1", markers = "platform_release >= \"12.0\""} -pyobjc-framework-Virtualization = {version = "11.1", markers = "platform_release >= \"20.0\""} -pyobjc-framework-Vision = {version = "11.1", markers = "platform_release >= \"17.0\""} -pyobjc-framework-WebKit = "11.1" + {file = "pyobjc-12.1-py3-none-any.whl", hash = "sha256:6f8c36cf87b1159d2ca1aa387ffc3efcd51cc3da13ef47c65f45e6d9fbccc729"}, + {file = "pyobjc-12.1.tar.gz", hash = "sha256:686d6db3eb3182fac9846b8ce3eedf4c7d2680b21b8b8d6e6df054a17e92a12d"}, +] + +[package.dependencies] +pyobjc-core = "12.1" +pyobjc-framework-Accessibility = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-Accounts = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-AddressBook = "12.1" +pyobjc-framework-AdServices = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-AdSupport = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-AppleScriptKit = "12.1" +pyobjc-framework-AppleScriptObjC = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-ApplicationServices = "12.1" +pyobjc-framework-AppTrackingTransparency = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-ARKit = {version = "12.1", markers = "platform_release >= \"25.0\""} +pyobjc-framework-AudioVideoBridging = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-AuthenticationServices = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-AutomaticAssessmentConfiguration = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-Automator = "12.1" +pyobjc-framework-AVFoundation = {version = "12.1", markers = "platform_release >= \"11.0\""} +pyobjc-framework-AVKit = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-AVRouting = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-BackgroundAssets = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-BrowserEngineKit = {version = "12.1", markers = "platform_release >= \"23.4\""} +pyobjc-framework-BusinessChat = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-CalendarStore = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-CallKit = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-Carbon = "12.1" +pyobjc-framework-CFNetwork = "12.1" +pyobjc-framework-Cinematic = {version = "12.1", markers = "platform_release >= \"23.0\""} +pyobjc-framework-ClassKit = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-CloudKit = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-Cocoa = "12.1" +pyobjc-framework-Collaboration = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-ColorSync = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-CompositorServices = {version = "12.1", markers = "platform_release >= \"25.0\""} +pyobjc-framework-Contacts = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-ContactsUI = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-CoreAudio = "12.1" +pyobjc-framework-CoreAudioKit = "12.1" +pyobjc-framework-CoreBluetooth = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-CoreData = "12.1" +pyobjc-framework-CoreHaptics = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-CoreLocation = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-CoreMedia = {version = "12.1", markers = "platform_release >= \"11.0\""} +pyobjc-framework-CoreMediaIO = {version = "12.1", markers = "platform_release >= \"11.0\""} +pyobjc-framework-CoreMIDI = "12.1" +pyobjc-framework-CoreML = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-CoreMotion = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-CoreServices = "12.1" +pyobjc-framework-CoreSpotlight = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-CoreText = "12.1" +pyobjc-framework-CoreWLAN = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-CryptoTokenKit = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-DataDetection = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-DeviceCheck = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-DeviceDiscoveryExtension = {version = "12.1", markers = "platform_release >= \"24.0\""} +pyobjc-framework-DictionaryServices = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-DiscRecording = "12.1" +pyobjc-framework-DiscRecordingUI = "12.1" +pyobjc-framework-DiskArbitration = "12.1" +pyobjc-framework-DVDPlayback = "12.1" +pyobjc-framework-EventKit = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-ExceptionHandling = "12.1" +pyobjc-framework-ExecutionPolicy = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-ExtensionKit = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-ExternalAccessory = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-FileProvider = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-FileProviderUI = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-FinderSync = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-FSEvents = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-FSKit = {version = "12.1", markers = "platform_release >= \"24.4\""} +pyobjc-framework-GameCenter = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-GameController = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-GameKit = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-GameplayKit = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-GameSave = {version = "12.1", markers = "platform_release >= \"25.0\""} +pyobjc-framework-HealthKit = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-ImageCaptureCore = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-InputMethodKit = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-InstallerPlugins = "12.1" +pyobjc-framework-InstantMessage = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-Intents = {version = "12.1", markers = "platform_release >= \"16.0\""} +pyobjc-framework-IntentsUI = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-IOBluetooth = "12.1" +pyobjc-framework-IOBluetoothUI = "12.1" +pyobjc-framework-IOSurface = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-iTunesLibrary = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-KernelManagement = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-LatentSemanticMapping = "12.1" +pyobjc-framework-LaunchServices = "12.1" +pyobjc-framework-libdispatch = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-libxpc = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-LinkPresentation = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-LocalAuthentication = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-LocalAuthenticationEmbeddedUI = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-MailKit = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-MapKit = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-MediaAccessibility = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-MediaExtension = {version = "12.1", markers = "platform_release >= \"24.0\""} +pyobjc-framework-MediaLibrary = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-MediaPlayer = {version = "12.1", markers = "platform_release >= \"16.0\""} +pyobjc-framework-MediaToolbox = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-Metal = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-MetalFX = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-MetalKit = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-MetalPerformanceShaders = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-MetalPerformanceShadersGraph = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-MetricKit = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-MLCompute = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-ModelIO = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-MultipeerConnectivity = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-NaturalLanguage = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-NetFS = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-Network = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-NetworkExtension = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-NotificationCenter = {version = "12.1", markers = "platform_release >= \"14.0\""} +pyobjc-framework-OpenDirectory = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-OSAKit = "12.1" +pyobjc-framework-OSLog = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-PassKit = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-PencilKit = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-PHASE = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-Photos = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-PhotosUI = {version = "12.1", markers = "platform_release >= \"15.0\""} +pyobjc-framework-PreferencePanes = "12.1" +pyobjc-framework-PubSub = {version = "12.1", markers = "platform_release >= \"9.0\" and platform_release < \"18.0\""} +pyobjc-framework-PushKit = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-Quartz = "12.1" +pyobjc-framework-QuickLookThumbnailing = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-ReplayKit = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-SafariServices = {version = "12.1", markers = "platform_release >= \"16.0\""} +pyobjc-framework-SafetyKit = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-SceneKit = {version = "12.1", markers = "platform_release >= \"11.0\""} +pyobjc-framework-ScreenCaptureKit = {version = "12.1", markers = "platform_release >= \"21.4\""} +pyobjc-framework-ScreenSaver = "12.1" +pyobjc-framework-ScreenTime = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-ScriptingBridge = {version = "12.1", markers = "platform_release >= \"9.0\""} +pyobjc-framework-SearchKit = "12.1" +pyobjc-framework-Security = "12.1" +pyobjc-framework-SecurityFoundation = "12.1" +pyobjc-framework-SecurityInterface = "12.1" +pyobjc-framework-SecurityUI = {version = "12.1", markers = "platform_release >= \"24.4\""} +pyobjc-framework-SensitiveContentAnalysis = {version = "12.1", markers = "platform_release >= \"23.0\""} +pyobjc-framework-ServiceManagement = {version = "12.1", markers = "platform_release >= \"10.0\""} +pyobjc-framework-SharedWithYou = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-SharedWithYouCore = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-ShazamKit = {version = "12.1", markers = "platform_release >= \"21.0\""} +pyobjc-framework-Social = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-SoundAnalysis = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-Speech = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-SpriteKit = {version = "12.1", markers = "platform_release >= \"13.0\""} +pyobjc-framework-StoreKit = {version = "12.1", markers = "platform_release >= \"11.0\""} +pyobjc-framework-Symbols = {version = "12.1", markers = "platform_release >= \"23.0\""} +pyobjc-framework-SyncServices = "12.1" +pyobjc-framework-SystemConfiguration = "12.1" +pyobjc-framework-SystemExtensions = {version = "12.1", markers = "platform_release >= \"19.0\""} +pyobjc-framework-ThreadNetwork = {version = "12.1", markers = "platform_release >= \"22.0\""} +pyobjc-framework-UniformTypeIdentifiers = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-UserNotifications = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-UserNotificationsUI = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-VideoSubscriberAccount = {version = "12.1", markers = "platform_release >= \"18.0\""} +pyobjc-framework-VideoToolbox = {version = "12.1", markers = "platform_release >= \"12.0\""} +pyobjc-framework-Virtualization = {version = "12.1", markers = "platform_release >= \"20.0\""} +pyobjc-framework-Vision = {version = "12.1", markers = "platform_release >= \"17.0\""} +pyobjc-framework-WebKit = "12.1" [package.extras] -allbindings = ["pyobjc-core (==11.1)", "pyobjc-framework-AVFoundation (==11.1)", "pyobjc-framework-AVKit (==11.1)", "pyobjc-framework-AVRouting (==11.1)", "pyobjc-framework-Accessibility (==11.1)", "pyobjc-framework-Accounts (==11.1)", "pyobjc-framework-AdServices (==11.1)", "pyobjc-framework-AdSupport (==11.1)", "pyobjc-framework-AddressBook (==11.1)", "pyobjc-framework-AppTrackingTransparency (==11.1)", "pyobjc-framework-AppleScriptKit (==11.1)", "pyobjc-framework-AppleScriptObjC (==11.1)", "pyobjc-framework-ApplicationServices (==11.1)", "pyobjc-framework-AudioVideoBridging (==11.1)", "pyobjc-framework-AuthenticationServices (==11.1)", "pyobjc-framework-AutomaticAssessmentConfiguration (==11.1)", "pyobjc-framework-Automator (==11.1)", "pyobjc-framework-BackgroundAssets (==11.1)", "pyobjc-framework-BrowserEngineKit (==11.1)", "pyobjc-framework-BusinessChat (==11.1)", "pyobjc-framework-CFNetwork (==11.1)", "pyobjc-framework-CalendarStore (==11.1)", "pyobjc-framework-CallKit (==11.1)", "pyobjc-framework-Carbon (==11.1)", "pyobjc-framework-Cinematic (==11.1)", "pyobjc-framework-ClassKit (==11.1)", "pyobjc-framework-CloudKit (==11.1)", "pyobjc-framework-Cocoa (==11.1)", "pyobjc-framework-Collaboration (==11.1)", "pyobjc-framework-ColorSync (==11.1)", "pyobjc-framework-Contacts (==11.1)", "pyobjc-framework-ContactsUI (==11.1)", "pyobjc-framework-CoreAudio (==11.1)", "pyobjc-framework-CoreAudioKit (==11.1)", "pyobjc-framework-CoreBluetooth (==11.1)", "pyobjc-framework-CoreData (==11.1)", "pyobjc-framework-CoreHaptics (==11.1)", "pyobjc-framework-CoreLocation (==11.1)", "pyobjc-framework-CoreMIDI (==11.1)", "pyobjc-framework-CoreML (==11.1)", "pyobjc-framework-CoreMedia (==11.1)", "pyobjc-framework-CoreMediaIO (==11.1)", "pyobjc-framework-CoreMotion (==11.1)", "pyobjc-framework-CoreServices (==11.1)", "pyobjc-framework-CoreSpotlight (==11.1)", "pyobjc-framework-CoreText (==11.1)", "pyobjc-framework-CoreWLAN (==11.1)", "pyobjc-framework-CryptoTokenKit (==11.1)", "pyobjc-framework-DVDPlayback (==11.1)", "pyobjc-framework-DataDetection (==11.1)", "pyobjc-framework-DeviceCheck (==11.1)", "pyobjc-framework-DeviceDiscoveryExtension (==11.1)", "pyobjc-framework-DictionaryServices (==11.1)", "pyobjc-framework-DiscRecording (==11.1)", "pyobjc-framework-DiscRecordingUI (==11.1)", "pyobjc-framework-DiskArbitration (==11.1)", "pyobjc-framework-EventKit (==11.1)", "pyobjc-framework-ExceptionHandling (==11.1)", "pyobjc-framework-ExecutionPolicy (==11.1)", "pyobjc-framework-ExtensionKit (==11.1)", "pyobjc-framework-ExternalAccessory (==11.1)", "pyobjc-framework-FSEvents (==11.1)", "pyobjc-framework-FSKit (==11.1)", "pyobjc-framework-FileProvider (==11.1)", "pyobjc-framework-FileProviderUI (==11.1)", "pyobjc-framework-FinderSync (==11.1)", "pyobjc-framework-GameCenter (==11.1)", "pyobjc-framework-GameController (==11.1)", "pyobjc-framework-GameKit (==11.1)", "pyobjc-framework-GameplayKit (==11.1)", "pyobjc-framework-HealthKit (==11.1)", "pyobjc-framework-IOBluetooth (==11.1)", "pyobjc-framework-IOBluetoothUI (==11.1)", "pyobjc-framework-IOSurface (==11.1)", "pyobjc-framework-ImageCaptureCore (==11.1)", "pyobjc-framework-InputMethodKit (==11.1)", "pyobjc-framework-InstallerPlugins (==11.1)", "pyobjc-framework-InstantMessage (==11.1)", "pyobjc-framework-Intents (==11.1)", "pyobjc-framework-IntentsUI (==11.1)", "pyobjc-framework-KernelManagement (==11.1)", "pyobjc-framework-LatentSemanticMapping (==11.1)", "pyobjc-framework-LaunchServices (==11.1)", "pyobjc-framework-LinkPresentation (==11.1)", "pyobjc-framework-LocalAuthentication (==11.1)", "pyobjc-framework-LocalAuthenticationEmbeddedUI (==11.1)", "pyobjc-framework-MLCompute (==11.1)", "pyobjc-framework-MailKit (==11.1)", "pyobjc-framework-MapKit (==11.1)", "pyobjc-framework-MediaAccessibility (==11.1)", "pyobjc-framework-MediaExtension (==11.1)", "pyobjc-framework-MediaLibrary (==11.1)", "pyobjc-framework-MediaPlayer (==11.1)", "pyobjc-framework-MediaToolbox (==11.1)", "pyobjc-framework-Metal (==11.1)", "pyobjc-framework-MetalFX (==11.1)", "pyobjc-framework-MetalKit (==11.1)", "pyobjc-framework-MetalPerformanceShaders (==11.1)", "pyobjc-framework-MetalPerformanceShadersGraph (==11.1)", "pyobjc-framework-MetricKit (==11.1)", "pyobjc-framework-ModelIO (==11.1)", "pyobjc-framework-MultipeerConnectivity (==11.1)", "pyobjc-framework-NaturalLanguage (==11.1)", "pyobjc-framework-NetFS (==11.1)", "pyobjc-framework-Network (==11.1)", "pyobjc-framework-NetworkExtension (==11.1)", "pyobjc-framework-NotificationCenter (==11.1)", "pyobjc-framework-OSAKit (==11.1)", "pyobjc-framework-OSLog (==11.1)", "pyobjc-framework-OpenDirectory (==11.1)", "pyobjc-framework-PHASE (==11.1)", "pyobjc-framework-PassKit (==11.1)", "pyobjc-framework-PencilKit (==11.1)", "pyobjc-framework-Photos (==11.1)", "pyobjc-framework-PhotosUI (==11.1)", "pyobjc-framework-PreferencePanes (==11.1)", "pyobjc-framework-PubSub (==11.1)", "pyobjc-framework-PushKit (==11.1)", "pyobjc-framework-Quartz (==11.1)", "pyobjc-framework-QuickLookThumbnailing (==11.1)", "pyobjc-framework-ReplayKit (==11.1)", "pyobjc-framework-SafariServices (==11.1)", "pyobjc-framework-SafetyKit (==11.1)", "pyobjc-framework-SceneKit (==11.1)", "pyobjc-framework-ScreenCaptureKit (==11.1)", "pyobjc-framework-ScreenSaver (==11.1)", "pyobjc-framework-ScreenTime (==11.1)", "pyobjc-framework-ScriptingBridge (==11.1)", "pyobjc-framework-SearchKit (==11.1)", "pyobjc-framework-Security (==11.1)", "pyobjc-framework-SecurityFoundation (==11.1)", "pyobjc-framework-SecurityInterface (==11.1)", "pyobjc-framework-SecurityUI (==11.1)", "pyobjc-framework-SensitiveContentAnalysis (==11.1)", "pyobjc-framework-ServiceManagement (==11.1)", "pyobjc-framework-SharedWithYou (==11.1)", "pyobjc-framework-SharedWithYouCore (==11.1)", "pyobjc-framework-ShazamKit (==11.1)", "pyobjc-framework-Social (==11.1)", "pyobjc-framework-SoundAnalysis (==11.1)", "pyobjc-framework-Speech (==11.1)", "pyobjc-framework-SpriteKit (==11.1)", "pyobjc-framework-StoreKit (==11.1)", "pyobjc-framework-Symbols (==11.1)", "pyobjc-framework-SyncServices (==11.1)", "pyobjc-framework-SystemConfiguration (==11.1)", "pyobjc-framework-SystemExtensions (==11.1)", "pyobjc-framework-ThreadNetwork (==11.1)", "pyobjc-framework-UniformTypeIdentifiers (==11.1)", "pyobjc-framework-UserNotifications (==11.1)", "pyobjc-framework-UserNotificationsUI (==11.1)", "pyobjc-framework-VideoSubscriberAccount (==11.1)", "pyobjc-framework-VideoToolbox (==11.1)", "pyobjc-framework-Virtualization (==11.1)", "pyobjc-framework-Vision (==11.1)", "pyobjc-framework-WebKit (==11.1)", "pyobjc-framework-iTunesLibrary (==11.1)", "pyobjc-framework-libdispatch (==11.1)", "pyobjc-framework-libxpc (==11.1)"] +allbindings = ["pyobjc-core (==12.1)", "pyobjc-framework-ARKit (==12.1)", "pyobjc-framework-AVFoundation (==12.1)", "pyobjc-framework-AVKit (==12.1)", "pyobjc-framework-AVRouting (==12.1)", "pyobjc-framework-Accessibility (==12.1)", "pyobjc-framework-Accounts (==12.1)", "pyobjc-framework-AdServices (==12.1)", "pyobjc-framework-AdSupport (==12.1)", "pyobjc-framework-AddressBook (==12.1)", "pyobjc-framework-AppTrackingTransparency (==12.1)", "pyobjc-framework-AppleScriptKit (==12.1)", "pyobjc-framework-AppleScriptObjC (==12.1)", "pyobjc-framework-ApplicationServices (==12.1)", "pyobjc-framework-AudioVideoBridging (==12.1)", "pyobjc-framework-AuthenticationServices (==12.1)", "pyobjc-framework-AutomaticAssessmentConfiguration (==12.1)", "pyobjc-framework-Automator (==12.1)", "pyobjc-framework-BackgroundAssets (==12.1)", "pyobjc-framework-BrowserEngineKit (==12.1)", "pyobjc-framework-BusinessChat (==12.1)", "pyobjc-framework-CFNetwork (==12.1)", "pyobjc-framework-CalendarStore (==12.1)", "pyobjc-framework-CallKit (==12.1)", "pyobjc-framework-Carbon (==12.1)", "pyobjc-framework-Cinematic (==12.1)", "pyobjc-framework-ClassKit (==12.1)", "pyobjc-framework-CloudKit (==12.1)", "pyobjc-framework-Cocoa (==12.1)", "pyobjc-framework-Collaboration (==12.1)", "pyobjc-framework-ColorSync (==12.1)", "pyobjc-framework-CompositorServices (==12.1)", "pyobjc-framework-Contacts (==12.1)", "pyobjc-framework-ContactsUI (==12.1)", "pyobjc-framework-CoreAudio (==12.1)", "pyobjc-framework-CoreAudioKit (==12.1)", "pyobjc-framework-CoreBluetooth (==12.1)", "pyobjc-framework-CoreData (==12.1)", "pyobjc-framework-CoreHaptics (==12.1)", "pyobjc-framework-CoreLocation (==12.1)", "pyobjc-framework-CoreMIDI (==12.1)", "pyobjc-framework-CoreML (==12.1)", "pyobjc-framework-CoreMedia (==12.1)", "pyobjc-framework-CoreMediaIO (==12.1)", "pyobjc-framework-CoreMotion (==12.1)", "pyobjc-framework-CoreServices (==12.1)", "pyobjc-framework-CoreSpotlight (==12.1)", "pyobjc-framework-CoreText (==12.1)", "pyobjc-framework-CoreWLAN (==12.1)", "pyobjc-framework-CryptoTokenKit (==12.1)", "pyobjc-framework-DVDPlayback (==12.1)", "pyobjc-framework-DataDetection (==12.1)", "pyobjc-framework-DeviceCheck (==12.1)", "pyobjc-framework-DeviceDiscoveryExtension (==12.1)", "pyobjc-framework-DictionaryServices (==12.1)", "pyobjc-framework-DiscRecording (==12.1)", "pyobjc-framework-DiscRecordingUI (==12.1)", "pyobjc-framework-DiskArbitration (==12.1)", "pyobjc-framework-EventKit (==12.1)", "pyobjc-framework-ExceptionHandling (==12.1)", "pyobjc-framework-ExecutionPolicy (==12.1)", "pyobjc-framework-ExtensionKit (==12.1)", "pyobjc-framework-ExternalAccessory (==12.1)", "pyobjc-framework-FSEvents (==12.1)", "pyobjc-framework-FSKit (==12.1)", "pyobjc-framework-FileProvider (==12.1)", "pyobjc-framework-FileProviderUI (==12.1)", "pyobjc-framework-FinderSync (==12.1)", "pyobjc-framework-GameCenter (==12.1)", "pyobjc-framework-GameController (==12.1)", "pyobjc-framework-GameKit (==12.1)", "pyobjc-framework-GameSave (==12.1)", "pyobjc-framework-GameplayKit (==12.1)", "pyobjc-framework-HealthKit (==12.1)", "pyobjc-framework-IOBluetooth (==12.1)", "pyobjc-framework-IOBluetoothUI (==12.1)", "pyobjc-framework-IOSurface (==12.1)", "pyobjc-framework-ImageCaptureCore (==12.1)", "pyobjc-framework-InputMethodKit (==12.1)", "pyobjc-framework-InstallerPlugins (==12.1)", "pyobjc-framework-InstantMessage (==12.1)", "pyobjc-framework-Intents (==12.1)", "pyobjc-framework-IntentsUI (==12.1)", "pyobjc-framework-KernelManagement (==12.1)", "pyobjc-framework-LatentSemanticMapping (==12.1)", "pyobjc-framework-LaunchServices (==12.1)", "pyobjc-framework-LinkPresentation (==12.1)", "pyobjc-framework-LocalAuthentication (==12.1)", "pyobjc-framework-LocalAuthenticationEmbeddedUI (==12.1)", "pyobjc-framework-MLCompute (==12.1)", "pyobjc-framework-MailKit (==12.1)", "pyobjc-framework-MapKit (==12.1)", "pyobjc-framework-MediaAccessibility (==12.1)", "pyobjc-framework-MediaExtension (==12.1)", "pyobjc-framework-MediaLibrary (==12.1)", "pyobjc-framework-MediaPlayer (==12.1)", "pyobjc-framework-MediaToolbox (==12.1)", "pyobjc-framework-Metal (==12.1)", "pyobjc-framework-MetalFX (==12.1)", "pyobjc-framework-MetalKit (==12.1)", "pyobjc-framework-MetalPerformanceShaders (==12.1)", "pyobjc-framework-MetalPerformanceShadersGraph (==12.1)", "pyobjc-framework-MetricKit (==12.1)", "pyobjc-framework-ModelIO (==12.1)", "pyobjc-framework-MultipeerConnectivity (==12.1)", "pyobjc-framework-NaturalLanguage (==12.1)", "pyobjc-framework-NetFS (==12.1)", "pyobjc-framework-Network (==12.1)", "pyobjc-framework-NetworkExtension (==12.1)", "pyobjc-framework-NotificationCenter (==12.1)", "pyobjc-framework-OSAKit (==12.1)", "pyobjc-framework-OSLog (==12.1)", "pyobjc-framework-OpenDirectory (==12.1)", "pyobjc-framework-PHASE (==12.1)", "pyobjc-framework-PassKit (==12.1)", "pyobjc-framework-PencilKit (==12.1)", "pyobjc-framework-Photos (==12.1)", "pyobjc-framework-PhotosUI (==12.1)", "pyobjc-framework-PreferencePanes (==12.1)", "pyobjc-framework-PubSub (==12.1)", "pyobjc-framework-PushKit (==12.1)", "pyobjc-framework-Quartz (==12.1)", "pyobjc-framework-QuickLookThumbnailing (==12.1)", "pyobjc-framework-ReplayKit (==12.1)", "pyobjc-framework-SafariServices (==12.1)", "pyobjc-framework-SafetyKit (==12.1)", "pyobjc-framework-SceneKit (==12.1)", "pyobjc-framework-ScreenCaptureKit (==12.1)", "pyobjc-framework-ScreenSaver (==12.1)", "pyobjc-framework-ScreenTime (==12.1)", "pyobjc-framework-ScriptingBridge (==12.1)", "pyobjc-framework-SearchKit (==12.1)", "pyobjc-framework-Security (==12.1)", "pyobjc-framework-SecurityFoundation (==12.1)", "pyobjc-framework-SecurityInterface (==12.1)", "pyobjc-framework-SecurityUI (==12.1)", "pyobjc-framework-SensitiveContentAnalysis (==12.1)", "pyobjc-framework-ServiceManagement (==12.1)", "pyobjc-framework-SharedWithYou (==12.1)", "pyobjc-framework-SharedWithYouCore (==12.1)", "pyobjc-framework-ShazamKit (==12.1)", "pyobjc-framework-Social (==12.1)", "pyobjc-framework-SoundAnalysis (==12.1)", "pyobjc-framework-Speech (==12.1)", "pyobjc-framework-SpriteKit (==12.1)", "pyobjc-framework-StoreKit (==12.1)", "pyobjc-framework-Symbols (==12.1)", "pyobjc-framework-SyncServices (==12.1)", "pyobjc-framework-SystemConfiguration (==12.1)", "pyobjc-framework-SystemExtensions (==12.1)", "pyobjc-framework-ThreadNetwork (==12.1)", "pyobjc-framework-UniformTypeIdentifiers (==12.1)", "pyobjc-framework-UserNotifications (==12.1)", "pyobjc-framework-UserNotificationsUI (==12.1)", "pyobjc-framework-VideoSubscriberAccount (==12.1)", "pyobjc-framework-VideoToolbox (==12.1)", "pyobjc-framework-Virtualization (==12.1)", "pyobjc-framework-Vision (==12.1)", "pyobjc-framework-WebKit (==12.1)", "pyobjc-framework-iTunesLibrary (==12.1)", "pyobjc-framework-libdispatch (==12.1)", "pyobjc-framework-libxpc (==12.1)"] [[package]] name = "pyobjc-core" -version = "11.1" +version = "12.1" description = "Python<->ObjC Interoperability Module" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\"" files = [ - {file = "pyobjc_core-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4c7536f3e94de0a3eae6bb382d75f1219280aa867cdf37beef39d9e7d580173c"}, - {file = "pyobjc_core-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ec36680b5c14e2f73d432b03ba7c1457dc6ca70fa59fd7daea1073f2b4157d33"}, - {file = "pyobjc_core-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:765b97dea6b87ec4612b3212258024d8496ea23517c95a1c5f0735f96b7fd529"}, - {file = "pyobjc_core-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:18986f83998fbd5d3f56d8a8428b2f3e0754fd15cef3ef786ca0d29619024f2c"}, - {file = "pyobjc_core-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8849e78cfe6595c4911fbba29683decfb0bf57a350aed8a43316976ba6f659d2"}, - {file = "pyobjc_core-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:8cb9ed17a8d84a312a6e8b665dd22393d48336ea1d8277e7ad20c19a38edf731"}, - {file = "pyobjc_core-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f2455683e807f8541f0d83fbba0f5d9a46128ab0d5cc83ea208f0bec759b7f96"}, - {file = "pyobjc_core-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4a99e6558b48b8e47c092051e7b3be05df1c8d0617b62f6fa6a316c01902d157"}, - {file = "pyobjc_core-11.1.tar.gz", hash = "sha256:b63d4d90c5df7e762f34739b39cc55bc63dbcf9fb2fb3f2671e528488c7a87fe"}, + {file = "pyobjc_core-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93418e79c1655f66b4352168f8c85c942707cb1d3ea13a1da3e6f6a143bacda7"}, + {file = "pyobjc_core-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c918ebca280925e7fcb14c5c43ce12dcb9574a33cccb889be7c8c17f3bcce8b6"}, + {file = "pyobjc_core-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:818bcc6723561f207e5b5453efe9703f34bc8781d11ce9b8be286bb415eb4962"}, + {file = "pyobjc_core-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:01c0cf500596f03e21c23aef9b5f326b9fb1f8f118cf0d8b66749b6cf4cbb37a"}, + {file = "pyobjc_core-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:177aaca84bb369a483e4961186704f64b2697708046745f8167e818d968c88fc"}, + {file = "pyobjc_core-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:844515f5d86395b979d02152576e7dee9cc679acc0b32dc626ef5bda315eaa43"}, + {file = "pyobjc_core-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:453b191df1a4b80e756445b935491b974714456ae2cbae816840bd96f86db882"}, + {file = "pyobjc_core-12.1.tar.gz", hash = "sha256:2bb3903f5387f72422145e1466b3ac3f7f0ef2e9960afa9bcd8961c5cbf8bd21"}, ] [[package]] name = "pyobjc-framework-accessibility" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Accessibility on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_accessibility-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8bbe921650607461fcaba6cfb921e8cb0d301e870553fb5353d7f1787a355696"}, - {file = "pyobjc_framework_accessibility-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:332263153d829b946b311ddc8b9a4402b52d40a572b44c69c3242451ced1b008"}, - {file = "pyobjc_framework_accessibility-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a049b63b32514da68aaaeef0d6c00a125e0618e4042aa6dbe3867b74fb2a8b2b"}, - {file = "pyobjc_framework_accessibility-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd5a03b731d1a2bbb2bf706b58889a5e82df82ac69210ec3245c7dc69e42a63a"}, - {file = "pyobjc_framework_accessibility-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3496c55569a421ef3c98ea66fc0ebaf68c686ede5b26db0fdcb0b0ad4191a20b"}, - {file = "pyobjc_framework_accessibility-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:7c4124981a5d84b71464babb4babfbeb5bfab145bc75b6f3577bd046a9579226"}, - {file = "pyobjc_framework_accessibility-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:ea98239e339136e3d20d753afe7908006cf29567ba39b8e83ceda7c221e6aad1"}, - {file = "pyobjc_framework_accessibility-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3b90638d583d8dd884aa7fca45e284d4a76e62d695f44f08102c01b19155a613"}, - {file = "pyobjc_framework_accessibility-11.1.tar.gz", hash = "sha256:c0fa5f1e00906ec002f582c7d3d80463a46d19f672bf5ec51144f819eeb40656"}, + {file = "pyobjc_framework_accessibility-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ca72a049a9dc56686cfe7b8c0bbb556205fb7a955a48cabf7f90447708d89651"}, + {file = "pyobjc_framework_accessibility-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5e29dac0ce8327cd5a8b9a5a8bd8aa83e4070018b93699e97ac0c3af09b42a9a"}, + {file = "pyobjc_framework_accessibility-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:537691a0b28fedb8385cd093df069a6e5d7e027629671fc47b50210404eca20b"}, + {file = "pyobjc_framework_accessibility-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:44d872d8a1f9d1569da0590c5a9185d2c02dc2e08e410c84a03aa54ca6e05c2c"}, + {file = "pyobjc_framework_accessibility-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4b9e2079ad0da736ba32a10e63698ff1db9667b5f6342a81220aa86cfa0de8c8"}, + {file = "pyobjc_framework_accessibility-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0a14c794af7f38d8b59f6d7b03f708e61473a42d4a43663e7a2a6355121d11f7"}, + {file = "pyobjc_framework_accessibility-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:bc517a0eff3989ea98197858fbe4bbb4c673e171f4acbb94dc8cf94415b11e0b"}, + {file = "pyobjc_framework_accessibility-12.1.tar.gz", hash = "sha256:5ff362c3425edc242d49deec11f5f3e26e565cefb6a2872eda59ab7362149772"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-accounts" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Accounts on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_accounts-11.1-py2.py3-none-any.whl", hash = "sha256:9c3fe342be7b8e73cba735e5a38affbe349cf8bc19091aa4fd788eabf2074b72"}, - {file = "pyobjc_framework_accounts-11.1.tar.gz", hash = "sha256:384fec156e13ff75253bb094339013f4013464f6dfd47e2f7de3e2ae7441c030"}, + {file = "pyobjc_framework_accounts-12.1-py2.py3-none-any.whl", hash = "sha256:e1544ad11a2f889a7aaed649188d0e76d58595a27eec07ca663847a7adb21ae5"}, + {file = "pyobjc_framework_accounts-12.1.tar.gz", hash = "sha256:76d62c5e7b831eb8f4c9ca6abaf79d9ed961dfffe24d89a041fb1de97fe56a3e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-addressbook" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AddressBook on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_addressbook-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:013db030aebe7c09752492ed8f9b12ff41b1264ed119e9858241d57276961e75"}, - {file = "pyobjc_framework_addressbook-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d1d69330b5a87a29d26feea95dcf40681fd00ba3b40ac89579072ce536b6b647"}, - {file = "pyobjc_framework_addressbook-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fb3d0a710f8342a0c63a8e4caf64a044b4d7e42d6d242c8e1b54470238b938cb"}, - {file = "pyobjc_framework_addressbook-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:411adf4874cc4343f2928a26fe4cb3673d2f5f73365b45cd3650aa7304a45e24"}, - {file = "pyobjc_framework_addressbook-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6735f297f0e5fd109fa77ca90cace57eb2e10eb65e3c15ccd249df2228030d3b"}, - {file = "pyobjc_framework_addressbook-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e4004bdf134a069c58d91b231cbeb9e0adad26a73d2689015baaf6a98c411c54"}, - {file = "pyobjc_framework_addressbook-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:6bc42832e85f418a9f978b7e001e219faf52cbb279a0df185115cd4292c381cb"}, - {file = "pyobjc_framework_addressbook-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8f90a3e3a66deb737977586782b173d4e246e74afb7c0ff3af08920d57498256"}, - {file = "pyobjc_framework_addressbook-11.1.tar.gz", hash = "sha256:ce2db3be4a3128bf79d5c41319a6d16b73754785ce75ac694d0d658c690922fc"}, + {file = "pyobjc_framework_addressbook-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6291d67436112057df27f76d758a8fb9a6ff1557420dee0baf52e61cf174872"}, + {file = "pyobjc_framework_addressbook-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:681755ada6c95bd4a096bc2b9f9c24661ffe6bff19a96963ee3fad34f3d61d2b"}, + {file = "pyobjc_framework_addressbook-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7893dd784322f4674299fb3ca40cb03385e5eddb78defd38f08c0b730813b56c"}, + {file = "pyobjc_framework_addressbook-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f03312faeb3c381e040f965b288379468d567b1449c1cfe66d150885b48510a3"}, + {file = "pyobjc_framework_addressbook-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3b6931f78e01a215df3d9a27d1a10aab04659e636b0836ac448f8dd7fc56a581"}, + {file = "pyobjc_framework_addressbook-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e4e24094fa293f158ed21fcd57414b759dc1220c23efec4ee8a7672d726b3576"}, + {file = "pyobjc_framework_addressbook-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:184bc73e38bd062dce1eb97eb2f14be322f2421daf78efe2747aedb886d93eb0"}, + {file = "pyobjc_framework_addressbook-12.1.tar.gz", hash = "sha256:c48b740cf981103cef1743d0804a226d86481fcb839bd84b80e9a586187e8000"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-adservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AdServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_adservices-11.1-py2.py3-none-any.whl", hash = "sha256:1744f59a75b2375e139c39f3e85658e62cd10cc0f12b158a80421f18734e9ffc"}, - {file = "pyobjc_framework_adservices-11.1.tar.gz", hash = "sha256:44c72f8163705c9aa41baca938fdb17dde257639e5797e6a5c3a2b2d8afdade9"}, + {file = "pyobjc_framework_adservices-12.1-py2.py3-none-any.whl", hash = "sha256:9ca3c55e35b2abb3149a0bce5de9a1f7e8ee4f8642036910ca8586ab2e161538"}, + {file = "pyobjc_framework_adservices-12.1.tar.gz", hash = "sha256:7a31fc8d5c6fd58f012db87c89ba581361fc905114bfb912e0a3a87475c02183"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-adsupport" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AdSupport on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_adsupport-11.1-py2.py3-none-any.whl", hash = "sha256:c3e009612778948910d3a7135b9d77b9b7c06aab29d40957770834c083acf825"}, - {file = "pyobjc_framework_adsupport-11.1.tar.gz", hash = "sha256:78b9667c275785df96219d205bd4309731869c3298d0931e32aed83bede29096"}, + {file = "pyobjc_framework_adsupport-12.1-py2.py3-none-any.whl", hash = "sha256:97dcd8799dd61f047bb2eb788bbde81f86e95241b5e5173a3a61cfc05b5598b1"}, + {file = "pyobjc_framework_adsupport-12.1.tar.gz", hash = "sha256:9a68480e76de567c339dca29a8c739d6d7b5cad30e1cd585ff6e49ec2fc283dd"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-applescriptkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AppleScriptKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_applescriptkit-11.1-py2.py3-none-any.whl", hash = "sha256:e22cbc9d1a25a4a713f21aa94dd017c311186b02062fc7ffbde3009495fb0067"}, - {file = "pyobjc_framework_applescriptkit-11.1.tar.gz", hash = "sha256:477707352eaa6cc4a5f8c593759dc3227a19d5958481b1482f0d59394a4601c3"}, + {file = "pyobjc_framework_applescriptkit-12.1-py2.py3-none-any.whl", hash = "sha256:b955fc017b524027f635d92a8a45a5fd9fbae898f3e03de16ecd94aa4c4db987"}, + {file = "pyobjc_framework_applescriptkit-12.1.tar.gz", hash = "sha256:cb09f88cf0ad9753dedc02720065818f854b50e33eb4194f0ea34de6d7a3eb33"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-applescriptobjc" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AppleScriptObjC on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_applescriptobjc-11.1-py2.py3-none-any.whl", hash = "sha256:ac22526fd1f0a3b07ac1d77f90046b77f10ec9549182114f2428ee1e96d3de2b"}, - {file = "pyobjc_framework_applescriptobjc-11.1.tar.gz", hash = "sha256:c8a0ec975b64411a4f16a1280c5ea8dbe949fd361e723edd343102f0f95aba6e"}, + {file = "pyobjc_framework_applescriptobjc-12.1-py2.py3-none-any.whl", hash = "sha256:79068f982cc22471712ce808c0a8fd5deea11258fc8d8c61968a84b1962a3d10"}, + {file = "pyobjc_framework_applescriptobjc-12.1.tar.gz", hash = "sha256:dce080ed07409b0dda2fee75d559bd312ea1ef0243a4338606440f282a6a0f5f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-applicationservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ApplicationServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_applicationservices-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:89aa713f16f1de66efd82f3be77c632ad1068e51e0ef0c2b0237ac7c7f580814"}, - {file = "pyobjc_framework_applicationservices-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cf45d15eddae36dec2330a9992fc852476b61c8f529874b9ec2805c768a75482"}, - {file = "pyobjc_framework_applicationservices-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f4a85ccd78bab84f7f05ac65ff9be117839dfc09d48c39edd65c617ed73eb01c"}, - {file = "pyobjc_framework_applicationservices-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:385a89f4d0838c97a331e247519d9e9745aa3f7427169d18570e3c664076a63c"}, - {file = "pyobjc_framework_applicationservices-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f480fab20f3005e559c9d06c9a3874a1f1c60dde52c6d28a53ab59b45e79d55f"}, - {file = "pyobjc_framework_applicationservices-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e8dee91c6a14fd042f98819dc0ac4a182e0e816282565534032f0e544bfab143"}, - {file = "pyobjc_framework_applicationservices-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:a0ce40a57a9b993793b6f72c4fd93f80618ef54a69d76a1da97b8360a2f3ffc5"}, - {file = "pyobjc_framework_applicationservices-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ba671fc6b695de69b2ed5e350b09cc1806f39352e8ad07635c94ef17730f6fe0"}, - {file = "pyobjc_framework_applicationservices-11.1.tar.gz", hash = "sha256:03fcd8c0c600db98fa8b85eb7b3bc31491701720c795e3f762b54e865138bbaf"}, + {file = "pyobjc_framework_applicationservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c4fd1b008757182b9e2603a63c6ffa930cc412fab47294ec64260ab3f8ec695d"}, + {file = "pyobjc_framework_applicationservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdddd492eeac6d14ff2f5bd342aba29e30dffa72a2d358c08444da22129890e2"}, + {file = "pyobjc_framework_applicationservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c8f6e2fb3b3e9214ab4864ef04eee18f592b46a986c86ea0113448b310520532"}, + {file = "pyobjc_framework_applicationservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bd1f4dbb38234a24ae6819f5e22485cf7dd3dd4074ff3bf9a9fdb4c01a3b4a38"}, + {file = "pyobjc_framework_applicationservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8a5d2845249b6a85ba9e320a9848468c3f8cd6f59605a9a43f406a7810eaa830"}, + {file = "pyobjc_framework_applicationservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f43c9a24ad97a9121276d4d571aa04a924282c80d7291cfb3b29839c3e2013a8"}, + {file = "pyobjc_framework_applicationservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1f72e20009a4ebfd5ed5b23dc11c1528ad6b55cc63ee71952ddb2a5e5f1cb7da"}, + {file = "pyobjc_framework_applicationservices-12.1.tar.gz", hash = "sha256:c06abb74f119bc27aeb41bf1aef8102c0ae1288aec1ac8665ea186a067a8945b"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreText = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreText = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-apptrackingtransparency" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AppTrackingTransparency on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_apptrackingtransparency-11.1-py2.py3-none-any.whl", hash = "sha256:e25c3eae25d24ee8b523b7ecc4d2b07af37c7733444b80c4964071dea7b0cb19"}, - {file = "pyobjc_framework_apptrackingtransparency-11.1.tar.gz", hash = "sha256:796cc5f83346c10973806cfb535d4200b894a5d2626ff2eeb1972d594d14fed4"}, + {file = "pyobjc_framework_apptrackingtransparency-12.1-py2.py3-none-any.whl", hash = "sha256:23a98ade55495f2f992ecf62c3cbd8f648cbd68ba5539c3f795bf66de82e37ca"}, + {file = "pyobjc_framework_apptrackingtransparency-12.1.tar.gz", hash = "sha256:e25bf4e4dfa2d929993ee8e852b28fdf332fa6cde0a33328fdc3b2f502fa50ec"}, +] + +[package.dependencies] +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" + +[[package]] +name = "pyobjc-framework-arkit" +version = "12.1" +description = "Wrappers for the framework ARKit on macOS" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"25.0\"" +files = [ + {file = "pyobjc_framework_arkit-12.1-py2.py3-none-any.whl", hash = "sha256:f6d39e28d858ee03f052d6780a552247e682204382dbc090f1d3192fa1b21493"}, + {file = "pyobjc_framework_arkit-12.1.tar.gz", hash = "sha256:0c5c6b702926179700b68ba29b8247464c3b609fd002a07a3308e72cfa953adf"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-audiovideobridging" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AudioVideoBridging on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_audiovideobridging-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd88f7083cc7858c21bfc151a9745e6c24d4f4fa1c3ad5a50673f34c42e17111"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:db570433910d1df49cc45d25f7a966227033c794fb41133d59212689b86b1ac6"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:591e80ff6973ea51a12f7c1a2e3fd59496633a51d5a1bf73f4fb989a43e23681"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:30a12be3784f41e1c6b5ef532c08e73bae7071d9a036b26b1e36b919ee5b6f57"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3bef4383dc9233dbd9efc3817ce9c8fe8670c61d21a94de3c149e7f460245792"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:6159b94448af08c9b119eb6ecf3fdbc2b3348ad66fb99586f991939779e412ec"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e466561bd9eb77be050aabead6ad7313a480d05389d9892e1db2cbc06ce1f475"}, - {file = "pyobjc_framework_audiovideobridging-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0699a7052672e9bb5c77054c59aff50183293e5944e4ac416d258f262ff25650"}, - {file = "pyobjc_framework_audiovideobridging-11.1.tar.gz", hash = "sha256:12756b3aa35083b8ad5c9139b6a0e2f4792e217096b5bf6b702d499038203991"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c2fa51d674ba30801cfe67d1b5e71424635b62f6377b96602bce124ae3086823"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6bc24a7063b08c7d9f1749a4641430d363b6dba642c04d09b58abcee7a5260cb"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:010021502649e2cca4e999a7c09358d48c6b0ed83530bbc0b85bba6834340e4b"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9901a88b6c8dbc982d8605c6b1ff0330ff80647a0a96a8187b6784249eb42dc"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0c57fdf1762f616d10549c0eddf84e59c193800f4a7932aaa7d5f13c123609c0"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:88f97bf62cba0d07f623650a7b2a58f73aedcc03b523e2bcd5653042dd50c152"}, + {file = "pyobjc_framework_audiovideobridging-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:84d466e0c2fbf466fd5ca9209139e321ddf3f96bbd987308c73bb4a243ab80b2"}, + {file = "pyobjc_framework_audiovideobridging-12.1.tar.gz", hash = "sha256:6230ace6bec1f38e8a727c35d054a7be54e039b3053f98e6dd8d08d6baee2625"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-authenticationservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AuthenticationServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_authenticationservices-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4454c2f69c04fc31c0ec0924ccb3aa9bfe8a11d5632d83172904b5b4cc34d8b5"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3987b7fc9493c2ba77b773df99f6631bff1ee9b957d99e34afa6b4e1c9d48bfb"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6655dd53d9135ef85265a4297da5e7459ed7836973f2796027fdfbfd7f08e433"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:364035d265129192e6906f7a94cbdf714d737b6b9f20e56bfe74d0007c8761b1"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e92bf7e829229fbecba4f7f649d3ae38760cf25aa9e909c0e737b1945f36b62d"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:60bf585e561d885cc88a21713ef2db259baf6434ce7116f82265a0c727f29dba"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f19ea757ecfda6ac929559c779c3afb001855dd5e41e4acc4c42343c7d912da6"}, - {file = "pyobjc_framework_authenticationservices-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:972fd38fca75ffd4314169e8cc6eeb6784fc2ca080a399b8a6f74b8849548729"}, - {file = "pyobjc_framework_authenticationservices-11.1.tar.gz", hash = "sha256:8fd801cdb53d426b4e678b0a8529c005d0c44f5a17ccd7052a7c3a1a87caed6a"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39bba6cc6041467d0046a04610e8aacc852961c82055d84bf3981971780ee5eb"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c15bb81282356f3f062ac79ff4166c93097448edc44b17dcf686e1dac78cc832"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6fd5ce10fe5359cbbfe03eb12cab3e01992b32ab65653c579b00ac93cf674985"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4491a2352cd53a38c7d057d674b1aa40d05eddb8dd7a1a2f415d9f2858b52d40"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a3957039eae3a82ada418ee475a347619e42ba10c45a57cd6ca83b1a0e61c2ad"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3ee69de818ce91c3bea6f87deba59ab8392a2c17c48f3d6fce0639c0e548bb0c"}, + {file = "pyobjc_framework_authenticationservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b14997d96887127f393434d42e3e108eeca2116ca935dd7e37e91c709a93b422"}, + {file = "pyobjc_framework_authenticationservices-12.1.tar.gz", hash = "sha256:cef71faeae2559f5c0ff9a81c9ceea1c81108e2f4ec7de52a98c269feff7a4b6"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-automaticassessmentconfiguration" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AutomaticAssessmentConfiguration on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a88e75b600c570939190795ead28e097c62aa040467088352c550df52d96e8d4"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:50cc5466bec1f58f79921d49544b525b56897cb985dfcfabf825ee231c27bcfc"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:55d1684dd676730fb1afbc7c67e0669e3a7159f18c126fea7453fe6182c098f9"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fbcbe406c2a02d632885f6b23285c259b715f019b938d666cc554a66ecf5f9c3"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e5fa297c7d4db225f75e5d11121fa68e0956c104e14b24250a52157a180e5f6c"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:4b11c33fb6f6092b9e1fb63747f2402f516b7ff0f815be4ece4625f2a2ec954f"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:378d233879bb011ed9d0bcf1b0e3c048fb756023d0f6819e997f62acc2c32bc3"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6d2a21425908f34d30840600e810883b0616e21810afcc6ab122bec6b95ef300"}, - {file = "pyobjc_framework_automaticassessmentconfiguration-11.1.tar.gz", hash = "sha256:70eadbf8600101901a56fcd7014d8941604e14f3b3728bc4fb0178a9a9420032"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:096c1f0dcd96a6e9903b70b3090747e76344324c02066026c4f7c347bc1823ae"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d94a4a3beb77b3b2ab7b610c4b41e28593d15571724a9e6ab196b82acc98dc13"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c2e22ea67d7e6d6a84d968169f83d92b59857a49ab12132de07345adbfea8a62"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:467739e70ddbc259bf453056cc9ce4ed96de8e6aad8122fa4035d2e6ecf9fc9c"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b4ea4b00f70bf242a5d8ce9c420987239dbc74285588c141ac1e0d6bd71fcd4c"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f5f1818c6f77daf64d954878bbbda6b3f5e41e23b599210da08fefed1f1d5981"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:2e84dee31c3cb7dda4cded047f8b2080378da5c13e8682e45852be5e34b647ed"}, + {file = "pyobjc_framework_automaticassessmentconfiguration-12.1.tar.gz", hash = "sha256:2b732c02d9097682ca16e48f5d3b10056b740bc091e217ee4d5715194c8970b1"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-automator" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Automator on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_automator-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:569f9fedcd107721c59eccce89c5befe429baace59616f9f1ceeb9689a65f273"}, - {file = "pyobjc_framework_automator-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bf675a19edd97de9c19dcfd0fea9af9ebbd3409786c162670d1d71cb2738e341"}, - {file = "pyobjc_framework_automator-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:af5941f8d90167244209b352512b7779e5590d17dc1e703e087a6cfe79ee3d64"}, - {file = "pyobjc_framework_automator-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3458f836671ea922ad0771f617c927e9c52841c0a6e71b4a5a9dbb438736c207"}, - {file = "pyobjc_framework_automator-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:203b888152a78b39a8c67be663ff78a749ebff208ce993b4419fc4409faa1fda"}, - {file = "pyobjc_framework_automator-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:651760236cb2d2481faa5afb66da97054850d34fdbebc5e4ee2f83a683a8be10"}, - {file = "pyobjc_framework_automator-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:112815d2e1b6002b4f9bc644bdae6b02257d249145c79346d7b8bb11e6f76b03"}, - {file = "pyobjc_framework_automator-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31f4ae025179afa2fc89731904607966f4a37cda4aa9f684e5646a6b25915466"}, - {file = "pyobjc_framework_automator-11.1.tar.gz", hash = "sha256:9b46c55a4f9ae2b3c39ff560f42ced66bdd18c093188f0b5fc4060ad911838e4"}, + {file = "pyobjc_framework_automator-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fa9189b481db4429e3aea6b567b0888f8c6f6ba388064be2ce6f287e19cea096"}, + {file = "pyobjc_framework_automator-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f3d96da10d28c5c197193a9d805a13157b1cb694b6c535983f8572f5f8746ea"}, + {file = "pyobjc_framework_automator-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4df9aec77f0fbca66cd3534d1b8398fe6f3e3c2748c0fc12fec2546c7f2e3ffd"}, + {file = "pyobjc_framework_automator-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cdda7b8c48c0f8e15cbb97600ac848fd76cf9837ca3353286a7c02281e9c17a3"}, + {file = "pyobjc_framework_automator-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e9962ea45875fda6a648449015ccc26cc1229fdbd0166556a7271c60ba6d9011"}, + {file = "pyobjc_framework_automator-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fb6a177cac056f2ecacaae1d4815f4e10529025cb13184fdee297989b55846f7"}, + {file = "pyobjc_framework_automator-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:275ed04d339c5a5849a4be8ef82c2035be07ab92ccbf69007f544bcfabe060ad"}, + {file = "pyobjc_framework_automator-12.1.tar.gz", hash = "sha256:7491a99347bb30da3a3f744052a03434ee29bee3e2ae520576f7e796740e4ba7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-avfoundation" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AVFoundation on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"11.0\"" files = [ - {file = "pyobjc_framework_avfoundation-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:09542590d1f3aa96d4d1a37712b98fd9657e250d9ea06ecdf2a8a59c837a2cb6"}, - {file = "pyobjc_framework_avfoundation-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8a0ccbdba46b69dec1d12eea52eef56fcd63c492f73e41011bb72508b2aa2d0e"}, - {file = "pyobjc_framework_avfoundation-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:94f065db4e87b1baebb5cf9f464cf9d82c5f903fff192001ebc974d9e3132c7e"}, - {file = "pyobjc_framework_avfoundation-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e204d155a09c186601490e4402dcffb2845a5831079e389b47bd6a341fe5ee63"}, - {file = "pyobjc_framework_avfoundation-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dd3965aad0b236b8ac12f216d688c1a22b963f63e7e4fdb7107dd6790e80ee12"}, - {file = "pyobjc_framework_avfoundation-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:1ab2108b652496b13b9758c295f0f6de53b6d12125cf574ddae84ce28044bce1"}, - {file = "pyobjc_framework_avfoundation-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:5dd6ac6a57f86b7ed5ac0a965ce54328f6ce77816b4a1fbf0d85c06fb251867a"}, - {file = "pyobjc_framework_avfoundation-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:54e1a65ad908d2dc69ea9d644f02893e397f750194c457479caa9487acf08fbb"}, - {file = "pyobjc_framework_avfoundation-11.1.tar.gz", hash = "sha256:6663056cc6ca49af8de6d36a7fff498f51e1a9a7f1bde7afba718a8ceaaa7377"}, + {file = "pyobjc_framework_avfoundation-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:370d5f1149c1041028cb1f5fb61b9f56655fe53bbffafc79393b0824a474bef0"}, + {file = "pyobjc_framework_avfoundation-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82cc2c2d9ab6cc04feeb4700ff251d00f1fcafff573c63d4e87168ff80adb926"}, + {file = "pyobjc_framework_avfoundation-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bf634f89265b4d93126153200d885b6de4859ed6b3bc65e69ff75540bc398406"}, + {file = "pyobjc_framework_avfoundation-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f8ac7f7e0884ac8f12009cdb9d4fefc2f269294ab2ccfd84520a560859b69cec"}, + {file = "pyobjc_framework_avfoundation-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:51aba2c6816badfb1fb5a2de1b68b33a23f065bf9e3b99d46ede0c8c774ac7a4"}, + {file = "pyobjc_framework_avfoundation-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9a3ffd1ae90bd72dbcf2875aa9254369e805b904140362a7338ebf1af54201a6"}, + {file = "pyobjc_framework_avfoundation-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:394c99876b9a38db4851ddf8146db363556895c12e9c711ccd3c3f907ac8e273"}, + {file = "pyobjc_framework_avfoundation-12.1.tar.gz", hash = "sha256:eda0bb60be380f9ba2344600c4231dd58a3efafa99fdc65d3673ecfbb83f6fcb"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreAudio = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreAudio = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-avkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AVKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_avkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e211c8dce60b7dd7ad2994ad404041a50e183a039b253f891dbb8cab48f5e687"}, - {file = "pyobjc_framework_avkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:88f70e2a399e43ce7bc3124b3b35d65537daddb358ea542fbb0146fa6406be8a"}, - {file = "pyobjc_framework_avkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ef9cd9fe37c6199bfde7ee5cd6e76ede23a6797932882785c53ef3070e209afb"}, - {file = "pyobjc_framework_avkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c5810b349745078ef8b4a562e85afe40de3245127f633d8cabe98aeca765c7fc"}, - {file = "pyobjc_framework_avkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:023b1cdb78c3aa5873d8abe69697396872b47278208991ec5e5aea4464309b01"}, - {file = "pyobjc_framework_avkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a6b418603fc270a8e63c2a5efffa753704fd14bf8bca0657901c49a7cc9b22b5"}, - {file = "pyobjc_framework_avkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3a5f22bc4f4b0b82c8039d37996882bf4a38f509963d1afa3275a45ddd4a0b00"}, - {file = "pyobjc_framework_avkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:047cca5eb98002f8178b9dfe0671b6dbad504117972b120e5d6d30038eccbf4e"}, - {file = "pyobjc_framework_avkit-11.1.tar.gz", hash = "sha256:d948204a7b94e0e878b19a909f9b33342e19d9ea519571d66a21fce8f72e3263"}, + {file = "pyobjc_framework_avkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec696a9ba354cdf4271d0076ed2daf7e4779ce809a7dc3d6c9cff4e14c88c1b0"}, + {file = "pyobjc_framework_avkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:78bd31a8aed48644e5407b444dec8b1e15ff77af765607b52edf88b8f1213ac7"}, + {file = "pyobjc_framework_avkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eef2c0a51465de025a4509db05ef18ca2b678bb00ee0a8fbad7fd470edfd58f9"}, + {file = "pyobjc_framework_avkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c0241548fc7ca3fcd335da05c3dd15d7314fe58debd792317a725d8ae9cf90fa"}, + {file = "pyobjc_framework_avkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:869fd54ccdac097abe36d7d4ef8945c80b9c886d881173f590b382f6c743ff12"}, + {file = "pyobjc_framework_avkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f49ee90e4f8737ae5dea7579016cdf344b64092810bf5b5acf0cb9c1c6a0d328"}, + {file = "pyobjc_framework_avkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:19d46d8da214d8fad03f0a8edd384762dea55933c0c094425a34ac6e53eacb71"}, + {file = "pyobjc_framework_avkit-12.1.tar.gz", hash = "sha256:a5c0ddb0cb700f9b09c8afeca2c58952d554139e9bb078236d2355b1fddfb588"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-avrouting" -version = "11.1" +version = "12.1" description = "Wrappers for the framework AVRouting on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_avrouting-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:230daf3e5135f6ad0ab0acd6cf3a01a4b0d6b07eb82d63d6e8037479b6cac4ea"}, - {file = "pyobjc_framework_avrouting-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45cbabbf69764b2467d78adb8f3b7f209d1a8ee690e19f9a32d05c62a9c3a131"}, - {file = "pyobjc_framework_avrouting-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc309e175abf3961f933f8b341c0504b17f4717931242ebb121a83256b8b5c13"}, - {file = "pyobjc_framework_avrouting-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f52f9d62a3c8485b5687187ea58d905d7edccac9941c444b4add8129841cd031"}, - {file = "pyobjc_framework_avrouting-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a7b335161d327792f42054acb3ff415f7778e1492582df8e91b8609b4b02244"}, - {file = "pyobjc_framework_avrouting-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:120c9d65d4f9047b9921f8dced0b4f26d799156bc08ff7e3974217cd036b1bfc"}, - {file = "pyobjc_framework_avrouting-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:9aa9b0a7ae7ee5874e7d92bebefca4525d5cf1f0aa1f50e78e558984a39cad2e"}, - {file = "pyobjc_framework_avrouting-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:815cdda6f6700291fa600ca8194e945c0bb13035f506f3bda94e1657af16b6d9"}, - {file = "pyobjc_framework_avrouting-11.1.tar.gz", hash = "sha256:7db1291d9f53cc58d34b2a826feb721a85f50ceb5e71952e8762baacd3db3fc0"}, + {file = "pyobjc_framework_avrouting-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9724fcd834a8ee206df25139c3033bd508a4a830ac6d91dd7c611a03085386"}, + {file = "pyobjc_framework_avrouting-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a79f05fb66e337cabc19a9d949c8b29a5145c879f42e29ba02b601b7700d1bb"}, + {file = "pyobjc_framework_avrouting-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c0fb0d3d260527320377a70c87688ca5e4a208b09fddcae2b4257d7fe9b1e18"}, + {file = "pyobjc_framework_avrouting-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:18c62af1ce9ac99b04c36f66959ca64530d51b62aa0e6f00400dea600112e370"}, + {file = "pyobjc_framework_avrouting-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e5a1d2e4e431aae815e38b75dbe644aa1fd495f8ec1e2194fc175132d7cfc1d3"}, + {file = "pyobjc_framework_avrouting-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:defaad8e98793dfaceb7e36eba3da9bf92d0840207d39e39b018ce6eb41d80f8"}, + {file = "pyobjc_framework_avrouting-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c5f80ba96f5f874193fc0d9656aa6b4ed0df43c7c88ecfbf6cd4760d75776157"}, + {file = "pyobjc_framework_avrouting-12.1.tar.gz", hash = "sha256:6a6c5e583d14f6501df530a9d0559a32269a821fc8140e3646015f097155cd1c"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-backgroundassets" -version = "11.1" +version = "12.1" description = "Wrappers for the framework BackgroundAssets on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_backgroundassets-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:30b4fe4b711e1dacf48074f10b8cad680b4e2c422652ae3c32b1f89bb5bac54e"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bd371ce08d1b79f540d5994139898097b83b1d4e4471c264892433d448b24de0"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:13bf451c59b409b6ce1ac0e717a970a1b03bca7a944a7f19219da0d46ab7c561"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:708466d847a479e1798f31c59fbc5307473d03fa1083f40cfcaa18fd31819c40"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2484a2f9c87e8cae2fc375a39d68ea7ff02e4fb786e4afe88237c51fd5e78ec9"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a72536ed18cf2462085bbb2184d0a3eecf9b97669c0ef4db45418555a609b534"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:a4db45048d1021900be5b03136b927773820bcbb40d623aeac54712e1c86d6f6"}, - {file = "pyobjc_framework_backgroundassets-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:aab88a14ce12c80718c894c1cc1b6ee64611a2047a7a990ad01fb29f462ad121"}, - {file = "pyobjc_framework_backgroundassets-11.1.tar.gz", hash = "sha256:2e14b50539d96d5fca70c49f21b69fdbad81a22549e3630f5e4f20d5c0204fc2"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5af9d7db623e14876e3cbb79cd4234558162dad307fd341d141089652bb94bed"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17de7990b5ea8047d447339f9e9e6f54b954ffc06647c830932a1688c4743fea"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2c11cb98650c1a4bc68eeb4b040541ba96613434c5957e98e9bb363413b23c91"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a089a71b2db471f5af703e35f7a61060164d61eb60a3f482076826dfa5697c7c"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e8c560f1aaa7a4bf6e336806749ce0a20f2a792ab924d9424714e299a59b3edf"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:57d77b1babd450b18e32e852a47dd1095329323e1bed9f258b46c43e20e6d0fc"}, + {file = "pyobjc_framework_backgroundassets-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:acaa091ff12acb24536745803af95e10d535b22e2e123fd2dd5920f3d47338ee"}, + {file = "pyobjc_framework_backgroundassets-12.1.tar.gz", hash = "sha256:8da34df9ae4519c360c429415477fdaf3fbba5addbc647b3340b8783454eb419"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-browserenginekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework BrowserEngineKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"23.4\"" files = [ - {file = "pyobjc_framework_browserenginekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cbfb0183378a0dc836bcdf3798c358c6d217aeaac726e1d44be7cc123994c0fa"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29b5f5949170af0235485e79aa465a7af2b2e0913d0c2c9ab1ac033224a90edb"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9b815b167533015d62832b956e9cfb962bd2026f5a4ccd66718cf3bb2e15ab27"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dfe469f8eb1313ea0cbe0616cd3bbc56f62bdd8a683c959819ef01d7e9ac0de7"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f3332ffa9ae74cc6633fd17f6d998ac77b8939abbe9ecf95ae56df200ee93853"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:c3195c4fb3b84150fac6dd18ce318eaae17f246f98678825397ed80d6da3c371"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1f4cce594a94d0bc0a020122153f8149c16578fa4761b0e27d868c013f76214c"}, - {file = "pyobjc_framework_browserenginekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:15d1668b97346dfa9a8215e3f8a2aa09cab01526825983cd6045df50f553ec6b"}, - {file = "pyobjc_framework_browserenginekit-11.1.tar.gz", hash = "sha256:918440cefb10480024f645169de3733e30ede65e41267fa12c7b90c264a0a479"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8161ac3a9e19b794d47c0022cd2b956818956bda355e4897a687850faf6ab380"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:41229c766fb3e5bba2de5e580776388297303b4d63d3065fef3f67b77ec46c3f"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d15766bb841b081447015c9626e2a766febfe651f487893d29c5d72bef976b94"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1aa2da131bbdf81748894c18d253cd2711dc535f1711263c6c604e20cdc094a6"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:657d78bb5c1a51097560cb3219692321640d0d5c8e57e9160765e1ecfb3fe7ef"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ad7896751accf7a6f866e64e8155f97b6cf0fc0e6efd64e9940346d8fbf0ec66"}, + {file = "pyobjc_framework_browserenginekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c52a3b0000e67fbaa51eef0b455d90b1140e3f6a0014945227cedf242fa57dcc"}, + {file = "pyobjc_framework_browserenginekit-12.1.tar.gz", hash = "sha256:6a1a34a155778ab55ab5f463e885f2a3b4680231264e1fe078e62ddeccce49ed"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreAudio = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreAudio = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-businesschat" -version = "11.1" +version = "12.1" description = "Wrappers for the framework BusinessChat on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_businesschat-11.1-py2.py3-none-any.whl", hash = "sha256:7fdc1219b988ce3ae896bffd01f547c06cec3b4e4b2d0aa04d251444d7f1c2db"}, - {file = "pyobjc_framework_businesschat-11.1.tar.gz", hash = "sha256:69589d2f0cb4e7892e5ecc6aed79b1abd1ec55c099a7faacae6a326bc921259d"}, + {file = "pyobjc_framework_businesschat-12.1-py2.py3-none-any.whl", hash = "sha256:f66ce741507b324de3c301d72ba0cfa6aaf7093d7235972332807645c118cc29"}, + {file = "pyobjc_framework_businesschat-12.1.tar.gz", hash = "sha256:f6fa3a8369a1a51363e1757530128741d9d09ed90692a1d6777a4c0fbad25868"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-calendarstore" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CalendarStore on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_calendarstore-11.1-py2.py3-none-any.whl", hash = "sha256:bf066e17392c978becf17a61863eb81727bf593a2bfdab261177126072557e24"}, - {file = "pyobjc_framework_calendarstore-11.1.tar.gz", hash = "sha256:858ee00e6a380d9c086c2d7db82c116a6c406234038e0ec8fc2ad02e385dc437"}, + {file = "pyobjc_framework_calendarstore-12.1-py2.py3-none-any.whl", hash = "sha256:18533e0fcbcdd29ee5884dfbd30606710f65df9b688bf47daee1438ee22e50cc"}, + {file = "pyobjc_framework_calendarstore-12.1.tar.gz", hash = "sha256:f9a798d560a3c99ad4c0d2af68767bc5695d8b1aabef04d8377861cd1d6d1670"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-callkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CallKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_callkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:afa1520c462b571458d0d6139681820b4abd41d7dbd7d4892fb2617dd9037846"}, - {file = "pyobjc_framework_callkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1db8b74abd6489d73c8619972730bea87a7d1f55d47649150fc1a30fdc6840fb"}, - {file = "pyobjc_framework_callkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:554e09ca3dab44d93a89927d9e300f004d2ef0db020b10425a4622b432e7b684"}, - {file = "pyobjc_framework_callkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fc5e638ddbc9dd3e9993205d2b077f5db41b6cd4e97b9c5592b7249575f23f04"}, - {file = "pyobjc_framework_callkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bc1d2349dab93f7a0d298b01893828d7f46aded9122a341469b835d977a0646d"}, - {file = "pyobjc_framework_callkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:b69b4262897f2701348ea0da36afe32d60f84e2a036baf13e258a97875b25a6c"}, - {file = "pyobjc_framework_callkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:8266ee797fdabb657f7cb4fa808404fc33fcf3f31d4bcab1ab3c53d272e1ff83"}, - {file = "pyobjc_framework_callkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:69928680d7fe500f2240be78e51e3581a775e028b538b74fc2e8563932656687"}, - {file = "pyobjc_framework_callkit-11.1.tar.gz", hash = "sha256:b84d5ea38dff0cbe0754f5f9f6f33c742e216f12e7166179a8ec2cf4b0bfca94"}, + {file = "pyobjc_framework_callkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:57e8c04d8e4f9358d0fe1f14862caf9aa74ae5ba90c8cae1751798a24b459166"}, + {file = "pyobjc_framework_callkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e73beae08e6a32bcced8d5bdb45b52d6a0866dd1485eaaddba6063f17d41fcb0"}, + {file = "pyobjc_framework_callkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:12adc0ace464a057f8908187698e1d417c6c53619797a69d096f4329bffb1089"}, + {file = "pyobjc_framework_callkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b8909402f8690ea2fe8fa7c0256b5c491435f20881832808b86433f526ff28f8"}, + {file = "pyobjc_framework_callkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9ec6635b6a6fecde6e5252ceff76c71d699ed8e0f3ebc6fd220a351dc653040b"}, + {file = "pyobjc_framework_callkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2438a252ff428bca1c1d1db2fca921d2cc572ee5c582f000a713fb61b29324f"}, + {file = "pyobjc_framework_callkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b6a1767e7391652ef75eb46d12d49f31f591063da45357aad2c4e0d40f8fe702"}, + {file = "pyobjc_framework_callkit-12.1.tar.gz", hash = "sha256:fd6dc9688b785aab360139d683be56f0844bf68bf5e45d0eb770cb68221083cc"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-carbon" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Carbon on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_carbon-11.1-py2.py3-none-any.whl", hash = "sha256:1bf66853e939315ad7ee968170b16dd12cb838c42b80dfcd5354687760998825"}, - {file = "pyobjc_framework_carbon-11.1.tar.gz", hash = "sha256:047f098535479efa3ab89da1ebdf3cf9ec0b439a33a4f32806193886e9fcea71"}, + {file = "pyobjc_framework_carbon-12.1-py2.py3-none-any.whl", hash = "sha256:f8b719b3c7c5cf1d61ac7c45a8a70b5e5e5a83fa02f5194c2a48a7e81a3d1b7f"}, + {file = "pyobjc_framework_carbon-12.1.tar.gz", hash = "sha256:57a72807db252d5746caccc46da4bd20ff8ea9e82109af9f72735579645ff4f0"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-cfnetwork" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CFNetwork on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_cfnetwork-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8cf313e3ac580ee0d3c2345771e6cafc4ba95a10418e3e535feeda4c62b68295"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7a24746d0754b3a0042def2cd64aa205e5614f12ea0de9461c8e26d97633c72"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:70beb8095df76e0e8eb7ab218be1e69ae180e01a4d77f7cad73c97b4eb7a296a"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dd866fcbe6870931373636d19144544344f0f89685f6720e4a45453957702dd"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:62ccc6dcaaa5877534d21f93a15861a3d8af95888123d659f9ff5383d1a2a1f4"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:4b998daa3e6ce253c48455365f004647b3b1da2f313fbc8a5a607e460b4d5567"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2e9a4ce6b416bff881df499d9060c1096220ef8c20e519108a7b91692d1fd1d7"}, - {file = "pyobjc_framework_cfnetwork-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:67390b4866cd1671ebc6a45fb38df28158b28ce1ce927d43cda3d2f4de6ef8d6"}, - {file = "pyobjc_framework_cfnetwork-11.1.tar.gz", hash = "sha256:ad600163eeadb7bf71abc51a9b6f2b5462a018d3f9bb1510c5ce3fdf2f22959d"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d54206b13f44f2503db53efbdb76d892c719959fb620266875d9934ceb586f2d"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bf93c0f3d262f629e72f8dd43384d0930ed8e610b3fc5ff555c0c1a1e05334a"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:92760da248c757085fc39bce4388a0f6f0b67540e51edf60a92ad60ca907d071"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:86cc3f650d3169cd8ce4a1438219aa750accac0efc29539920ab0a7e75e25ab4"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5ff3e246e5186b9bad23b2e4e856ca87eaa9329f5904643c5484510059a07e24"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b94c190bdfdf0c8f3f6f7bf8e19ccc2847ecb67adab0068f8d12a25ab7df3c1a"}, + {file = "pyobjc_framework_cfnetwork-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8c5313e146d436de05afae2ab203cfa1966f56d34661939629e2b932efd8da1a"}, + {file = "pyobjc_framework_cfnetwork-12.1.tar.gz", hash = "sha256:2d16e820f2d43522c793f55833fda89888139d7a84ca5758548ba1f3a325a88d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-cinematic" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Cinematic on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"23.0\"" files = [ - {file = "pyobjc_framework_cinematic-11.1-py2.py3-none-any.whl", hash = "sha256:b62c024c1a9c7890481bc2fdfaf0cd3c251a4a08357d57dc1795d98920fcdbd1"}, - {file = "pyobjc_framework_cinematic-11.1.tar.gz", hash = "sha256:efde39a6a2379e1738dbc5434b2470cd187cf3114ffb81390b3b1abda470b382"}, + {file = "pyobjc_framework_cinematic-12.1-py2.py3-none-any.whl", hash = "sha256:c003543bb6908379680a93dfd77a44228686b86c118cf3bc930f60241d0cd141"}, + {file = "pyobjc_framework_cinematic-12.1.tar.gz", hash = "sha256:795068c30447548c0e8614e9c432d4b288b13d5614622ef2f9e3246132329b06"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-AVFoundation = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" -pyobjc-framework-Metal = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-AVFoundation = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" +pyobjc-framework-Metal = ">=12.1" [[package]] name = "pyobjc-framework-classkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ClassKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_classkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1cb2a2b68fb4c773e9ff250f2ab87c41b7464778d4c7e0174600de3cf5f7b52e"}, - {file = "pyobjc_framework_classkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:018da363d06f3615c07a8623cbdb024a31b1f8b96a933ff2656c0e903063842c"}, - {file = "pyobjc_framework_classkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:161dcb9b718649e6331a5eab5a76c2b43a9b322b15b37b3f8f9c5faad12ee6d1"}, - {file = "pyobjc_framework_classkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:08000deb43004d16fb39ccd83b3de30e1e3b72639a79d05206d7d5c15f005b3a"}, - {file = "pyobjc_framework_classkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ef28d042964b0f757569e72df737bb049b531c33b7d06a705ce2dcfa4e6e45d8"}, - {file = "pyobjc_framework_classkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:be279d91f10d68ad9a256e96d26d8975e35b9b1bb304c82491766d29ad252b0d"}, - {file = "pyobjc_framework_classkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:9a1b9d31f9b23e05b92769bbdb4ef2167a59b3b24aefa6af86448f5087a2e105"}, - {file = "pyobjc_framework_classkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b582955866fa1d272cadbaac0f5ce01149b40b3bc529dfa7416fd01265a9afa4"}, - {file = "pyobjc_framework_classkit-11.1.tar.gz", hash = "sha256:ee1e26395eb00b3ed5442e3234cdbfe925d2413185af38eca0477d7166651df4"}, + {file = "pyobjc_framework_classkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7fbca9dbd9485ec21c3bc64f0e27ce1037095db71bd16718f883b6f22ab0f9a0"}, + {file = "pyobjc_framework_classkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bd90aacc68eff3412204a9040fa81eb18348cbd88ed56d33558349f3e51bff52"}, + {file = "pyobjc_framework_classkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c027a3cd9be5fee3f605589118b8b278297c384a271f224c1a98b224e0c087e6"}, + {file = "pyobjc_framework_classkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0ac959a4e91a40865f12f041c083fa8862672f13e596c983f2b99afc8c67bc4e"}, + {file = "pyobjc_framework_classkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:61fdac9e3bad384b47725587b77f932dbed71d0ae63b749eddfa390791eed4a2"}, + {file = "pyobjc_framework_classkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5d0a5cd026c51a22d13eb75404f8317089aabb3faef723aeafc4ca9a0c17e66e"}, + {file = "pyobjc_framework_classkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c95cd6a4f598e877197a93cc202d40d0d830bf09be5a2b15942e5a1b03e29cd4"}, + {file = "pyobjc_framework_classkit-12.1.tar.gz", hash = "sha256:8d1e9dd75c3d14938ff533d88b72bca2d34918e4461f418ea323bfb2498473b4"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-cloudkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CloudKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_cloudkit-11.1-py2.py3-none-any.whl", hash = "sha256:c583e40c710cf85ebe34173d1d2995e832a20127edc8899b2f35b13f98498af1"}, - {file = "pyobjc_framework_cloudkit-11.1.tar.gz", hash = "sha256:40d2dc4bf28c5be9b836b01e4d267a15d847d756c2a65530e1fcd79b2825e86d"}, + {file = "pyobjc_framework_cloudkit-12.1-py2.py3-none-any.whl", hash = "sha256:875e37bf1a2ce3d05c2492692650104f2d908b56b71a0aedf6620bc517c6c9ca"}, + {file = "pyobjc_framework_cloudkit-12.1.tar.gz", hash = "sha256:1dddd38e60863f88adb3d1d37d3b4ccb9cbff48c4ef02ab50e36fa40c2379d2f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Accounts = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreData = ">=11.1" -pyobjc-framework-CoreLocation = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Accounts = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreData = ">=12.1" +pyobjc-framework-CoreLocation = ">=12.1" [[package]] name = "pyobjc-framework-cocoa" -version = "11.1" +version = "12.1" description = "Wrappers for the Cocoa frameworks on macOS" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\"" files = [ - {file = "pyobjc_framework_cocoa-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b27a5bdb3ab6cdeb998443ff3fce194ffae5f518c6a079b832dbafc4426937f9"}, - {file = "pyobjc_framework_cocoa-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7b9a9b8ba07f5bf84866399e3de2aa311ed1c34d5d2788a995bdbe82cc36cfa0"}, - {file = "pyobjc_framework_cocoa-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806de56f06dfba8f301a244cce289d54877c36b4b19818e3b53150eb7c2424d0"}, - {file = "pyobjc_framework_cocoa-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:54e93e1d9b0fc41c032582a6f0834befe1d418d73893968f3f450281b11603da"}, - {file = "pyobjc_framework_cocoa-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fd5245ee1997d93e78b72703be1289d75d88ff6490af94462b564892e9266350"}, - {file = "pyobjc_framework_cocoa-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:aede53a1afc5433e1e7d66568cc52acceeb171b0a6005407a42e8e82580b4fc0"}, - {file = "pyobjc_framework_cocoa-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1b5de4e1757bb65689d6dc1f8d8717de9ec8587eb0c4831c134f13aba29f9b71"}, - {file = "pyobjc_framework_cocoa-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bbee71eeb93b1b31ffbac8560b59a0524a8a4b90846a260d2c4f2188f3d4c721"}, - {file = "pyobjc_framework_cocoa-11.1.tar.gz", hash = "sha256:87df76b9b73e7ca699a828ff112564b59251bb9bbe72e610e670a4dc9940d038"}, + {file = "pyobjc_framework_cocoa-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9b880d3bdcd102809d704b6d8e14e31611443aa892d9f60e8491e457182fdd48"}, + {file = "pyobjc_framework_cocoa-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f52228bcf38da64b77328787967d464e28b981492b33a7675585141e1b0a01e6"}, + {file = "pyobjc_framework_cocoa-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:547c182837214b7ec4796dac5aee3aa25abc665757b75d7f44f83c994bcb0858"}, + {file = "pyobjc_framework_cocoa-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5a3dcd491cacc2f5a197142b3c556d8aafa3963011110102a093349017705118"}, + {file = "pyobjc_framework_cocoa-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:914b74328c22d8ca261d78c23ef2befc29776e0b85555973927b338c5734ca44"}, + {file = "pyobjc_framework_cocoa-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:03342a60fc0015bcdf9b93ac0b4f457d3938e9ef761b28df9564c91a14f0129a"}, + {file = "pyobjc_framework_cocoa-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6ba1dc1bfa4da42d04e93d2363491275fb2e2be5c20790e561c8a9e09b8cf2cc"}, + {file = "pyobjc_framework_cocoa-12.1.tar.gz", hash = "sha256:5556c87db95711b985d5efdaaf01c917ddd41d148b1e52a0c66b1a2e2c5c1640"}, ] [package.dependencies] -pyobjc-core = ">=11.1" +pyobjc-core = ">=12.1" [[package]] name = "pyobjc-framework-collaboration" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Collaboration on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_collaboration-11.1-py2.py3-none-any.whl", hash = "sha256:3629ea5b56c513fb330d43952afabb2df2a2ac2f9048b8ec6e8ab4486191390a"}, - {file = "pyobjc_framework_collaboration-11.1.tar.gz", hash = "sha256:4564e3931bfc51773623d4f57f2431b58a39b75cb964ae5c48d27ee4dde2f4ea"}, + {file = "pyobjc_framework_collaboration-12.1-py2.py3-none-any.whl", hash = "sha256:182d6e6080833b97f9bef61738ae7bacb509714538f0d7281e5f0814c804b315"}, + {file = "pyobjc_framework_collaboration-12.1.tar.gz", hash = "sha256:2afa264d3233fc0a03a56789c6fefe655ffd81a2da4ba1dc79ea0c45931ad47b"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-colorsync" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ColorSync on Mac OS X" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_colorsync-11.1-py2.py3-none-any.whl", hash = "sha256:d19d6da2c7175a3896a63c9b40a8ab98ade0779a5b40062789681501c33efd5c"}, - {file = "pyobjc_framework_colorsync-11.1.tar.gz", hash = "sha256:7a346f71f34b2ccd1b020a34c219b85bf8b6f6e05283d503185aeb7767a269dd"}, + {file = "pyobjc_framework_colorsync-12.1-py2.py3-none-any.whl", hash = "sha256:41e08d5b9a7af4b380c9adab24c7ff59dfd607b3073ae466693a3e791d8ffdc9"}, + {file = "pyobjc_framework_colorsync-12.1.tar.gz", hash = "sha256:d69dab7df01245a8c1bd536b9231c97993a5d1a2765d77692ce40ebbe6c1b8e9"}, +] + +[package.dependencies] +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" + +[[package]] +name = "pyobjc-framework-compositorservices" +version = "12.1" +description = "Wrappers for the framework CompositorServices on macOS" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"25.0\"" +files = [ + {file = "pyobjc_framework_compositorservices-12.1-py2.py3-none-any.whl", hash = "sha256:9ef22d4eacd492e13099b9b8936db892cdbbef1e3d23c3484e0ed749f83c4984"}, + {file = "pyobjc_framework_compositorservices-12.1.tar.gz", hash = "sha256:028e357bbee7fbd3723339a321bbe14e6da5a772708a661a13eea5f17c89e4ab"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Metal = ">=12.1" [[package]] name = "pyobjc-framework-contacts" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Contacts on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_contacts-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:01a83ac9e03cab16ee7eb8755c87ce1790c8465487a07994da5569d843facc05"}, - {file = "pyobjc_framework_contacts-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:68148653f27c1eaeff2ad4831b5e68393071a382aab773629cd047ce55556726"}, - {file = "pyobjc_framework_contacts-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:576ee4aec05d755444bff10b45833f73083b5b3d1b2740e133b92111f7765e54"}, - {file = "pyobjc_framework_contacts-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:09b873d2bd739fea63d744430defb04ce4b44af064aaf0b6bf558eea23f82bd7"}, - {file = "pyobjc_framework_contacts-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:23312bb4bfc5aafecdac84ca402189e312e754e9dc0586d8f282d225c3952c00"}, - {file = "pyobjc_framework_contacts-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3409aba6e23cb179b3fe932c1a0a53d7b273ac8292d5adf1bf6849e925cc0955"}, - {file = "pyobjc_framework_contacts-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:910f40a2e4d80a97f282bfdecba0f5ff95201b11844acd3f9cb9522db364ab57"}, - {file = "pyobjc_framework_contacts-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:42d035887b2e4c52088ae09424aef13bde6658f6d3c39190d62030f9ab05d758"}, - {file = "pyobjc_framework_contacts-11.1.tar.gz", hash = "sha256:752036e7d8952a4122296d7772f274170a5f35a53ee6454a27f3e1d9603222cc"}, + {file = "pyobjc_framework_contacts-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b570807aaead01b51c25cb425526f4ac3527eec25fa8672fd450a1b558c037"}, + {file = "pyobjc_framework_contacts-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8ab86070895a005239256d207e18209b1a79d35335b6604db160e8375a7165e6"}, + {file = "pyobjc_framework_contacts-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2e5ce33b686eb9c0a39351938a756442ea8dea88f6ae2f16bff5494a8569c687"}, + {file = "pyobjc_framework_contacts-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:62d985098aa86a86d23bff408aac47389680da4edc61f6acf10b2197efcbd0e0"}, + {file = "pyobjc_framework_contacts-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ab1d78f363dfede16bd5d951327332564bae86f68834d1e657dd18fe4dc12082"}, + {file = "pyobjc_framework_contacts-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:65576c359eb31c5a5ef95e0c6714686a94bb154a508d791885ff7c33dbc8afa3"}, + {file = "pyobjc_framework_contacts-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fac7feca7428047abf3f094fab678c4d0413296f34c30085119850509bc2905"}, + {file = "pyobjc_framework_contacts-12.1.tar.gz", hash = "sha256:89bca3c5cf31404b714abaa1673577e1aaad6f2ef49d4141c6dbcc0643a789ad"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-contactsui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ContactsUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_contactsui-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf3468444ba88dd6814e02ffa624d13b7857a7baf042462452bb292337c013da"}, - {file = "pyobjc_framework_contactsui-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1c0f03c71e63daf5dbf760bf0e45620618a6f1ea62f8c17e288463c1fd4d2685"}, - {file = "pyobjc_framework_contactsui-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c34a6f27ef5aa4742cc44fd5b4d16fe1e1745ff839578b4c059faf2c58eee3ca"}, - {file = "pyobjc_framework_contactsui-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f3b4f0225645a26ed9e6c008c2e8c217035b4a50fa9cd6623c628a11c37924d0"}, - {file = "pyobjc_framework_contactsui-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:666586174b306b33b791d2edee021cd979a8c970d444f906ed294e27583a6b54"}, - {file = "pyobjc_framework_contactsui-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:7901eed3c669ad52cca86089c443fd30820b21586bf758e03fb83696f435ba87"}, - {file = "pyobjc_framework_contactsui-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:8b03bd175095b4774c55bd5f38a01942e945b668bea15b9dc3b4f1a28b1a8696"}, - {file = "pyobjc_framework_contactsui-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d4fd93409c0773d0fe6670ebc1c1c27169ecae4004518c59c4c4cba098d7626"}, - {file = "pyobjc_framework_contactsui-11.1.tar.gz", hash = "sha256:5bc29ea2b10a342018e1b96be6b140c10ebe3cfb6417278770feef5e88026a1f"}, + {file = "pyobjc_framework_contactsui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9aedac00f41c1fae02befc70263f22f74518cc392fe19b66cc325d8f95e78b2c"}, + {file = "pyobjc_framework_contactsui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:10e7ce3b105795919605be89ebeecffd656e82dbf1bafa5db6d51d6def2265ee"}, + {file = "pyobjc_framework_contactsui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:057f40d2f6eb1b169a300675ec75cc7a747cddcbcee8ece133e652a7086c5ab5"}, + {file = "pyobjc_framework_contactsui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ee2eccb633bc772ecb49dba7199546154efc2db5727992229cdf84b3f6ac84f"}, + {file = "pyobjc_framework_contactsui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c9d64bbc4cfae0f082627b57f7e29e71b924af970f344b106b17fb68e13f7da0"}, + {file = "pyobjc_framework_contactsui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:eb06b422ce8d422dce2c9af49a2bd093f78761e5aa3f1c866582a4c60cf31f79"}, + {file = "pyobjc_framework_contactsui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1bbb9bee9535505398771886ac43399400ffc9a84836e845e6d9708ac88e2d5d"}, + {file = "pyobjc_framework_contactsui-12.1.tar.gz", hash = "sha256:aaeca7c9e0c9c4e224d73636f9a558f9368c2c7422155a41fd4d7a13613a77c1"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Contacts = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Contacts = ">=12.1" [[package]] name = "pyobjc-framework-coreaudio" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreAudio on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coreaudio-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:551c8aac6fdfbd34c3e2d4ce90b36a411e81be20581b978fa4da1a495489792d"}, - {file = "pyobjc_framework_coreaudio-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:73a46f0db2fa8ca2e8c47c3ddcc2751e67a0f8600246a6718553b15ee0dbbdb6"}, - {file = "pyobjc_framework_coreaudio-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2538d1242dab4e27efb346eafbad50594e7e95597fa7220f0bab2099c825da55"}, - {file = "pyobjc_framework_coreaudio-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f73d996df1e721931d9f78050e1708735a173dbe3a76d9c71fb36e04f7208478"}, - {file = "pyobjc_framework_coreaudio-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:67dae111b78d91c26c753dbfbccc3ea5498cfda3dfe83c6f3778628b435e1e7b"}, - {file = "pyobjc_framework_coreaudio-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:9527a16a2b88b37bace578d499f21229f9a33b9afdcdd35d4f44374cb8eb9ab6"}, - {file = "pyobjc_framework_coreaudio-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:6ba8b67f185c0e3f26b17ae525cee3f411bc8d6e9c9a8bfd899a28f594623d2f"}, - {file = "pyobjc_framework_coreaudio-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:65b9275cb00dfa75560cb20adcdc52025b875d8ed98b94c8c937f3526cfb0386"}, - {file = "pyobjc_framework_coreaudio-11.1.tar.gz", hash = "sha256:b7b89540ae7efc6c1e3208ac838ef2acfc4d2c506dd629d91f6b3b3120e55c1b"}, + {file = "pyobjc_framework_coreaudio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d676c85bb9dc51217d94adc3b5b60e7e5b59a81167446f06821b2687d92641d3"}, + {file = "pyobjc_framework_coreaudio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a452de6b509fa4a20160c0410b72330ac871696cd80237883955a5b3a4de8f2a"}, + {file = "pyobjc_framework_coreaudio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a5ad6309779663f846ab36fe6c49647e470b7e08473c3e48b4f004017bdb68a4"}, + {file = "pyobjc_framework_coreaudio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3d8ef424850c8ae2146f963afaec6c4f5bf0c2e412871e68fb6ecfb209b8376f"}, + {file = "pyobjc_framework_coreaudio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6552624df39dbc68ff9328f244ba56f59234ecbde8455db1e617a71bc4f3dd3a"}, + {file = "pyobjc_framework_coreaudio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:78ea67483a5deb21625c189328152008d278fe1da4304da9fcc1babd12627038"}, + {file = "pyobjc_framework_coreaudio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8d81b0d0296ab4571a4ff302e5cdb52386e486eb8749e99b95b9141438558ca2"}, + {file = "pyobjc_framework_coreaudio-12.1.tar.gz", hash = "sha256:a9e72925fcc1795430496ce0bffd4ddaa92c22460a10308a7283ade830089fe1"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coreaudiokit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreAudioKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coreaudiokit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3be9e254d607324cfc059e3f11fe528fc95d59bb72e585d4bb4ecf92ef493000"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4743fbd210159cffffb0a7b8e06bf8b8527ba4bf01e76806fae2696fd6990e77"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:20440a2926b1d91da8efc8bc060e77c7a195cb0443dbf3770eaca9e597276748"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:11d42770dfbc6a8af8d5fa39a4f700f0067d7e6c7ba9335e6624d89de3c599a9"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6fea7c7ea5305e8cbd75808ec4edcde8e2320137f227b3d771266dd9a71e1fa5"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a71447196a48869b551a2e3b6ba92f39241cb64d0257120505c62ddb611aef0f"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:8d012561eb95877f0214aa0cd13043b1a2693add4a9534d1e6fb82f6d7183c7c"}, - {file = "pyobjc_framework_coreaudiokit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:be1053734771dfe0eafd2b944b899003957d75074efc8652c306dda0fdf9cd95"}, - {file = "pyobjc_framework_coreaudiokit-11.1.tar.gz", hash = "sha256:0b461c3d6123fda4da6b6aaa022efc918c1de2e126a5cf07d2189d63fa54ba40"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7b7230cf4f34f2e35fc40928fa723c43193c359b21b690485001ca3616829b6c"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e1144c272f8d6429a34a6757700048f4631eb067c4b08d4768ddc28c371a7014"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:97d5dd857e73d5b597cfc980972b021314b760e2f5bdde7bbba0334fbf404722"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dc1589cda7a4ae0560bf73e1a0623bb710de09ef030d585035f8a428a3e8d6a1"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6ec70b69d21925e02602cc22c5e0132daedc15ce65b7e3cc863fdb5f13cc23e3"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a2f9839a4bd05db2e7d12659af4cab32ec17dfee89fff83bbe9faee558e77a08"}, + {file = "pyobjc_framework_coreaudiokit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0bf793729bf95bb2c667eba315ba4a6ab359f930efd1a5ea686392478abb687f"}, + {file = "pyobjc_framework_coreaudiokit-12.1.tar.gz", hash = "sha256:b83624f8de3068ab2ca279f786be0804da5cf904ff9979d96007b69ef4869e1e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreAudio = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreAudio = ">=12.1" [[package]] name = "pyobjc-framework-corebluetooth" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreBluetooth on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_corebluetooth-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ab509994503a5f0ec0f446a7ccc9f9a672d5a427d40dba4563dd00e8e17dfb06"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:433b8593eb1ea8b6262b243ec903e1de4434b768ce103ebe15aac249b890cc2a"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:36bef95a822c68b72f505cf909913affd61a15b56eeaeafea7302d35a82f4f05"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:992404b03033ecf637e9174caed70cb22fd1be2a98c16faa699217678e62a5c7"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ebb8648f5e33d98446eb1d6c4654ba4fcc15d62bfcb47fa3bbd5596f6ecdb37c"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e84cbf52006a93d937b90421ada0bc4a146d6d348eb40ae10d5bd2256cc92206"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:4da1106265d7efd3f726bacdf13ba9528cc380fb534b5af38b22a397e6908291"}, - {file = "pyobjc_framework_corebluetooth-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e9fa3781fea20a31b3bb809deaeeab3bdc7b86602a1fd829f0e86db11d7aa577"}, - {file = "pyobjc_framework_corebluetooth-11.1.tar.gz", hash = "sha256:1deba46e3fcaf5e1c314f4bbafb77d9fe49ec248c493ad00d8aff2df212d6190"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:937849f4d40a33afbcc56cbe90c8d1fbf30fb27a962575b9fb7e8e2c61d3c551"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:37e6456c8a076bd5a2bdd781d0324edd5e7397ef9ac9234a97433b522efb13cf"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe72c9732ee6c5c793b9543f08c1f5bdd98cd95dfc9d96efd5708ec9d6eeb213"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5a894f695e6c672f0260327103a31ad8b98f8d4fb9516a0383db79a82a7e58dc"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1daf07a0047c3ed89fab84ad5f6769537306733b6a6e92e631581a0f419e3f32"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:15ba5207ca626dffe57ccb7c1beaf01f93930159564211cb97d744eaf0d812aa"}, + {file = "pyobjc_framework_corebluetooth-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e5385195bd365a49ce70e2fb29953681eefbe68a7b15ecc2493981d2fb4a02b1"}, + {file = "pyobjc_framework_corebluetooth-12.1.tar.gz", hash = "sha256:8060c1466d90bbb9100741a1091bb79975d9ba43911c9841599879fc45c2bbe0"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coredata" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreData on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coredata-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ceeba4f9d156610f17e643fc8bdf40bd785bda92fad6f4cbf0954894aa4db165"}, - {file = "pyobjc_framework_coredata-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c66ae04cc658eafdfb987f9705e21f9782edee6773a8adb6bfa190500e4e7e29"}, - {file = "pyobjc_framework_coredata-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c9b2374784e67694a18fc8c120a12f11b355a20b643c01f23ae2ce87330a75e0"}, - {file = "pyobjc_framework_coredata-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:007160eb10bb8c789076f231e3d625d8875ca42eb5a806fdab5d0277c48866f8"}, - {file = "pyobjc_framework_coredata-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:699ad568f98f58e88e642159c91ffff0c68ce3d1ec798e4af8333b27431fd058"}, - {file = "pyobjc_framework_coredata-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d84afaccbb4f18dbda4c557cd059b7adc2116436a065353e25e7cbc840d9f8b4"}, - {file = "pyobjc_framework_coredata-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:89dde863eff01ed6b5f8d88c764a08b154ef37078397c98c5f403e8798723b9d"}, - {file = "pyobjc_framework_coredata-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2c361a5a09f6623a0276ad1c19c2952582850b014493c24ed03a32124892e573"}, - {file = "pyobjc_framework_coredata-11.1.tar.gz", hash = "sha256:fe9fd985f8e06c70c0fb1e6bbea5b731461f9e76f8f8d8e89c7c72667cdc6adf"}, + {file = "pyobjc_framework_coredata-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:547115df2391dafe9dbc0ae885a7d87e1c5f1710384effd8638857e5081c75ec"}, + {file = "pyobjc_framework_coredata-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c861dc42b786243cbd96d9ea07d74023787d03637ef69a2f75a1191a2f16d9d6"}, + {file = "pyobjc_framework_coredata-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a3ee3581ca23ead0b152257e98622fe0bf7e7948f30a62a25a17cafe28fe015e"}, + {file = "pyobjc_framework_coredata-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:79f68577a7e96c57559ec844a129a5edce6827cdfafe49bf31524a488d715a37"}, + {file = "pyobjc_framework_coredata-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:279b39bdb2a9c5e4d0377c1e81263b7d137bf2be37e15d6b5b2403598596f0e3"}, + {file = "pyobjc_framework_coredata-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:07d19e7db06e1ad21708cf01fc8014d5f1b73efd373a99af6ff882c1bfb8497b"}, + {file = "pyobjc_framework_coredata-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ac49d45b372f768bd577a26b503dd04e553ffebd3aa96c653b1c88a3f2733552"}, + {file = "pyobjc_framework_coredata-12.1.tar.gz", hash = "sha256:1e47d3c5e51fdc87a90da62b97cae1bc49931a2bb064db1305827028e1fc0ffa"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-corehaptics" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreHaptics on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_corehaptics-11.1-py2.py3-none-any.whl", hash = "sha256:8f8c47ccca5052d07f95d2f35e6e399c5ac1f2072ba9d9eaae902edf4e3a7af4"}, - {file = "pyobjc_framework_corehaptics-11.1.tar.gz", hash = "sha256:e5da3a97ed6aca9b7268c8c5196c0a339773a50baa72d1502d3435dc1a2a80f1"}, + {file = "pyobjc_framework_corehaptics-12.1-py2.py3-none-any.whl", hash = "sha256:a3b07d36ddf5c86a9cdaa411ab53d09553d26ea04fc7d4f82d21a84f0fc05fc0"}, + {file = "pyobjc_framework_corehaptics-12.1.tar.gz", hash = "sha256:521dd2986c8a4266d583dd9ed9ae42053b11ae7d3aa89bf53fbee88307d8db10"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-corelocation" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreLocation on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_corelocation-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:90d7811a2b730f604b0a2ac54c3c822e6e048287e2cd1db80fd3bd1caac6c1c0"}, - {file = "pyobjc_framework_corelocation-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ea261e7d87c6f62f1b03c252c273ea7fd6f314e3e73c69c6fb3fe807bf183462"}, - {file = "pyobjc_framework_corelocation-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:562e31124f80207becfd8df01868f73fa5aa70169cc4460e1209fb16916e4fb4"}, - {file = "pyobjc_framework_corelocation-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0f8182835429118a55ed65963c80f5b2892d190747b986e8395b1cd99f41a1d0"}, - {file = "pyobjc_framework_corelocation-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bc3f27802415aa62330a2d2507adc3a9b98a89d6de7d1033ebe6b8c461610831"}, - {file = "pyobjc_framework_corelocation-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:17ce2530bd5a0dca9059eb11bc647d920490bcdd35b5cac1e160f51f0297bdc8"}, - {file = "pyobjc_framework_corelocation-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:a384d9fcba2c041d8f8115b51a07ef11c391bc30f72560aaea8b94db6b3b225c"}, - {file = "pyobjc_framework_corelocation-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:149d69ee758ac62be8c44fb0ae25ca48c53ec457abcd0e054a4992f1fe98c771"}, - {file = "pyobjc_framework_corelocation-11.1.tar.gz", hash = "sha256:46a67b99925ee3d53914331759c6ee110b31bb790b74b05915acfca41074c206"}, + {file = "pyobjc_framework_corelocation-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:833678750636976833d905a1575896167841394b77936074774b8921c94653e5"}, + {file = "pyobjc_framework_corelocation-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ffc96b9ba504b35fe3e0fcfb0153e68fdfca6fe71663d240829ceab2d7122588"}, + {file = "pyobjc_framework_corelocation-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8c35ad29a062fea7d417fd8997a9309660ba7963f2847c004e670efbe6bb5b00"}, + {file = "pyobjc_framework_corelocation-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:616eec0ccfcdcff7696bccf88c1aa39935387e595b22dd4c14842567aa0986a6"}, + {file = "pyobjc_framework_corelocation-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0a80ba8e8d9120eb80486235c483a0c734cb451265e5aa81bcf315f0e644eb00"}, + {file = "pyobjc_framework_corelocation-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3ed12521c457e484944fd91b1d19643d00596d3b0ea3455984c9e918a9c65138"}, + {file = "pyobjc_framework_corelocation-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:43aa6d5c273c5efa0960dbb05ae7165948f12a889cb0fdcba2e0099d98f4c78d"}, + {file = "pyobjc_framework_corelocation-12.1.tar.gz", hash = "sha256:3674e9353f949d91dde6230ad68f6d5748a7f0424751e08a2c09d06050d66231"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coremedia" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreMedia on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"11.0\"" files = [ - {file = "pyobjc_framework_coremedia-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91231957d25b6d191983166cf218189b5a01e267dadde35eb3a4c359dc473ccb"}, - {file = "pyobjc_framework_coremedia-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aacf47006e1c6bf6124fb2b5016a8d5fd5cf504b6b488f9eba4e389ab0f0a051"}, - {file = "pyobjc_framework_coremedia-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ea5055298af91e463ffa7977d573530f9bada57b8f2968dcc76a75e339b9a598"}, - {file = "pyobjc_framework_coremedia-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7ecdb64c743ffe9fd3949c7cc9109891b9f399a0852717fcb969d33c4e7ba527"}, - {file = "pyobjc_framework_coremedia-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:969ce357c616f6835f47e27d1e73964374cdb671476571dfd358894a8ced06f2"}, - {file = "pyobjc_framework_coremedia-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bf1da05c297776c297ab3489ebf18d954efdff530acbdd6e70c32be811e20ec6"}, - {file = "pyobjc_framework_coremedia-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:aa942d9ad0cf5bc4d3ede8779c3fac2f04cf3857687f2fb8505bae3378d04b95"}, - {file = "pyobjc_framework_coremedia-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c91e5084f88f5716ad3d390af29ad52b8497a73df91dc6d05ebaa293ce3634cc"}, - {file = "pyobjc_framework_coremedia-11.1.tar.gz", hash = "sha256:82cdc087f61e21b761e677ea618a575d4c0dbe00e98230bf9cea540cff931db3"}, + {file = "pyobjc_framework_coremedia-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4fce8570db3eaa7b841456a7890b24546504d1059157dc33e700b14d9d3073d8"}, + {file = "pyobjc_framework_coremedia-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ee7b822c9bb674b5b0a70bfb133410acae354e9241b6983f075395f3562f3c46"}, + {file = "pyobjc_framework_coremedia-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:161a627f5c8cd30a5ebb935189f740e21e6cd94871a9afd463efdb5d51e255fa"}, + {file = "pyobjc_framework_coremedia-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:98e885b7a092083fceaef0a7fc406a01ba7bcd3318fb927e59e055931c99cac8"}, + {file = "pyobjc_framework_coremedia-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d2b84149c1b3e65ec9050a3e5b617e6c0b4cdad2ab622c2d8c5747a20f013e16"}, + {file = "pyobjc_framework_coremedia-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:737ec6e0b63414f42f7188030c85975d6d2124fbf6b15b52c99b6cc20250af4d"}, + {file = "pyobjc_framework_coremedia-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6a9419e0d143df16a1562520a13a389417386e2a53031530af6da60c34058ced"}, + {file = "pyobjc_framework_coremedia-12.1.tar.gz", hash = "sha256:166c66a9c01e7a70103f3ca44c571431d124b9070612ef63a1511a4e6d9d84a7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coremediaio" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreMediaIO on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"11.0\"" files = [ - {file = "pyobjc_framework_coremediaio-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:49120679162416ad5a4cf67b49830cf3d38b60bd94496e2a4cad3895496b558d"}, - {file = "pyobjc_framework_coremediaio-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4438713ee4611d5310f4f2e71e557b6138bc79c0363e3d45ecb8c09227dfa58e"}, - {file = "pyobjc_framework_coremediaio-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:39ad2518de9943c474e5ca0037e78f92423c3352deeee6c513a489016dac1266"}, - {file = "pyobjc_framework_coremediaio-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9e0a079fe790ce8a69d11bea46b315c9a0d3f3999a2f09e2ef4fcc4430a47c42"}, - {file = "pyobjc_framework_coremediaio-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a94f9e507b470ce7dcb887e79ccf19e98693a606ad34462d711004e3edd88c3"}, - {file = "pyobjc_framework_coremediaio-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:0a7ffded00a7dc6f0bf4a44a6832f0150d45a83886486148b71ccc67c70ef215"}, - {file = "pyobjc_framework_coremediaio-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:5ff161025ef28d5e2eed90db0e8b828cb361281b799b16b1885711ca0addc1aa"}, - {file = "pyobjc_framework_coremediaio-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9499831def7220cd69db7c0009e64c8f5c39f8cbed761f98cf27da57461d923"}, - {file = "pyobjc_framework_coremediaio-11.1.tar.gz", hash = "sha256:bccd69712578b177144ded398f4695d71a765ef61204da51a21f0c90b4ad4c64"}, + {file = "pyobjc_framework_coremediaio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1a471e82fddeaa8a172d96dd897c3489f0a0ad8d5e5d2b46ae690e273c254cd0"}, + {file = "pyobjc_framework_coremediaio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3da79c5b9785c5ccc1f5982de61d4d0f1ba29717909eb6720734076ccdc0633c"}, + {file = "pyobjc_framework_coremediaio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1108f8a278928fbca465f95123ea4a56456bd6571c1dc8b91793e6c61d624517"}, + {file = "pyobjc_framework_coremediaio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:85ae768294ec307d5b502c075aeae1c53a731afc2f7f0307c9bef785775e26a6"}, + {file = "pyobjc_framework_coremediaio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6136a600a1435b9e798427984088a7bd5e68778e1bcf48a23a0eb9bc946a06f0"}, + {file = "pyobjc_framework_coremediaio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a5ca5763f185f48fedafec82f794dca53c55d2e52058d1b11baa43dd4ab0cd16"}, + {file = "pyobjc_framework_coremediaio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8aaeb44fdf9382dda30ff5f53ba6e291c1b514b7ab651f7b31d7fb4c27bfd309"}, + {file = "pyobjc_framework_coremediaio-12.1.tar.gz", hash = "sha256:880b313b28f00b27775d630174d09e0b53d1cdbadb74216618c9dd5b3eb6806a"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coremidi" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreMIDI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coremidi-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5dbd846a2c3f23795a49f363c1e22f0dd4d91ac675f9d52fb5ba93a2bd212d1f"}, - {file = "pyobjc_framework_coremidi-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5f8c2fdc9d1b7967e2a5ec0d5281eaddc00477bed9753aa14d5b881dc3a9ad8f"}, - {file = "pyobjc_framework_coremidi-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:deb9120478a831a898f22f68737fc683bb9b937e77556e78b75986aebd349c55"}, - {file = "pyobjc_framework_coremidi-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c2e1ab122501206ceae07123fdc433e91a5f1a97224f80ece0717b6f36ad2029"}, - {file = "pyobjc_framework_coremidi-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3462a158214adb7ebc785fb6924e674c58dcd471888dbca5e2e77381f3f1bbdc"}, - {file = "pyobjc_framework_coremidi-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:f4b70864cae295f27b5d51817c0768fade7c1335a59410910146e5f2a54c475c"}, - {file = "pyobjc_framework_coremidi-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2ef1a10f6230fce82b931670470158404657d9fb9ac558a77b46b547e9978524"}, - {file = "pyobjc_framework_coremidi-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6d3d6ff84e41416e7ebc1c4bf1ffcafd5e9931985e45e84818bbb52b51f9629e"}, - {file = "pyobjc_framework_coremidi-11.1.tar.gz", hash = "sha256:095030c59d50c23aa53608777102bc88744ff8b10dfb57afe24b428dcd12e376"}, + {file = "pyobjc_framework_coremidi-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bcbe70bdd5f79999d028aee7a8b34e72ff955547c7d277357c4d67afd8a23024"}, + {file = "pyobjc_framework_coremidi-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:af3cdf195e8d5e30d1203889cc4107bebc6eb901aaa81bf3faf15e9ffaca0735"}, + {file = "pyobjc_framework_coremidi-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e84ffc1de59691c04201b0872e184fe55b5589f3a14876bd14460f3b5f3cd109"}, + {file = "pyobjc_framework_coremidi-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:69720f38cfeea4299f31cb3e15d07e5d43e55127605f95e001794c7850c1c637"}, + {file = "pyobjc_framework_coremidi-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:06e5bce0a28bac21f09bcfedda46d93b2152c138764380314d99f2370a8c00f2"}, + {file = "pyobjc_framework_coremidi-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b49442cf533923952f56049be407edbe2ab2ece04ae1c94ca1e28d500f9f5754"}, + {file = "pyobjc_framework_coremidi-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:194bc4da148ace8b71117c227562cad39a2708d296f569839f56d83e8801b25b"}, + {file = "pyobjc_framework_coremidi-12.1.tar.gz", hash = "sha256:3c6f1fd03997c3b0f20ab8545126b1ce5f0cddcc1587dffacad876c161da8c54"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coreml" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreML on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_coreml-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b1b1b849ca91e0d62ed6dfd200d95ca8d023d6edff854aae77ba54eb0542415f"}, - {file = "pyobjc_framework_coreml-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b5be7889ad99da1aca040238fd99af9ee87ea8a6628f24d33e2e4890b88dd139"}, - {file = "pyobjc_framework_coreml-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c768b03d72488b964d753392e9c587684961d8237b69cca848b3a5a00aea79c9"}, - {file = "pyobjc_framework_coreml-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:10d51f8a5fe8d30c7ec70304a2324df76b48b9fbef30ee0f0c33b99a49ae8853"}, - {file = "pyobjc_framework_coreml-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4df25ee233430f016ffcb4e88506b54c8e7b668c93197e6a1341761530a5922c"}, - {file = "pyobjc_framework_coreml-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:287a2a059016d02d8c40e0d29e70226142a4969db97ad79cefc70ec9bf0ab29e"}, - {file = "pyobjc_framework_coreml-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:a479c3d759aff3695f72c7915a78df6e92e0eca7027abaa8b4a07e876ba1dbfb"}, - {file = "pyobjc_framework_coreml-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25e6e2185aefc46eb2a796eee6f4bef1cba3206f914b85ac659699468e9dc9a8"}, - {file = "pyobjc_framework_coreml-11.1.tar.gz", hash = "sha256:775923eefb9eac2e389c0821b10564372de8057cea89f1ea1cdaf04996c970a7"}, + {file = "pyobjc_framework_coreml-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df4e9b4f97063148cc481f72e2fbe3cc53b9464d722752aa658d7c0aec9f02fd"}, + {file = "pyobjc_framework_coreml-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:16dafcfb123f022e62f47a590a7eccf7d0cb5957a77fd5f062b5ee751cb5a423"}, + {file = "pyobjc_framework_coreml-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:10dc8e8db53d7631ebc712cad146e3a9a9a443f4e1a037e844149a24c3c42669"}, + {file = "pyobjc_framework_coreml-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:48fa3bb4a03fa23e0e36c93936dca2969598e4102f4b441e1663f535fc99cd31"}, + {file = "pyobjc_framework_coreml-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:71de5b37e6a017e3ed16645c5d6533138f24708da5b56c35c818ae49d0253ee1"}, + {file = "pyobjc_framework_coreml-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a04a96e512ecf6999aa9e1f60ad5635cb9d1cd839be470341d8d1541797baef6"}, + {file = "pyobjc_framework_coreml-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7762b3dd2de01565b7cf3049ce1e4c27341ba179d97016b0b7607448e1c39865"}, + {file = "pyobjc_framework_coreml-12.1.tar.gz", hash = "sha256:0d1a4216891a18775c9e0170d908714c18e4f53f9dc79fb0f5263b2aa81609ba"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coremotion" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreMotion on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_coremotion-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:87e642511279c080dd9d0c7b0af3903191a6400a6c3a3caeb54233cb642a6966"}, - {file = "pyobjc_framework_coremotion-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:501248a726816e05552d1c1f7e2be2c7305cda792c46905d9aee7079dfad2eea"}, - {file = "pyobjc_framework_coremotion-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8c3b33228a170bf8495508a8923451ec600435c7bff93d7614f19c913baeafd1"}, - {file = "pyobjc_framework_coremotion-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ac5302deaab99a7443cad63f125061a90040852d4f8efb58492542a612b2afe3"}, - {file = "pyobjc_framework_coremotion-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d67413a56989154dab7bf1b69c14b0b2387d87d3a4c8e3c8a9fc0230f061e8ab"}, - {file = "pyobjc_framework_coremotion-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:42fb307b86999d078503ff79bdf8df4d1c27d38763db6b1c5c0f4054241f67a3"}, - {file = "pyobjc_framework_coremotion-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:708431c53f483bc6da199375227ffea1b4e8e7d8c81d162492db3fc36893fb53"}, - {file = "pyobjc_framework_coremotion-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6665a5cfce8c12c06cdaacce2c2d781b7b5b831c004a6f39bf893d22001f366e"}, - {file = "pyobjc_framework_coremotion-11.1.tar.gz", hash = "sha256:5884a568521c0836fac39d46683a4dea3d259a23837920897042ffb922d9ac3e"}, + {file = "pyobjc_framework_coremotion-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0da3c3e82744cf555537d65ad796e9ad2687d26aeb458078c74896496538eace"}, + {file = "pyobjc_framework_coremotion-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed8cb67927985d97b1dd23ab6a4a1b716fc7c409c35349816108781efdcbb5b6"}, + {file = "pyobjc_framework_coremotion-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a77908ab83c422030f913a2a761d196359ab47f6d1e7c76f21de2c6c05ea2f5f"}, + {file = "pyobjc_framework_coremotion-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b7b0d47b5889ca0b6e3a687bd1f83a13d3bb59c07a1c4c37dcca380ede5d6e81"}, + {file = "pyobjc_framework_coremotion-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:531ea82945266d78e23d1f35de0cae2391e18677ed54120b90a4b9dd19f32596"}, + {file = "pyobjc_framework_coremotion-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e7ce95dfa7e33b5762e0a800d76ef9c6a34b827c700d7e80c3740b7cd05168a5"}, + {file = "pyobjc_framework_coremotion-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d0aedcf8157c1428c7d2df8edae159b9de226d4df719c5bac8a96b648950b63e"}, + {file = "pyobjc_framework_coremotion-12.1.tar.gz", hash = "sha256:8e1b094d34084cc8cf07bedc0630b4ee7f32b0215011f79c9e3cd09d205a27c7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coreservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coreservices-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96578c31035fed361d030b0168ae5fc593aa26aa78f6c9946b8da6007e46e08e"}, - {file = "pyobjc_framework_coreservices-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f7260e09a0550d57756ad655f3d3815f21fc3f0386aed014be4b46194c346941"}, - {file = "pyobjc_framework_coreservices-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6bd313ec326efd715b4b10c3ebcc9f054e3ee3178be407b97ea225cd871351d2"}, - {file = "pyobjc_framework_coreservices-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8aee505dca56afc5363d8d0dff0b2d26583a8d0f3ac37674cef86f66c51a2934"}, - {file = "pyobjc_framework_coreservices-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4ffa188322ab9d05c6964926959dedba5cc04534232f1eff03aee5f09faa499e"}, - {file = "pyobjc_framework_coreservices-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:21e9e86192d719cd5c899cc0e931110733da0b5bbbf606681e5fccd4dd39c174"}, - {file = "pyobjc_framework_coreservices-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:74dcc295245f07754328bada9577b189e3abef71607d013e939751c1b5b55729"}, - {file = "pyobjc_framework_coreservices-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9738f624954a483d2380584a96034fc0a979136bfdedfb9f95d095c7033f2e9a"}, - {file = "pyobjc_framework_coreservices-11.1.tar.gz", hash = "sha256:cf8eb5e272c60a96d025313eca26ff2487dcd02c47034cc9db39f6852d077873"}, + {file = "pyobjc_framework_coreservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:38856a89ccab766a03270c415a6bf5ea0f87134134fe4c122af9894d50162d77"}, + {file = "pyobjc_framework_coreservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b6ef07bcf99e941395491f1efcf46e99e5fb83eb6bfa12ae5371135d83f731e1"}, + {file = "pyobjc_framework_coreservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8751dc2edcb7cfa248bf8a274c4d6493e8d53ef28a843827a4fc9a0a8b04b8be"}, + {file = "pyobjc_framework_coreservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:96574fb24d2b8b507901ef7be7fcb70b7f49e110bd050a411b90874cc18c7c7b"}, + {file = "pyobjc_framework_coreservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:227fb4144a87c6c97a5f737fb0c666293b33e54f0ffb500f2c420da6c110ba2d"}, + {file = "pyobjc_framework_coreservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c650e1083fb313b9c8df4be8d582c266aa1b99c75ed5d7e45e3a91a7b8a128b2"}, + {file = "pyobjc_framework_coreservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:dff0cb6ccbd39ea45b01a50955d757172567de5c164f6e8e241bf4e7639b0946"}, + {file = "pyobjc_framework_coreservices-12.1.tar.gz", hash = "sha256:fc6a9f18fc6da64c166fe95f2defeb7ac8a9836b3b03bb6a891d36035260dbaa"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-FSEvents = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-FSEvents = ">=12.1" [[package]] name = "pyobjc-framework-corespotlight" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreSpotlight on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_corespotlight-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b2d3ddabf74ef04933eb28b1a1c5ed93748b31e64b9c29d5eb88fafab5605c87"}, - {file = "pyobjc_framework_corespotlight-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d3c571289ce9107f1ade92ad036633f81355f22f70e8ba82d7335f1757381b89"}, - {file = "pyobjc_framework_corespotlight-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7cedd3792fe1fe2a8dc65a8ff1f70baf12415a5dc9dc4d88f987059567d7e694"}, - {file = "pyobjc_framework_corespotlight-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:546d0d9b101de4ca20449f3807d1f88e5c26de0345a8bfefc70f12f87efb8433"}, - {file = "pyobjc_framework_corespotlight-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f562cc65865066f8e2e5d96c868fd7f463d8280f1ef01df85250fc1150feed0e"}, - {file = "pyobjc_framework_corespotlight-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bce3d84f97014228b244c734aea3ec03b257573b22c097dff4eb176a80cd29a9"}, - {file = "pyobjc_framework_corespotlight-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f59d0d2f0411db102d16490e47b457b994c613f1b980869fa3a151863da7aa4c"}, - {file = "pyobjc_framework_corespotlight-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9c5f8848cd69091fa88fae575a00c3fa6159f6022b4aabc5356595aa16ef2fa0"}, - {file = "pyobjc_framework_corespotlight-11.1.tar.gz", hash = "sha256:4dd363c8d3ff7619659b63dd31400f135b03e32435b5d151459ecdacea14e0f2"}, + {file = "pyobjc_framework_corespotlight-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9299ebabe2031433c384aec52074c52f6258435152d3bdbbed0ed68e37ad1f45"}, + {file = "pyobjc_framework_corespotlight-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:404a1e362fe19f0dff477edc1665d8ad90aada928246802da777399f7c06b22e"}, + {file = "pyobjc_framework_corespotlight-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bfcea64ab3250e2886d202b8731be3817b5ac0c8c9f43e77d0d5a0b6602e71a7"}, + {file = "pyobjc_framework_corespotlight-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:37003bfea415ff21859d44403c3a13ac55f90b6dca92c69b81b61d96cee0c7be"}, + {file = "pyobjc_framework_corespotlight-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ede26027cfa577e6748b7dd0615e8a1bb379e48ad2324489b2c8d242cdf6fce8"}, + {file = "pyobjc_framework_corespotlight-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:986ac40755e15aa3a562aac687b22c882de2b4b0fa58fbd419cc3487a0df1507"}, + {file = "pyobjc_framework_corespotlight-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0041b9a10d7f6c4a8d05f2ed281194a3d8bc5b2d0ceca4f4a9d9a8ce064fd68e"}, + {file = "pyobjc_framework_corespotlight-12.1.tar.gz", hash = "sha256:57add47380cd0bbb9793f50a4a4b435a90d4ebd2a33698e058cb353ddfb0d068"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-coretext" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreText on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_coretext-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:515be6beb48c084ee413c00c4e9fbd6e730c1b8a24270f4c618fc6c7ba0011ce"}, - {file = "pyobjc_framework_coretext-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b4f4d2d2a6331fa64465247358d7aafce98e4fb654b99301a490627a073d021e"}, - {file = "pyobjc_framework_coretext-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1597bf7234270ee1b9963bf112e9061050d5fb8e1384b3f50c11bde2fe2b1570"}, - {file = "pyobjc_framework_coretext-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:37e051e8f12a0f47a81b8efc8c902156eb5bc3d8123c43e5bd4cebd24c222228"}, - {file = "pyobjc_framework_coretext-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:56a3a02202e0d50be3c43e781c00f9f1859ab9b73a8342ff56260b908e911e37"}, - {file = "pyobjc_framework_coretext-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:15650ba99692d00953e91e53118c11636056a22c90d472020f7ba31500577bf5"}, - {file = "pyobjc_framework_coretext-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:fb27f66a56660c31bb956191d64b85b95bac99cfb833f6e99622ca0ac4b3ba12"}, - {file = "pyobjc_framework_coretext-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7fee99a1ac96e3f70d482731bc39a546da82a58f87fa9f0e2b784a5febaff33d"}, - {file = "pyobjc_framework_coretext-11.1.tar.gz", hash = "sha256:a29bbd5d85c77f46a8ee81d381b847244c88a3a5a96ac22f509027ceceaffaf6"}, + {file = "pyobjc_framework_coretext-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1c8315dcef6699c2953461d97117fe81402f7c29cff36d2950dacce028a362fd"}, + {file = "pyobjc_framework_coretext-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f6742ba5b0bb7629c345e99eff928fbfd9e9d3d667421ac1a2a43bdb7ba9833"}, + {file = "pyobjc_framework_coretext-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d246fa654bdbf43bae3969887d58f0b336c29b795ad55a54eb76397d0e62b93c"}, + {file = "pyobjc_framework_coretext-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7cbb2c28580e6704ce10b9a991ccd9563a22b3a75f67c36cf612544bd8b21b5f"}, + {file = "pyobjc_framework_coretext-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:14100d1e39efb30f57869671fb6fce8d668f80c82e25e7930fb364866e5c0dab"}, + {file = "pyobjc_framework_coretext-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:782a1a9617ea267c05226e9cd81a8dec529969a607fe1e037541ee1feb9524e9"}, + {file = "pyobjc_framework_coretext-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:7afe379c5a870fa3e66e6f65231c3c1732d9ccd2cd2a4904b2cd5178c9e3c562"}, + {file = "pyobjc_framework_coretext-12.1.tar.gz", hash = "sha256:e0adb717738fae395dc645c9e8a10bb5f6a4277e73cba8fa2a57f3b518e71da5"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-corewlan" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CoreWLAN on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_corewlan-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a30698aea3a2c5130f4ff309bda45029f66ef76574d3cefce6159e9a5cc6bdd"}, - {file = "pyobjc_framework_corewlan-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e12f127b37a7ab8f349167332633392f2d6d29b87c9b98137a289d0fc1e07b5b"}, - {file = "pyobjc_framework_corewlan-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7bd0775d2466ad500aad4747d8a889993db3a14240239f30ef53c087745e9c8e"}, - {file = "pyobjc_framework_corewlan-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3c66643a97fcf3aa797fda997a3afc28d8d9bba9727dd5c0e68a313899d780f7"}, - {file = "pyobjc_framework_corewlan-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6dc28264b56b18096c8869cce3f85e519fd27936f19524bb77458572ccfd7518"}, - {file = "pyobjc_framework_corewlan-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:872de75409a710bb9a461e64e97185f8489d01898ec1b02c3e058c04606b61cf"}, - {file = "pyobjc_framework_corewlan-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:14c7af9135ba0a920192af4dc50219bbf6185fcbb5de7041f097e1a1c8509587"}, - {file = "pyobjc_framework_corewlan-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c5e00a907c7b92daff716c35f4958083495327f7d6bc1f061339499114999ebf"}, - {file = "pyobjc_framework_corewlan-11.1.tar.gz", hash = "sha256:4a8afea75393cc0a6fe696e136233aa0ed54266f35a47b55a3583f4cb078e6ce"}, + {file = "pyobjc_framework_corewlan-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:440db62f4ecc0c3b636fa06928d51f147b58c4cb000c0ba2dfc820ad484c2358"}, + {file = "pyobjc_framework_corewlan-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3e3f2614eb37dfd6860d6a0683877c2f3b909758ef78b68e5f6b7ea9c858cc51"}, + {file = "pyobjc_framework_corewlan-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5cba04c0550fc777767cd3a5471e4ed837406ab182d7d5c273bc5ce6ea237bfe"}, + {file = "pyobjc_framework_corewlan-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aac949646953effdd36d2d21bc0ab645e58bb25deafe86c6e600b3cdcfc2228b"}, + {file = "pyobjc_framework_corewlan-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dae63c36affcc933c9161980e4fe7333e0c59c968174a00a75cb5f6e4ede10c6"}, + {file = "pyobjc_framework_corewlan-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:336536ecfd503118f79c8337cc983bbf0768e3ba4ac142e0cf8db1408c644965"}, + {file = "pyobjc_framework_corewlan-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fe6373e83e12be6854f7c1f054e2f68b41847fd739aa578d3c5478bd3fd4014f"}, + {file = "pyobjc_framework_corewlan-12.1.tar.gz", hash = "sha256:a9d82ec71ef61f37e1d611caf51a4203f3dbd8caf827e98128a1afaa0fd2feb5"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-cryptotokenkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework CryptoTokenKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_cryptotokenkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d53ef13571afab5b2df5b2c118c3f296abae095abe6f0c9ebd105bab31527369"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b76fb928bc398091141dc52b26e02511065afd0b6de5533fa0e71ab13c51589"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6384cb1d86fc586e2da934a5a37900825bd789e3a5df97517691de9af354af0c"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a55c0e57ab164aa5ce562e4d9e69026339067ecb4888638995690f1c43b79cfa"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cb3e1bd344e794cb98343171b5501a1a3b75548ef5385bda3d5ec613c0b98045"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:faab9493e36095c0257598e25ef81c50bcdb3afb5843a82e6dfad8c7d1f47bcf"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:efd89e5b024475701f6e9bec4cf1c2563e1bab37e79288397e09d9ad4e53d174"}, - {file = "pyobjc_framework_cryptotokenkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4d7d3e54d661527c7a075f38387880cd6ec82288ce1b52f5f197b94a6909d107"}, - {file = "pyobjc_framework_cryptotokenkit-11.1.tar.gz", hash = "sha256:5f82f44d9ab466c715a7c8ad4d5ec47c68aacd78bd67b5466a7b8215a2265328"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cfdefb1d9b1bf2223055378ee84ad40b771b1a0ba02258fbf06be54d6b30a689"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d84b75569054fa0886e3e341c00d7179d5fe287e6d1509630dd698ee60ec5af1"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ef51a86c1d0125fabdfad0b3efa51098fb03660d8dad2787d82e8b71c9f189de"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e65a8e4558e6cf1e46a9b4a52fcbf7b2ddd17958d675e9047d8a9f131d0a4d33"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cc9aa75e418376e92b1540d1edfa0c8097a027a1a241717983d0223cdad8e9ca"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:94fa4b3903a1a39fe1d5874a5ae5b67471f488925c485a7e9c3575fbf9eba43e"}, + {file = "pyobjc_framework_cryptotokenkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:05d40859a40ba4ed3dd8befabefc02aa224336c660b2f33ebf14d5397a30ffb3"}, + {file = "pyobjc_framework_cryptotokenkit-12.1.tar.gz", hash = "sha256:c95116b4b7a41bf5b54aff823a4ef6f4d9da4d0441996d6d2c115026a42d82f5"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-datadetection" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DataDetection on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_datadetection-11.1-py2.py3-none-any.whl", hash = "sha256:5afd3dde7bba3324befb7a3133c9aeaa5088efd72dccc0804267a74799f4a12f"}, - {file = "pyobjc_framework_datadetection-11.1.tar.gz", hash = "sha256:cbe0080b51e09b2f91eaf2a9babec3dcf2883d7966bc0abd8393ef7abfcfc5db"}, + {file = "pyobjc_framework_datadetection-12.1-py2.py3-none-any.whl", hash = "sha256:4dc8e1d386d655b44b2681a4a2341fb2fc9addbf3dda14cb1553cd22be6a5387"}, + {file = "pyobjc_framework_datadetection-12.1.tar.gz", hash = "sha256:95539e46d3bc970ce890aa4a97515db10b2690597c5dd362996794572e5d5de0"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-devicecheck" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DeviceCheck on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_devicecheck-11.1-py2.py3-none-any.whl", hash = "sha256:8edb36329cdd5d55e2c2c57c379cb5ba1f500f74a08fe8d2612b1a69b7a26435"}, - {file = "pyobjc_framework_devicecheck-11.1.tar.gz", hash = "sha256:8b05973eb2673571144d81346336e749a21cec90bd7fcaade76ffd3b147a0741"}, + {file = "pyobjc_framework_devicecheck-12.1-py2.py3-none-any.whl", hash = "sha256:ffd58148bdef4a1ee8548b243861b7d97a686e73808ca0efac5bef3c430e4a15"}, + {file = "pyobjc_framework_devicecheck-12.1.tar.gz", hash = "sha256:567e85fc1f567b3fe64ac1cdc323d989509331f64ee54fbcbde2001aec5adbdb"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-devicediscoveryextension" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DeviceDiscoveryExtension on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"24.0\"" files = [ - {file = "pyobjc_framework_devicediscoveryextension-11.1-py2.py3-none-any.whl", hash = "sha256:96e5b13c718bd0e6c80fbd4e14b8073cffc88b3ab9bb1bbb4dab7893a62e4f11"}, - {file = "pyobjc_framework_devicediscoveryextension-11.1.tar.gz", hash = "sha256:ae160ea40f25d3ee5e7ce80ac9c1b315f94d0a4c7ccb86920396f71c6bf799a0"}, + {file = "pyobjc_framework_devicediscoveryextension-12.1-py2.py3-none-any.whl", hash = "sha256:d6d6b606d27d4d88efc0bed4727c375e749149b360290c3ad2afc52337739a1b"}, + {file = "pyobjc_framework_devicediscoveryextension-12.1.tar.gz", hash = "sha256:60e12445fad97ff1f83472255c943685a8f3a9d95b3126d887cfe769b7261044"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-dictionaryservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DictionaryServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_dictionaryservices-11.1-py2.py3-none-any.whl", hash = "sha256:92f4871066653f18e2394ac93b0a2ab50588d60020f6b3bd93e97b67cd511326"}, - {file = "pyobjc_framework_dictionaryservices-11.1.tar.gz", hash = "sha256:39c24452d0ddd037afeb73a1742614c94535f15b1c024a8a6cc7ff081e1d22e7"}, + {file = "pyobjc_framework_dictionaryservices-12.1-py2.py3-none-any.whl", hash = "sha256:578854eec17fa473ac17ab30050a7bbb2ab69f17c5c49b673695254c3e88ad4b"}, + {file = "pyobjc_framework_dictionaryservices-12.1.tar.gz", hash = "sha256:354158f3c55d66681fa903c7b3cb05a435b717fa78d0cef44d258d61156454a7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-CoreServices = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-CoreServices = ">=12.1" [[package]] name = "pyobjc-framework-discrecording" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DiscRecording on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_discrecording-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9bae2419669ec3aadd3e7bf98dd92c80839242c7af4ab94364f5008cfe8e5603"}, - {file = "pyobjc_framework_discrecording-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dc8a7820fc193c2bfcd843c31de945dc45e77e5413089eabbc72be16a4f52e53"}, - {file = "pyobjc_framework_discrecording-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e29bc8c3741ae52fae092f892de856dbab2363e71537a8ae6fd026ecb88e2252"}, - {file = "pyobjc_framework_discrecording-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2d18158366d124852ad58291954611ebdcc43263a3bb75d7fd273408e67720e2"}, - {file = "pyobjc_framework_discrecording-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b027eca3a0391196d4335fcbd50c03ef1e8f5ce095411ed51a081328b4945bf5"}, - {file = "pyobjc_framework_discrecording-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:9cb36715bebdbbe1ad95e3c17359c2f5d3f6479a26b527ea1032154ca7cf3e09"}, - {file = "pyobjc_framework_discrecording-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:7c33421d6bed0993d9f1861dbf38b717b9a9e49dfb98fdf8b3cd8d558fdd50eb"}, - {file = "pyobjc_framework_discrecording-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f94ca724139d63bb1fb91ad528c5ca903bcec0e4fcfdc5f51959853aad6a8eec"}, - {file = "pyobjc_framework_discrecording-11.1.tar.gz", hash = "sha256:37585458e363b20bb28acdb5cc265dfca934d8a07b7baed2584953c11c927a87"}, + {file = "pyobjc_framework_discrecording-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b940e018b57ce637f5ada4d44ed6775d349dbc4e67c6e563f682fc3277c7affe"}, + {file = "pyobjc_framework_discrecording-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f7d815f28f781e20de0bf278aaa10b0de7e5ea1189aa17676c0bf5b99e9e0d52"}, + {file = "pyobjc_framework_discrecording-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:865f1551e58459da6073360afc8f2cc452472c676ba83dcaa9b0c44e7775e4b5"}, + {file = "pyobjc_framework_discrecording-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c682c458622db9b4ea8363335ee38f5dd98db6691680041a3fda73e26714346"}, + {file = "pyobjc_framework_discrecording-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:36e1ba4d37fe310bad2fbfeadd43c8ef001cfae9a2a0484d7318504c5dbefa3f"}, + {file = "pyobjc_framework_discrecording-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a60e2cab88fdf923f2017effb248f7c32819fbe494a6d17acfa71754b44ff68c"}, + {file = "pyobjc_framework_discrecording-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3345fcb139f1646c2aef41be6344c5b944817ea4df85d7f61db27781a90d77a6"}, + {file = "pyobjc_framework_discrecording-12.1.tar.gz", hash = "sha256:6defc8ea97fb33b4d43870c673710c04c3dc48be30cdf78ba28191a922094990"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-discrecordingui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DiscRecordingUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_discrecordingui-11.1-py2.py3-none-any.whl", hash = "sha256:33233b87d7b85ce277a51d27acca0f5b38485cf1d1dc8e28a065910047766ee2"}, - {file = "pyobjc_framework_discrecordingui-11.1.tar.gz", hash = "sha256:a9f10e2e7ee19582c77f0755ae11a64e3d61c652cbd8a5bf52756f599be24797"}, + {file = "pyobjc_framework_discrecordingui-12.1-py2.py3-none-any.whl", hash = "sha256:6544ef99cad3dee95716c83cb207088768b6ecd3de178f7e1b17df5997689dfd"}, + {file = "pyobjc_framework_discrecordingui-12.1.tar.gz", hash = "sha256:6793d4a1a7f3219d063f39d87f1d4ebbbb3347e35d09194a193cfe16cba718a8"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-DiscRecording = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-DiscRecording = ">=12.1" [[package]] name = "pyobjc-framework-diskarbitration" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DiskArbitration on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_diskarbitration-11.1-py2.py3-none-any.whl", hash = "sha256:6a8e551e54df481a9081abba6fd680f6633babe5c7735f649731b22896bb6f08"}, - {file = "pyobjc_framework_diskarbitration-11.1.tar.gz", hash = "sha256:a933efc6624779a393fafe0313e43378bcae2b85d6d15cff95ac30048c1ef490"}, + {file = "pyobjc_framework_diskarbitration-12.1-py2.py3-none-any.whl", hash = "sha256:54caf3079fe4ae5ac14466a9b68923ee260a1a88a8290686b4a2015ba14c2db6"}, + {file = "pyobjc_framework_diskarbitration-12.1.tar.gz", hash = "sha256:6703bc5a09b38a720c9ffca356b58f7e99fa76fc988c9ec4d87112344e63dfc2"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-dvdplayback" -version = "11.1" +version = "12.1" description = "Wrappers for the framework DVDPlayback on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_dvdplayback-11.1-py2.py3-none-any.whl", hash = "sha256:6094e4651ea29540ac817294b27e1596b9d1883d30e78fb5f9619daf94ed30cb"}, - {file = "pyobjc_framework_dvdplayback-11.1.tar.gz", hash = "sha256:b44c36a62c8479e649133216e22941859407cca5796b5f778815ef9340a838f4"}, + {file = "pyobjc_framework_dvdplayback-12.1-py2.py3-none-any.whl", hash = "sha256:af911cc222272a55b46a1a02a46a355279aecfd8132231d8d1b279e252b8ad4c"}, + {file = "pyobjc_framework_dvdplayback-12.1.tar.gz", hash = "sha256:279345d4b5fb2c47dd8e5c2fd289e644b6648b74f5c25079805eeb61bfc4a9cd"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-eventkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Accounts on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_eventkit-11.1-py2.py3-none-any.whl", hash = "sha256:c303207610d9c742f4090799f60103cede466002f3c89cf66011c8bf1987750b"}, - {file = "pyobjc_framework_eventkit-11.1.tar.gz", hash = "sha256:5643150f584243681099c5e9435efa833a913e93fe9ca81f62007e287349b561"}, + {file = "pyobjc_framework_eventkit-12.1-py2.py3-none-any.whl", hash = "sha256:3d2d36d5bd9e0a13887a6ac7cdd36675985ebe2a9cb3cdf8cec0725670c92c60"}, + {file = "pyobjc_framework_eventkit-12.1.tar.gz", hash = "sha256:7c1882be2f444b1d0f71e9a0cd1e9c04ad98e0261292ab741fc9de0b8bbbbae9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-exceptionhandling" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ExceptionHandling on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_exceptionhandling-11.1-py2.py3-none-any.whl", hash = "sha256:31e6538160dfd7526ac0549bc0fce5d039932aea84c36abbe7b49c79ffc62437"}, - {file = "pyobjc_framework_exceptionhandling-11.1.tar.gz", hash = "sha256:e010f56bf60ab4e9e3225954ebb53e9d7135d37097043ac6dd2a3f35770d4efa"}, + {file = "pyobjc_framework_exceptionhandling-12.1-py2.py3-none-any.whl", hash = "sha256:2f1eae14cf0162e53a0888d9ffe63f047501fe583a23cdc9c966e89f48cf4713"}, + {file = "pyobjc_framework_exceptionhandling-12.1.tar.gz", hash = "sha256:7f0719eeea6695197fce0e7042342daa462683dc466eb6a442aad897032ab00d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-executionpolicy" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ExecutionPolicy on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_executionpolicy-11.1-py2.py3-none-any.whl", hash = "sha256:7d4141e572cb916e73bb34bb74f6f976a8aa0a396a0bffd1cf66e5505f7c76c8"}, - {file = "pyobjc_framework_executionpolicy-11.1.tar.gz", hash = "sha256:3280ad2f4c5eaf45901f310cee0c52db940c0c63e959ad082efb8df41055d986"}, + {file = "pyobjc_framework_executionpolicy-12.1-py2.py3-none-any.whl", hash = "sha256:c3a9eca3bd143cf202787dd5e3f40d954c198f18a5e0b8b3e2fcdd317bf33a52"}, + {file = "pyobjc_framework_executionpolicy-12.1.tar.gz", hash = "sha256:682866589365cd01d3a724d8a2781794b5cba1e152411a58825ea52d7b972941"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-extensionkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ExtensionKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_extensionkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:eb766b18ba23f15eeb1235c2a42f487591ff905644f9f12e44efe987ce3fbd38"}, - {file = "pyobjc_framework_extensionkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fd9f9758f95bcff2bf26fe475f679dfff9457d7130f114089e88fd5009675a"}, - {file = "pyobjc_framework_extensionkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d505a64617c9db4373eb386664d62a82ba9ffc909bffad42cb4da8ca8e244c66"}, - {file = "pyobjc_framework_extensionkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:abbadbea5b18e4a6944c3c428753ee298a133cbf601c70e9586b14e3aebf649b"}, - {file = "pyobjc_framework_extensionkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5c2e203cb8134be1dd7df73d74c630adbaaf43d78eba04be451ea4f8bf582e22"}, - {file = "pyobjc_framework_extensionkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3507f67dd06285c09bbdf5216a1148f5dd3a2f10eee7a9318dd14430bf6e67ee"}, - {file = "pyobjc_framework_extensionkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2767635e57b277e051719fa53c7683396ebdbcf3d40d44c1296758978ca8c92a"}, - {file = "pyobjc_framework_extensionkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a3ac9001319f8276d3dee74816c7db6c0d32dfe2db31ad720051d284bb245dbe"}, - {file = "pyobjc_framework_extensionkit-11.1.tar.gz", hash = "sha256:c114a96f13f586dbbab8b6219a92fa4829896a645c8cd15652a6215bc8ff5409"}, + {file = "pyobjc_framework_extensionkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6764f7477bb0f6407a5217cbfc2da13a71a5d402ac5f005300958886e25fd9b5"}, + {file = "pyobjc_framework_extensionkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9139c064e1c7f21455411848eb39f092af6085a26cad322aa26309260e7929d9"}, + {file = "pyobjc_framework_extensionkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7e01d705c7ac6d080ae34a81db6d9b81875eabefa63fd6eafbfa30f676dd780b"}, + {file = "pyobjc_framework_extensionkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8f2a87bd4fbb8d14900bbe9c979b23b7532b23685c0f5022671b26db4fa3e515"}, + {file = "pyobjc_framework_extensionkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:570e8a89116380a27dd8df7ce28cd5f7296eb785aea4cb7dc6447954005360c2"}, + {file = "pyobjc_framework_extensionkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b002bd4ee7aa951298f8bdd41e2a59d172050975499f94a26caff263b5fadca4"}, + {file = "pyobjc_framework_extensionkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d14ebebffe05d33d189bf2bec5b676721790cf041b7ee628bfd05bcda4c148cc"}, + {file = "pyobjc_framework_extensionkit-12.1.tar.gz", hash = "sha256:773987353e8aba04223dbba3149253db944abfb090c35318b3a770195b75da6d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-externalaccessory" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ExternalAccessory on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_externalaccessory-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a36e2718d364373b10ac7b8151cffe8e3dedfcc72470fe2b6eed4e9c5d954034"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a2b22f72b83721d841e5a3128df29fc41d785597357c6bbce84555a2b51a1e9d"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:00caf75b959db5d14118d78c04085e2148255498839cdee735a0b9f6ef86b6a2"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:50b796a4721db87863a28cd55668cb1547fcc28834afda2032e500cdab5b3d95"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:569124b686569c48e3855fff128f438a2b46af06280eac2a516aaa214ad325de"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:318772e698c6363e8c3c81229d93b639f5066a02a742ba1ab10cfdef3101d88b"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:d259724665617fc4f3e666d353b756a67cabb74e6f9d7b8f6f250a2d4bf05cb7"}, - {file = "pyobjc_framework_externalaccessory-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:939b6d221986da187d588f7340f7468eeca2f60a86a6dd0b2625d58e69537946"}, - {file = "pyobjc_framework_externalaccessory-11.1.tar.gz", hash = "sha256:50887e948b78a1d94646422c243ac2a9e40761675e38b9184487870a31e83371"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ee55a06fe8ef7ff07a435d75544d8c7177e790afaff60b5a55e3ceea1c9f03e7"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:32208e05c9448c8f41b3efdd35dbea4a8b119af190f7a2db0d580be8a5cf962e"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dedbf7a09375ac19668156c1417bd7829565b164a246b714e225b9cbb6a351ad"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:34858f06cd75fe4e358555961a6898eb8778fd2931058fd660fcd5d6cf31b162"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5551915fa82ff1eea8e5810f74c1298e5327aefe4ac90abeb9a7abd69ff33a22"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:22efc5bf68f5f0ef39f4308ef06403c42544f5fc75f6eeb137a87af99357dda1"}, + {file = "pyobjc_framework_externalaccessory-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3a0f21fe660ee89b98d357ce3df9ff546f19161b6f569cc93888e6bcbd1d7f22"}, + {file = "pyobjc_framework_externalaccessory-12.1.tar.gz", hash = "sha256:079f770a115d517a6ab87db1b8a62ca6cdf6c35ae65f45eecc21b491e78776c0"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-fileprovider" -version = "11.1" +version = "12.1" description = "Wrappers for the framework FileProvider on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_fileprovider-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:17e0da2e00900a1b25aca1cdbbda2c8097573ce07d6650d572968dff45c06ca7"}, - {file = "pyobjc_framework_fileprovider-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:888d6fb3fd625889ce0e409320c3379330473a386095cb4eda2b4caf0198ff66"}, - {file = "pyobjc_framework_fileprovider-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ce6092dfe74c78c0b2abc03bfc18a0f5d8ddc624fc6a1d8dfef26d7796653072"}, - {file = "pyobjc_framework_fileprovider-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9af41255df395a40a6e0b08c4410be5463f3ea91d8c9be61f6bd114252490ab2"}, - {file = "pyobjc_framework_fileprovider-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d2720acdd582756ebda34418981e7646b7b85588b0b8fdafba7016eb657be6b8"}, - {file = "pyobjc_framework_fileprovider-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:0e48015bf50b3e56312c640ec6efde73cf3855e29b6d70d173a88957d9d74d27"}, - {file = "pyobjc_framework_fileprovider-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:95ed3a03741076a4479aabb616b1e3ea022025a0ad842147a1200c27709019e2"}, - {file = "pyobjc_framework_fileprovider-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e55b6f15990c5677804a58e412fdfce33e442f14626f80f9fe5d8b2542254a24"}, - {file = "pyobjc_framework_fileprovider-11.1.tar.gz", hash = "sha256:748ca1c75f84afdf5419346a24bf8eec44dca071986f31f00071dc191b3e9ca8"}, + {file = "pyobjc_framework_fileprovider-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6f672069340bd8e994f9ef144949d807485ced5b1b9e21917cc7810e1aa8cda0"}, + {file = "pyobjc_framework_fileprovider-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d527c417f06d27c4908e51d4e6ccce0adcd80c054f19e709626e55c511dc963"}, + {file = "pyobjc_framework_fileprovider-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:89b140ea8369512ddf4164b007cbe35b4d97d1dcb8affa12a7264c0ab8d56e45"}, + {file = "pyobjc_framework_fileprovider-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a1a7a6ac3af1e93d23f5644b4c7140dc7edf5ff79419cc0bd25ce7001afc1cf6"}, + {file = "pyobjc_framework_fileprovider-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6d6744c8c4f915b6193a982365d947b63286cea605f990a2aaa3bb37069471f2"}, + {file = "pyobjc_framework_fileprovider-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:520b8c83b1ce63e0f668ea1683e3843f2e5379c0af76dceb19d5d540d584ff54"}, + {file = "pyobjc_framework_fileprovider-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:de9aaea1308e37f7537dd2a8e89f151d4eaee2b0db5d248dc85cc1fd521adaaa"}, + {file = "pyobjc_framework_fileprovider-12.1.tar.gz", hash = "sha256:45034e0d00ae153c991aa01cb1fd41874650a30093e77ba73401dcce5534c8ad"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-fileproviderui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework FileProviderUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_fileproviderui-11.1-py2.py3-none-any.whl", hash = "sha256:f2765f114c2f4356aa41fb45c621fa8f0a4fae0b6d3c6b1a274366f5fe7fe829"}, - {file = "pyobjc_framework_fileproviderui-11.1.tar.gz", hash = "sha256:162a23e67f59e1bb247e84dda88d513d7944d815144901a46be6fe051b6c7970"}, + {file = "pyobjc_framework_fileproviderui-12.1-py2.py3-none-any.whl", hash = "sha256:521a914055089e28631018bd78df4c4f7416e98b4150f861d4a5bc97d5b1ffe4"}, + {file = "pyobjc_framework_fileproviderui-12.1.tar.gz", hash = "sha256:15296429d9db0955abc3242b2920b7a810509a85118dbc185f3ac8234e5a6165"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-FileProvider = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-FileProvider = ">=12.1" [[package]] name = "pyobjc-framework-findersync" -version = "11.1" +version = "12.1" description = "Wrappers for the framework FinderSync on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_findersync-11.1-py2.py3-none-any.whl", hash = "sha256:c72b0fd8b746b99cfa498da36c5bb333121b2080ad73fa8cbea05cd47db1fa82"}, - {file = "pyobjc_framework_findersync-11.1.tar.gz", hash = "sha256:692364937f418f0e4e4abd395a09a7d4a0cdd55fd4e0184de85ee59642defb6e"}, + {file = "pyobjc_framework_findersync-12.1-py2.py3-none-any.whl", hash = "sha256:e07abeca52c486cf14927f617afc27afa7a3828b99fab3ad02355105fb29203e"}, + {file = "pyobjc_framework_findersync-12.1.tar.gz", hash = "sha256:c513104cef0013c233bf8655b527df665ce6f840c8bc0b3781e996933d4dcfa6"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-fsevents" -version = "11.1" +version = "12.1" description = "Wrappers for the framework FSEvents on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_fsevents-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0f51d55e94fd84bc585a5c4ee63634297e192b256298a1372405649054220d13"}, - {file = "pyobjc_framework_fsevents-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:95cc5d839d298b8e95175fb72df8a8e1b08773fd2e0d031efe91eee23e0c8830"}, - {file = "pyobjc_framework_fsevents-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8b51d120b8f12a1ca94e28cf74113bf2bfd4c5aee7035b452e895518f4df7630"}, - {file = "pyobjc_framework_fsevents-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fad5ada269f137afabd622b5fc04884c668ae1c7914a8791bab73b1d972f7713"}, - {file = "pyobjc_framework_fsevents-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ff064cfa9d9cffb5d4ab476fb5091604568744d961c670aced037b2b6f0d0185"}, - {file = "pyobjc_framework_fsevents-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:9191ee2819f1d5dcae1559e4a66f19be03da3a103bccdc417e6888bcb5659f8f"}, - {file = "pyobjc_framework_fsevents-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3289192f4d60e5b26f8ac88ae4049a11eff47caa6fb76ce34e3f7df405119905"}, - {file = "pyobjc_framework_fsevents-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c71b15d7a9d85b54882f01ebbde7e6a643dbd1537edbb92400b933e848704fc0"}, - {file = "pyobjc_framework_fsevents-11.1.tar.gz", hash = "sha256:d29157d04124503c4dfa9dcbbdc8c34d3bab134d3db3a48d96d93f26bd94c14d"}, + {file = "pyobjc_framework_fsevents-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b3af4e030325672679e3fce55d34fff2a6d9da0cf27810f3cfc0eec0880e45e8"}, + {file = "pyobjc_framework_fsevents-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:459cc0aac9850c489d238ba778379d09f073bbc3626248855e78c4bc4d97fe46"}, + {file = "pyobjc_framework_fsevents-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a2949358513fd7bc622fb362b5c4af4fc24fc6307320070ca410885e5e13d975"}, + {file = "pyobjc_framework_fsevents-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b30c72239a9ced4e4604fcf265a1efee788cb47850982dd80fcbaafa7ee64f9"}, + {file = "pyobjc_framework_fsevents-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:05220368b0685783e0ae00c885e167169d47ff5cf66de7172ca8074682dfc330"}, + {file = "pyobjc_framework_fsevents-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:90819f2fe0516443f679273b128c212d9e6802570f2f1c8a1e190fed76e2dc48"}, + {file = "pyobjc_framework_fsevents-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:028f6a3195c6a00ca29baef31019cb2ca0c54e799072f0f0246b391dc6c4c1d3"}, + {file = "pyobjc_framework_fsevents-12.1.tar.gz", hash = "sha256:a22350e2aa789dec59b62da869c1b494a429f8c618854b1383d6473f4c065a02"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-fskit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework FSKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"24.4\"" files = [ - {file = "pyobjc_framework_fskit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:db96e20789186b5f3be132cc7041e38cdaf98904da82b80fbcb2564365738517"}, - {file = "pyobjc_framework_fskit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:59a939ac8442d648f73a3da75923aa3637ac4693850d995f1914260c8f4f7947"}, - {file = "pyobjc_framework_fskit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1e50b8f949f1386fada73b408463c87eb81ef7fd0b3482bacf0c206a73723013"}, - {file = "pyobjc_framework_fskit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cc2390934a23b6407aa7802b11978374301444c3135835ad3373f7b4930c24eb"}, - {file = "pyobjc_framework_fskit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:44fe7b6781c8fd0552b13ab3d0ec21176cd7cd685a8a61d712f9e4e42eb2f736"}, - {file = "pyobjc_framework_fskit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:1d3793938e6d9b871483d4a6fad8f93d554bcbebd1fe7bed20e3f5d2feaa814b"}, - {file = "pyobjc_framework_fskit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e38f9c449647109e5b14dc4a17f425efca10c7e539a3836ebdd1f9c0ef725a3b"}, - {file = "pyobjc_framework_fskit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d6b9725d341fa7c2a0e383fd1dbf2c20c7506bb97d9df40120a2d6de0a99be8"}, - {file = "pyobjc_framework_fskit-11.1.tar.gz", hash = "sha256:9ded1eab19b4183cb04381e554bbbe679c1213fd58599d6fc6e135e93b51136f"}, + {file = "pyobjc_framework_fskit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:521423e7dfc4d2c5c262ba1db0adeb0e0b60976a2d74dec285642914f50252b2"}, + {file = "pyobjc_framework_fskit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:95b9135eea81eeed319dcca32c9db04b38688301586180b86c4585fef6b0e9cd"}, + {file = "pyobjc_framework_fskit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:50972897adea86508cfee33ec4c23aa91dede97e9da1640ea2fe74702b065be1"}, + {file = "pyobjc_framework_fskit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:528b988ea6af1274c81ff698f802bb55a12e32633862919dd4b303ec3b941fae"}, + {file = "pyobjc_framework_fskit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:55e3e00e51bc33d43ed57efb9ceb252abfceba0bd563dae07c7b462da7add849"}, + {file = "pyobjc_framework_fskit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d856df1b12ef79803e11904571411ffe5720ceb8840f489ca7ec977c1d789e57"}, + {file = "pyobjc_framework_fskit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fc9ccf7a0f483ce98274ed89bc91226c3f1aaa32cb380b4fdd8b258317cc8fb"}, + {file = "pyobjc_framework_fskit-12.1.tar.gz", hash = "sha256:ec54e941cdb0b7d800616c06ca76a93685bd7119b8aa6eb4e7a3ee27658fc7ba"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-gamecenter" -version = "11.1" +version = "12.1" description = "Wrappers for the framework GameCenter on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_gamecenter-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8543725d4fad635bbbe3aaeea0df8d31a419f2cab0d9f9b411ae2212c8fac5eb"}, - {file = "pyobjc_framework_gamecenter-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:81abe136292ea157acb6c54871915fe6d386146a9386179ded0b974ac435045c"}, - {file = "pyobjc_framework_gamecenter-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:779cdf8f52348be7f64d16e3ea37fd621d5ee933c032db3a22a8ccad46d69c59"}, - {file = "pyobjc_framework_gamecenter-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ff8905a5a7bfd86cb2b95671b452be0836f79db065b8d8b3bb2a1a5750ffd0d"}, - {file = "pyobjc_framework_gamecenter-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a73ca7027b2b827e26075b46551fe42425d4a68985022baa4413329a3a2c16ff"}, - {file = "pyobjc_framework_gamecenter-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:2a2cb6471d4d4b19f124c7e91a32882a0fab6e326bb0415915fd8f3b91cfc311"}, - {file = "pyobjc_framework_gamecenter-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:90132bb32f5ed6607e13c6f39346ad621611cb92cea308ced661a6ba1305b94e"}, - {file = "pyobjc_framework_gamecenter-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:46bf896c26684fad0c93f71cf3b5f44157034f0b7e18977d80405749b3d65deb"}, - {file = "pyobjc_framework_gamecenter-11.1.tar.gz", hash = "sha256:a1c4ed54e11a6e4efba6f2a21ace92bcf186e3fe5c74a385b31f6b1a515ec20c"}, + {file = "pyobjc_framework_gamecenter-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25f6a403352aaf8755a3874477fb70b1107ca28769e585541b52727ec50834be"}, + {file = "pyobjc_framework_gamecenter-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:30943512f2aa8cb129f8e1abf951bf06922ca20b868e918b26c19202f4ee5cc4"}, + {file = "pyobjc_framework_gamecenter-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e8d6d10b868be7c00c2d5a0944cc79315945735dcf17eaa3fec1a7986d26be9b"}, + {file = "pyobjc_framework_gamecenter-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c885eae6ad29abb8d3ad17a9068c920f778622bff5401df31842fdbcebdd84"}, + {file = "pyobjc_framework_gamecenter-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9112d7aa8807d4b18a3f7190f310d60380640faaf405a1d0a9fd066c6420ae5b"}, + {file = "pyobjc_framework_gamecenter-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c452f65aaa102c11196193f44d41061ce33a66be2e9cf79d890d8eb611f84aa9"}, + {file = "pyobjc_framework_gamecenter-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:55352b0b4cf6803b3489a9dc63b6c177df462fbc4fee7902a4576af067e41714"}, + {file = "pyobjc_framework_gamecenter-12.1.tar.gz", hash = "sha256:de4118f14c9cf93eb0316d49da410faded3609ce9cd63425e9ef878cebb7ea72"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-gamecontroller" -version = "11.1" +version = "12.1" description = "Wrappers for the framework GameController on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_gamecontroller-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f19e4e645966e99c08552d0841c9e535326506dfc0c0ef097a6ad62f71b7e99d"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:782779f080508acf869187c0cbd3a48c55ee059d3a14fe89ccd6349537923214"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d2cbc0c6c7d9c63e6b5b0b124d0c2bad01bb4b136f3cbc305f27d31f8aab6083"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4866b25df05f583af06095e7103ddd2fbb2484b0ac2c78fd2cd825f995e524fa"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:98f3f7afcbbe473a53537da42b2cdc0363df2647289eb66e8c762e4b46c23e73"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:de3892b8d09a65a3413d85a2f0762eba092afda8d97cbf9cda0417689cfb7027"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:afe9f3aed8c900ebe63ee4f6e53c73c2fef7e503f6388afd39f46b31487f84a3"}, - {file = "pyobjc_framework_gamecontroller-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6dc5a5660668c988ad4d57cfc93877d9718ab617ef9322d6eac211a567708cad"}, - {file = "pyobjc_framework_gamecontroller-11.1.tar.gz", hash = "sha256:4d5346faf90e1ebe5602c0c480afbf528a35a7a1ad05f9b49991fdd2a97f105b"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:38b290dfb8f5999c599b883fd13d3cade78f26111d010bc003b19ee400182aa5"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2633c2703fb30ce068b2f5ce145edbd10fd574d2670b5cdee77a9a126f154fec"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:878aa6590c1510e91bfc8710d6c880e7a8f3656a7b7b6f4f3af487a6f677ccd5"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2105b4309222e538b9bccf906d24f083c3cbf1cd1c18b3ae6876e842e84d2163"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a772cc9fbe09bcc601abcc36855a70cbad4640bd3349c1d611c09fcc7e45b73b"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3404a6488bb498989304aa87ce6217c973505a627b6eb9ae7884fd804569b8e4"}, + {file = "pyobjc_framework_gamecontroller-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f4a16cd469aec142ec8e199d52a797f771441b3ea7198d21f6d75c2cc218b4e6"}, + {file = "pyobjc_framework_gamecontroller-12.1.tar.gz", hash = "sha256:64ed3cc4844b67f1faeb540c7cc8d512c84f70b3a4bafdb33d4663a2b2a2b1d8"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-gamekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework GameKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_gamekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:18ce0e373613a0b9f78969218b884c3191958e353e3462fbfc6d51d758ada41c"}, - {file = "pyobjc_framework_gamekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5e07c25eab051905c6bd46f368d8b341ef8603dce588ff6dbd82d609dd4fbf71"}, - {file = "pyobjc_framework_gamekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f945c7cfe53c4a349a03a1272f2736cc5cf88fe9e7a7a407abb03899635d860c"}, - {file = "pyobjc_framework_gamekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c7f2bf7ecf44ca678cfdf76f23b32d9c2d03006a0af9ad8e60d9114d6be640a"}, - {file = "pyobjc_framework_gamekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a7c8fce8a2c4614e3dd88b002540e67423e3efd41aa26d576db2de0fc61651b9"}, - {file = "pyobjc_framework_gamekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:555cb8d868fd2699ad70d4f9e7efccaa5df1995893050d05d478cb8f24dbf876"}, - {file = "pyobjc_framework_gamekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:10331a69282b9554ce7ae618dc9ff68e96451759f6cfc687e188c82ba6b0e2ff"}, - {file = "pyobjc_framework_gamekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb9e8c59efbda8476f4411cab71d05a23cb85cc77c58e5b52852692d1d7206c0"}, - {file = "pyobjc_framework_gamekit-11.1.tar.gz", hash = "sha256:9b8db075da8866c4ef039a165af227bc29393dc11a617a40671bf6b3975ae269"}, + {file = "pyobjc_framework_gamekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b15492801dafcbb569dee8c58d26e16ce06b33912872e85dfd50cf39b8f98f1e"}, + {file = "pyobjc_framework_gamekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb263e90a6af3d7294bc1b1ea5907f8e33bb77d62fb806696f8df7e14806ccad"}, + {file = "pyobjc_framework_gamekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2eee796d5781157f2c5684f7ef4c2a7ace9d9b408a26a9e7e92e8adf5a3f63d7"}, + {file = "pyobjc_framework_gamekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ad14393ac496a4cb8008b6172d536f5c07fc11bb7b00fb541b044681cf9e4a34"}, + {file = "pyobjc_framework_gamekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:97e41b4800be30cb3e6a88007b6f741cb18935467d1631537ac23b918659900e"}, + {file = "pyobjc_framework_gamekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:14080fdea98ec01c3e06260f1f5b31aaf59c78c2872fe8b843e17fd0ce151fa4"}, + {file = "pyobjc_framework_gamekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9867991539dfc70b52f0ee8ce19bc661d0706c7f64c35417e97ca7c90e3158c0"}, + {file = "pyobjc_framework_gamekit-12.1.tar.gz", hash = "sha256:014d032c3484093f1409f8f631ba8a0fd2ff7a3ae23fd9d14235340889854c16"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-gameplaykit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework GameplayKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_gameplaykit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8cc9b2a476f79d593d9617fdb8c5ac27d1cf9256063379e3df9b6519c462eb48"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ac9f50941988c30175149af481a49b2026c56a9a497c6dbf2974ffb50ffe0af8"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0e4f34db8177b8b4d89fd22a2a882a6c9f6e50cb438ea2fbbf96845481bcd80d"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:78c513bc53bafd996d896f6f4535f2700b4916013417f8b41f47045790c6208d"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:30e15e4e8df9b1c0ca92bfabf79f6b12a286e544e67762b14dd3023c53e41978"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:4dbea3471b5d4a82b37ddca41bfddd63380c31050de7392e2467fabebcd110b8"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:51abecafc1b55fcc9a5d73c078ea2d5a75964e0facf2c867a25d7f4f40238331"}, - {file = "pyobjc_framework_gameplaykit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:70dc72e8b59c0c64a825057d14a5a5a2cec8c95d0f710da1b83fb8a989ac8380"}, - {file = "pyobjc_framework_gameplaykit-11.1.tar.gz", hash = "sha256:9ae2bee69b0cc1afa0e210b4663c7cdbb3cc94be1374808df06f98f992e83639"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1af3963897c1ff2dfbcc6782ff162d6bf34488f6736e60cfc73411fdfaba2b31"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b2fb27f9f48c3279937e938a0456a5231b5c89e53e3199b9d54009a0bbd1228a"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:309b0d7479f702830c9be92dbe5855ac2557a9d23f05f063caf9d9fdb85ff5f0"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:947911902e0caf1d82dedae8842025891d57e91504714a7732dc7c4f80d486a1"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3218de7a56ac63a47ab7c50ce30592d626759196c937d20426a0ea74091e0614"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:786036bdf266faf196b29b23e123faf76df5f3e90f113e2a7cdd4d04af071dc2"}, + {file = "pyobjc_framework_gameplaykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d58c0cc671ac8b80a4bf702efabbb9c0a42020999b87efed162b71830db005a9"}, + {file = "pyobjc_framework_gameplaykit-12.1.tar.gz", hash = "sha256:935ebd806d802888969357946245d35a304c530c86f1ffe584e2cf21f0a608a8"}, +] + +[package.dependencies] +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-SpriteKit = ">=12.1" + +[[package]] +name = "pyobjc-framework-gamesave" +version = "12.1" +description = "Wrappers for the framework GameSave on macOS" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"25.0\"" +files = [ + {file = "pyobjc_framework_gamesave-12.1-py2.py3-none-any.whl", hash = "sha256:432e69f8404be9290d42c89caba241a3156ed52013947978ac54f0f032a14ffd"}, + {file = "pyobjc_framework_gamesave-12.1.tar.gz", hash = "sha256:eb731c97aa644e78a87838ed56d0e5bdbaae125bdc8854a7772394877312cc2e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-SpriteKit = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-healthkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework HealthKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_healthkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f15f2cff20a09f42f251752f908a54c5fe3adabb03ec8d3fb2b66ff7b0b4709e"}, - {file = "pyobjc_framework_healthkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:34bce3d144c461af7e577fcf6bbb7739d0537bf42f081960122923a7ef2e06c0"}, - {file = "pyobjc_framework_healthkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab4350f9fe65909107dd7992b367a6c8aac7dc31ed3d5b52eeb2310367d0eb0b"}, - {file = "pyobjc_framework_healthkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8b6c739e17362897f0b1ba4aa4dc395b3d0c3855b87423eaeb6a89f910adc43f"}, - {file = "pyobjc_framework_healthkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2d1b76b04e9e33ac9441cafa695766938eac04f8c8c69f7efd93a6aceb6eca40"}, - {file = "pyobjc_framework_healthkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:547ac283f84b5024be75290f351863f86eb48a950ec61e3150760230e6eba773"}, - {file = "pyobjc_framework_healthkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:c693725d8476b745232df90ef01487e75e1e1c448e599dd34adf3dce859de760"}, - {file = "pyobjc_framework_healthkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:356ea404bee0b477269f494aad63386b5295218034ca8327e4047ece4c31ccfb"}, - {file = "pyobjc_framework_healthkit-11.1.tar.gz", hash = "sha256:20f59bd9e1ffafe5893b4eff5867fdfd20bd46c3d03bc4009219d82fc6815f76"}, + {file = "pyobjc_framework_healthkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1850c4f079374aaa3e91f22ab22b83817872460cc3a9c5310fe18c6140dc307"}, + {file = "pyobjc_framework_healthkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e67bce41f8f63c11000394c6ce1dc694655d9ff0458771340d2c782f9eafcc6e"}, + {file = "pyobjc_framework_healthkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:15b6fc958ff5de42888b18dffdec839cb36d2dd8b82076ed2f21a51db5271109"}, + {file = "pyobjc_framework_healthkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c57ba8e3cce620665236d9f6b77482c9cfb16fe3372c8b6bbabc50222fb1b790"}, + {file = "pyobjc_framework_healthkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b2a0890d920015b40afe8ecda6c541840d20b4ae6c7f2daaa9efbaafae8cc1bc"}, + {file = "pyobjc_framework_healthkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1f10a3abf6d5a326192e96343e7e1d9d16efa0cf4b39266335e385455680bc69"}, + {file = "pyobjc_framework_healthkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:54f02b673b2ea8ec8cfa17cac0c377435cbf89a15d5539d4699fa8b12abc42de"}, + {file = "pyobjc_framework_healthkit-12.1.tar.gz", hash = "sha256:29c5e5de54b41080b7a4b0207698ac6f600dcb9149becc9c6b3a69957e200e5c"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-imagecapturecore" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ImageCaptureCore on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_imagecapturecore-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:69f91c9f17bf0b8332b5826033bc5292493fe575fdb841cd7f58ab493053de38"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ede4c15da909a4d819c732a5554b8282a7b56a1b73d82aef908124147921945a"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed296c23d3d8d1d9af96a6486d09fb8d294cc318e4a2152e6f134151c76065f8"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ded8dc6a8c826a6ae1b6a6d0a31542bd1eb85345f86201689c54e51193b572dc"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:254ae4502d651526c500533b8e2aee77ae7939f9acfd7d706dba2d464417deba"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bab8ed798598ddaa53f5b39707b58e16a1b1152858c87fd3fa0d64081f0c0364"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e01c29456d0560667f8fcd3ff2749e79ad51bf72512e699646ce32227f91b447"}, - {file = "pyobjc_framework_imagecapturecore-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5334e55f13cf929e5bcddbd852dd74136201f2fb563cf7d6066579d907a25c81"}, - {file = "pyobjc_framework_imagecapturecore-11.1.tar.gz", hash = "sha256:a610ceb6726e385b132a1481a68ce85ccf56f94667b6d6e1c45a2cfab806a624"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7cb050fcbfc3cd20cf0427523f080939f6d815cd85f58a2ebcac930567764384"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:64d1eb677fe5b658a6b6ed734b7120998ea738ca038ec18c4f9c776e90bd9402"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a2777e17ff71fb5a327a897e48c5c7b5a561723a80f990d26e6ed5a1b8748816"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ae57b54e7b92e2efb40b7346e12d7767f42ed2bcf8f050cd9a88a9926a1e387"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:08f8ed5434ee5cc7605e71227c284c0c3fa0a32a6d83e1862e7870543a65a630"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b7a7feeb0b53f5b0e0305c5c41f6b722d5f8cfca506c49678902244cd339ac10"}, + {file = "pyobjc_framework_imagecapturecore-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1fcfcc907673331cc4be3ea63fce6e1346620ac74661a19566dfcdf855bb8eee"}, + {file = "pyobjc_framework_imagecapturecore-12.1.tar.gz", hash = "sha256:c4776c59f4db57727389d17e1ffd9c567b854b8db52198b3ccc11281711074e5"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-inputmethodkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework InputMethodKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_inputmethodkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ccf8697a13e7ab5e3ec446b930f40069da43823bfc678c4c426ad03f980c14f"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9b0e47c3bc7f1e628c906436c1735041ed2e9aa7cba3f70084b6311c63c508be"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd0c591a9d26967018a781fa4638470147ef2a9af3ab4a28612f147573eeefba"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5095005809a4108f362998b46994f99b5a57f9ba367c01141c1b9eaea311bc5b"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:013919a4d766a7e66045fa5dd5d819bfa0450ccb59baba2b89d7449bce637d6b"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:2228bf58369351767294fe1aa400e98ec61e397a74a178788c24c98a1cff97ee"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:92b9ce788ce4b094e352a64508050ff8e24307b8670d33488304b941d118894e"}, - {file = "pyobjc_framework_inputmethodkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e18862d58addf13ff3592c43a4fc70f0b6f38b5d7e53358cf78b33b9a2b2c00e"}, - {file = "pyobjc_framework_inputmethodkit-11.1.tar.gz", hash = "sha256:7037579524041dcee71a649293c2660f9359800455a15e6a2f74a17b46d78496"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e655947e314e6fe743ce225fc3170466003030b0186b8a7db161b54e87ee5c0e"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4e02f49816799a31d558866492048d69e8086178770b76f4c511295610e02ab"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0b7d813d46a060572fc0c14ef832e4fe538ebf64e5cab80ee955191792ce0110"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b5c7458082e3f7e8bb115ed10074ad862cc6566da7357540205d3cd1e24e2b9f"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a4e782edd8e59b1ea81ea688d27edbf98cc5c8262e081cb772cf8c36c74733df"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3b27c166574ad08d196129c979c5eec891cd630d249c75a970e26f3949578cb9"}, + {file = "pyobjc_framework_inputmethodkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1f065cb44041821a1812861e13ee1eca4aee37b57c8de0ce7ffd7e55f7af8907"}, + {file = "pyobjc_framework_inputmethodkit-12.1.tar.gz", hash = "sha256:f63b6fe2fa7f1412eae63baea1e120e7865e3b68ccfb7d8b0a4aadb309f2b278"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-installerplugins" -version = "11.1" +version = "12.1" description = "Wrappers for the framework InstallerPlugins on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_installerplugins-11.1-py2.py3-none-any.whl", hash = "sha256:f92b06c9595f3c800b7aabf1c1a235bfb4b2de3f5406d5f604d8e2ddd0aecb4e"}, - {file = "pyobjc_framework_installerplugins-11.1.tar.gz", hash = "sha256:363e59c7e05553d881f0facd41884f17b489ff443d7856e33dd0312064c746d9"}, + {file = "pyobjc_framework_installerplugins-12.1-py2.py3-none-any.whl", hash = "sha256:d2201c81b05bdbe0abf0af25db58dc230802573463bea322f8b2863e37b511d5"}, + {file = "pyobjc_framework_installerplugins-12.1.tar.gz", hash = "sha256:1329a193bd2e92a2320a981a9a421a9b99749bade3e5914358923e94fe995795"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-instantmessage" -version = "11.1" +version = "12.1" description = "Wrappers for the framework InstantMessage on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_instantmessage-11.1-py2.py3-none-any.whl", hash = "sha256:a70b716e279135eec5666af031f536c0f32dec57cfeae55cc9ff8457f10d4f3d"}, - {file = "pyobjc_framework_instantmessage-11.1.tar.gz", hash = "sha256:c222aa61eb009704b333f6e63df01a0e690136e7e495907e5396882779bf9525"}, + {file = "pyobjc_framework_instantmessage-12.1-py2.py3-none-any.whl", hash = "sha256:cd91d38e8f356afd726b6ea8c235699316ea90edfd3472965c251efbf4150bc9"}, + {file = "pyobjc_framework_instantmessage-12.1.tar.gz", hash = "sha256:f453118d5693dc3c94554791bd2aaafe32a8b03b0e3d8ec3934b44b7fdd1f7e7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-intents" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Intents on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"16.0\"" files = [ - {file = "pyobjc_framework_intents-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:315f8572336dee42ab582435e85176a14455928ac451fcb1f7c62786d17e8758"}, - {file = "pyobjc_framework_intents-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da2f11ee64c75cfbebb1c2be52a20b3618f32b6c47863809ff64c61e8a1dffb9"}, - {file = "pyobjc_framework_intents-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a663e2de1b7ae7b547de013f89773963f8180023e36f2cebfe8060395dc34c33"}, - {file = "pyobjc_framework_intents-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9e21b3bc33de2d5f69b5c1d581e5c724a08686fe84ec324a4be365bef769e482"}, - {file = "pyobjc_framework_intents-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e008d542abe38fd374c9ada7c833ad6e34a2db92b4dcbfba0a59ff830b9093bc"}, - {file = "pyobjc_framework_intents-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:55498040123904b685cd38555eb84d95833fcb467b497d31757d6ac648a11817"}, - {file = "pyobjc_framework_intents-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:4e3ec70c02d3166088223938a7433e479659cbd8ce04be5bf515ea8d6e3c353d"}, - {file = "pyobjc_framework_intents-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1c915ab478cc0a47894e78adb9bdbad4ec32a8b227bde91f9713dd61015d3ea8"}, - {file = "pyobjc_framework_intents-11.1.tar.gz", hash = "sha256:13185f206493f45d6bd2d4903c2136b1c4f8b9aa37628309ace6ff4a906b4695"}, + {file = "pyobjc_framework_intents-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4dcca96da5b302583e3f8792f697e1d60a86f62b16ee07e9db11ce4186ca243c"}, + {file = "pyobjc_framework_intents-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dc68dc49f1f8d9f8d2ffbc0f57ad25caac35312ddc444899707461e596024fec"}, + {file = "pyobjc_framework_intents-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ea9f3e79bf4baf6c7b0fd2d2797184ed51a372bf7f32974b4424f9bd067ef50"}, + {file = "pyobjc_framework_intents-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1da8d1501c8c85198dfbc4623ea18db96077f9947f6e1fe5ffa2ed06935e8a3b"}, + {file = "pyobjc_framework_intents-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:50ab244f2a9ad4c94bbc1dd81421f8553f59121d4e0ad0c894a927a878319843"}, + {file = "pyobjc_framework_intents-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5c50c336418a3ba8fdfa5b5d12e46dca290e4321fb9844245af4a32b11cf6563"}, + {file = "pyobjc_framework_intents-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:03cbccec0380a431bc291725af0fcbaf61ea1bb1301a70cb267c8ecf2d04d608"}, + {file = "pyobjc_framework_intents-12.1.tar.gz", hash = "sha256:bd688c3ab34a18412f56e459e9dae29e1f4152d3c2048fcacdef5fc49dfb9765"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-intentsui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Intents on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_intentsui-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:381c14d60170f71e89b5fd4eae84c0821c50a70b08ce9994286177fa37b8d79e"}, - {file = "pyobjc_framework_intentsui-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:252f7833fabb036cd56d59b445922b25cda1561b54c0989702618a5561d8e748"}, - {file = "pyobjc_framework_intentsui-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:99a3ae40eb2a6ef1125955dd513c8acc88ce7d8d90130a8cdeaec8336e6fbec5"}, - {file = "pyobjc_framework_intentsui-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:154fd92112184e8ef29ce81e685c377422dffcff4f7900ea6e5956a0e2be2268"}, - {file = "pyobjc_framework_intentsui-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6d7d5402c05840a45047cf905fa550c2898cf5580cdee00a36bd35dd624c7542"}, - {file = "pyobjc_framework_intentsui-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:35ef9f190f480147ce797809a63cc2b5f2ea64b51255d691e5e94bd8337e01ef"}, - {file = "pyobjc_framework_intentsui-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1bd950f808efb7ba7fbbc977300d7932a1dad41fbd3c78c8002870ca602e22d5"}, - {file = "pyobjc_framework_intentsui-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0541fdd4dfafc8ce2981784842548a50ba55d7fee121b5d3c4edf15af8c1391d"}, - {file = "pyobjc_framework_intentsui-11.1.tar.gz", hash = "sha256:c8182155af4dce369c18d6e6ed9c25bbd8110c161ed5f1b4fb77cf5cdb99d135"}, + {file = "pyobjc_framework_intentsui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:631baf74bc8ca65ebab6ed8914a116d12af8323dfa89b156a9f64f55a7fdde5b"}, + {file = "pyobjc_framework_intentsui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a877555e313d74ac3b10f7b4e738647eea9f744c00a227d1238935ac3f9d7968"}, + {file = "pyobjc_framework_intentsui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb894fcc4c9ea613a424dcf6fb48142d51174559b82cfdafac8cb47555c842cf"}, + {file = "pyobjc_framework_intentsui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:369a88db1ff3647e4d8cf38d315f1e9b381fc7732d765b08994036f9d330f57d"}, + {file = "pyobjc_framework_intentsui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8742e9237ef2df8dbb1566cdc77e4d747b2693202f438d49435e0c3c91eaa709"}, + {file = "pyobjc_framework_intentsui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d01222760005421324c3892b6b98c5b4295828a6b157a1fc410f63eb336b2d97"}, + {file = "pyobjc_framework_intentsui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:547aef7233b6c7495b3c679aa779f01368fc992883732ade065523235f07fa3b"}, + {file = "pyobjc_framework_intentsui-12.1.tar.gz", hash = "sha256:16bdf4b7b91c0d1ec9d5513a1182861f1b5b7af95d4f4218ff7cf03032d57f99"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Intents = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Intents = ">=12.1" [[package]] name = "pyobjc-framework-iobluetooth" -version = "11.1" +version = "12.1" description = "Wrappers for the framework IOBluetooth on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_iobluetooth-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d512252b8ee2a23c88d5e0a188f8949858f1ef3b99c279fb412f3e00508ec367"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7d8858cf2e4b2ef5e8bf29b76c06d4f2e6a2264c325146d07dfab94c46633329"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:883781e7223cb0c63fab029d640721ded747f2e2b067645bc8b695ef02a4a4dd"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4a8b1caba9ac51435f64a6cf9c1a2be867603161af8bebdd1676072ebed2fed9"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2c99ade82a79263ea71c51d430696a2ad155beb01a67df59d52be63e181e0482"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:2ef72cef1e03468e91a2f01af2390143bd6e4fcad1c6d0494dd857c99fa0d1a7"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:a9a7e11a4bbb4a364b0412ca8632a1e853270c98c24d28421133f69c0c0ecaff"}, - {file = "pyobjc_framework_iobluetooth-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ea799de85cecfb50e5232b80d9966d0dad7cf63cad56317fb35b14b90f38dcd"}, - {file = "pyobjc_framework_iobluetooth-11.1.tar.gz", hash = "sha256:094fd4be60cd1371b17cb4b33a3894e0d88a11b36683912be0540a7d51de76f1"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8963d7115fdcd753598f0757f36b19267d01d00ac84cf617c02d38889c3a40fd"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:77959f2ecf379aa41eb0848fdb25da7c322f9f4a82429965c87c4bc147137953"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:111a6e54be9e9dcf77fa2bf84fdac09fae339aa33087d8647ea7ffbd34765d4c"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ee0d4fdddf871fb89c49033495ae49973cc8b0e8de50c2e60c92355ce3bea86"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0cd2ea9384e93913703bf40641196a930af83c2f6f62f59f8606b7162fe1caa3"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a14506046ad9403ea95c75c1dd248167f41aef4aed62f50b567bf2482056ebf5"}, + {file = "pyobjc_framework_iobluetooth-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:42ec9a40e7234a00f434489c8b18458bc5deb6ea6938daba50b9527100e21f0c"}, + {file = "pyobjc_framework_iobluetooth-12.1.tar.gz", hash = "sha256:8a434118812f4c01dfc64339d41fe8229516864a59d2803e9094ee4cbe2b7edd"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-iobluetoothui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework IOBluetoothUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_iobluetoothui-11.1-py2.py3-none-any.whl", hash = "sha256:3c5a382d81f319a1ab9ab11b7ead04e53b758fdfeb604755d39c3039485eaac6"}, - {file = "pyobjc_framework_iobluetoothui-11.1.tar.gz", hash = "sha256:060c721f1cd8af4452493e8153b72b572edcd2a7e3b635d79d844f885afee860"}, + {file = "pyobjc_framework_iobluetoothui-12.1-py2.py3-none-any.whl", hash = "sha256:a6d8ab98efa3029130577a57ee96b183c35c39b0f1c53a7534f8838260fab993"}, + {file = "pyobjc_framework_iobluetoothui-12.1.tar.gz", hash = "sha256:81f8158bdfb2966a574b6988eb346114d6a4c277300c8c0a978c272018184e6f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-IOBluetooth = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-IOBluetooth = ">=12.1" [[package]] name = "pyobjc-framework-iosurface" -version = "11.1" +version = "12.1" description = "Wrappers for the framework IOSurface on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_iosurface-11.1-py2.py3-none-any.whl", hash = "sha256:0c36ad56f8ec675dd07616418a2bc29126412b54627655abd21de31bcafe2a79"}, - {file = "pyobjc_framework_iosurface-11.1.tar.gz", hash = "sha256:a468b3a31e8cd70a2675a3ddc7176ab13aa521c035f11188b7a3af8fff8b148b"}, + {file = "pyobjc_framework_iosurface-12.1-py2.py3-none-any.whl", hash = "sha256:e784e248397cfebef4655d2c0025766d3eaa4a70474e363d084fc5ce2a4f2a3f"}, + {file = "pyobjc_framework_iosurface-12.1.tar.gz", hash = "sha256:4b9d0c66431aa296f3ca7c4f84c00dc5fc961194830ad7682fdbbc358fa0db55"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-ituneslibrary" -version = "11.1" +version = "12.1" description = "Wrappers for the framework iTunesLibrary on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_ituneslibrary-11.1-py2.py3-none-any.whl", hash = "sha256:4e87d41f82acb6d98cf70ac3c932a568ceb3c2035383cbf177f54e63de6b815f"}, - {file = "pyobjc_framework_ituneslibrary-11.1.tar.gz", hash = "sha256:e2212a9340e4328056ade3c2f9d4305c71f3f6af050204a135f9fa9aa3ba9c5e"}, + {file = "pyobjc_framework_ituneslibrary-12.1-py2.py3-none-any.whl", hash = "sha256:fb678d7c3ff14c81672e09c015e25880dac278aa819971f4d5f75d46465932ef"}, + {file = "pyobjc_framework_ituneslibrary-12.1.tar.gz", hash = "sha256:7f3aa76c4d05f6fa6015056b88986cacbda107c3f29520dd35ef0936c7367a6e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-kernelmanagement" -version = "11.1" +version = "12.1" description = "Wrappers for the framework KernelManagement on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_kernelmanagement-11.1-py2.py3-none-any.whl", hash = "sha256:ec74690bd3383a7945c4a038cc4e1553ec5c1d2408b60e2b0003a3564bff7c47"}, - {file = "pyobjc_framework_kernelmanagement-11.1.tar.gz", hash = "sha256:e934d1638cd89e38d6c6c5d4d9901b4295acee2d39cbfe0bd91aae9832961b44"}, + {file = "pyobjc_framework_kernelmanagement-12.1-py2.py3-none-any.whl", hash = "sha256:926381bfbfbc985c3e6dfcb7004af21bb16ff66ecbc08912b925989a705944ff"}, + {file = "pyobjc_framework_kernelmanagement-12.1.tar.gz", hash = "sha256:488062893ac2074e0c8178667bf864a21f7909c11111de2f6a10d9bc579df59d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-latentsemanticmapping" -version = "11.1" +version = "12.1" description = "Wrappers for the framework LatentSemanticMapping on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_latentsemanticmapping-11.1-py2.py3-none-any.whl", hash = "sha256:57f3b183021759a100d2847a4d8aa314f4033be3d2845038b62e5e823d96e871"}, - {file = "pyobjc_framework_latentsemanticmapping-11.1.tar.gz", hash = "sha256:c6c3142301e4d375c24a47dfaeebc2f3d0fc33128a1c0a755794865b9a371145"}, + {file = "pyobjc_framework_latentsemanticmapping-12.1-py2.py3-none-any.whl", hash = "sha256:7d760213b42bc8b1bc1472e1873c0f78ee80f987225978837b1fecdceddbdbf4"}, + {file = "pyobjc_framework_latentsemanticmapping-12.1.tar.gz", hash = "sha256:f0b1fa823313eefecbf1539b4ed4b32461534b7a35826c2cd9f6024411dc9284"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-launchservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework LaunchServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_launchservices-11.1-py2.py3-none-any.whl", hash = "sha256:8b58f1156651058b2905c87ce48468f4799db86a7edf760e1897fedd057a3908"}, - {file = "pyobjc_framework_launchservices-11.1.tar.gz", hash = "sha256:80b55368b1e208d6c2c58395cc7bc12a630a2a402e00e4930493e9bace22b7bb"}, + {file = "pyobjc_framework_launchservices-12.1-py2.py3-none-any.whl", hash = "sha256:e63e78fceeed4d4dc807f9dabd5cf90407e4f552fab6a0d75a8d0af63094ad3c"}, + {file = "pyobjc_framework_launchservices-12.1.tar.gz", hash = "sha256:4d2d34c9bd6fb7f77566155b539a2c70283d1f0326e1695da234a93ef48352dc"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-CoreServices = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-CoreServices = ">=12.1" [[package]] name = "pyobjc-framework-libdispatch" -version = "11.1" +version = "12.1" description = "Wrappers for libdispatch on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_libdispatch-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9c598c073a541b5956b5457b94bd33b9ce19ef8d867235439a0fad22d6beab49"}, - {file = "pyobjc_framework_libdispatch-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ddca472c2cbc6bb192e05b8b501d528ce49333abe7ef0eef28df3133a8e18b7"}, - {file = "pyobjc_framework_libdispatch-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc9a7b8c2e8a63789b7cf69563bb7247bde15353208ef1353fff0af61b281684"}, - {file = "pyobjc_framework_libdispatch-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c4e219849f5426745eb429f3aee58342a59f81e3144b37aa20e81dacc6177de1"}, - {file = "pyobjc_framework_libdispatch-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a9357736cb47b4a789f59f8fab9b0d10b0a9c84f9876367c398718d3de085888"}, - {file = "pyobjc_framework_libdispatch-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:cd08f32ea7724906ef504a0fd40a32e2a0be4d64b9239530a31767ca9ccfc921"}, - {file = "pyobjc_framework_libdispatch-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:5d9985b0e050cae72bf2c6a1cc8180ff4fa3a812cd63b2dc59e09c6f7f6263a1"}, - {file = "pyobjc_framework_libdispatch-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cfe515f4c3ea66c13fce4a527230027517b8b779b40bbcb220ff7cdf3ad20bc4"}, - {file = "pyobjc_framework_libdispatch-11.1.tar.gz", hash = "sha256:11a704e50a0b7dbfb01552b7d686473ffa63b5254100fdb271a1fe368dd08e87"}, + {file = "pyobjc_framework_libdispatch-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:50a81a29506f0e35b4dc313f97a9d469f7b668dae3ba597bb67bbab94de446bd"}, + {file = "pyobjc_framework_libdispatch-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:954cc2d817b71383bd267cc5cd27d83536c5f879539122353ca59f1c945ac706"}, + {file = "pyobjc_framework_libdispatch-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0e9570d7a9a3136f54b0b834683bf3f206acd5df0e421c30f8fd4f8b9b556789"}, + {file = "pyobjc_framework_libdispatch-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:58ffce5e6bcd7456b4311009480b195b9f22107b7682fb0835d4908af5a68ad0"}, + {file = "pyobjc_framework_libdispatch-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e9f49517e253716e40a0009412151f527005eec0b9a2311ac63ecac1bdf02332"}, + {file = "pyobjc_framework_libdispatch-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0ebfd9e4446ab6528126bff25cfb09e4213ddf992b3208978911cfd3152e45f5"}, + {file = "pyobjc_framework_libdispatch-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:23fc9915cba328216b6a736c7a48438a16213f16dfb467f69506300b95938cc7"}, + {file = "pyobjc_framework_libdispatch-12.1.tar.gz", hash = "sha256:4035535b4fae1b5e976f3e0e38b6e3442ffea1b8aa178d0ca89faa9b8ecdea41"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-libxpc" -version = "11.1" +version = "12.1" description = "Wrappers for xpc on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_libxpc-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:427ce45f700720198c365a099fb2f4f2fa28dbf85a7c4076371f61dbd16a0b6f"}, - {file = "pyobjc_framework_libxpc-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4ec8a7df24d85a561fc21d0eb0db89e8cddefeedec71c69bccf17f99804068ed"}, - {file = "pyobjc_framework_libxpc-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c29b2df8d74ff6f489afa7c39f7c848c5f3d0531a6bbe704571782ee6c820084"}, - {file = "pyobjc_framework_libxpc-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6862e63f565823d4eeb56f18f90a3ee8682c52a8d4bcd486d3535c9959464eda"}, - {file = "pyobjc_framework_libxpc-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2df539d11b65e229f8436a3660d0d1dce2cc7ba571054c5b91350b836db22576"}, - {file = "pyobjc_framework_libxpc-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:4f3083fde3c366cc58bcdb2c183fae9c531fb556d35a495818019f1a5d85c24d"}, - {file = "pyobjc_framework_libxpc-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:654db8e822e60a1246d4d55c7127a140e10d6faa0da5a7366a16cc10def44deb"}, - {file = "pyobjc_framework_libxpc-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1648adb40fa5dabe7b49a09d8887d78c82ec11553efaa522016e98b79017704a"}, - {file = "pyobjc_framework_libxpc-11.1.tar.gz", hash = "sha256:8fd7468aa520ff19915f6d793070b84be1498cb87224bee2bad1f01d8375273a"}, + {file = "pyobjc_framework_libxpc-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f135b9734ee461c30dc692e58ce4b58c84c9a455738afe9ac70040c893625f4f"}, + {file = "pyobjc_framework_libxpc-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8d7201db995e5dcd38775fd103641d8fb69b8577d8e6a405c5562e6c0bb72fd1"}, + {file = "pyobjc_framework_libxpc-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ba93e91e9ca79603dd265382e9f80e9bd32309cd09c8ac3e6489fc5b233676c8"}, + {file = "pyobjc_framework_libxpc-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:635520187a6456ad259e40dd04829caeef08561d0a1a0cfd09787ebd281d47b3"}, + {file = "pyobjc_framework_libxpc-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1c36e3e109a95275f90b319161265a7f6a5e0e674938ce49babdf3a64d9fc892"}, + {file = "pyobjc_framework_libxpc-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:bc5eaed7871fab8971631e99151ea0271f64d4059790c9f41a30ae4841f4fd89"}, + {file = "pyobjc_framework_libxpc-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c862ed4f79c82e7a246fe49a8fae9e9684a7163512265f1c01790899dc730551"}, + {file = "pyobjc_framework_libxpc-12.1.tar.gz", hash = "sha256:e46363a735f3ecc9a2f91637750623f90ee74f9938a4e7c833e01233174af44d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-linkpresentation" -version = "11.1" +version = "12.1" description = "Wrappers for the framework LinkPresentation on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_linkpresentation-11.1-py2.py3-none-any.whl", hash = "sha256:018093469d780a45d98f4e159f1ea90771caec456b1599abcc6f3bf3c6873094"}, - {file = "pyobjc_framework_linkpresentation-11.1.tar.gz", hash = "sha256:a785f393b01fdaada6d7d6d8de46b7173babba205b13b44f1dc884b3695c2fc9"}, + {file = "pyobjc_framework_linkpresentation-12.1-py2.py3-none-any.whl", hash = "sha256:853a84c7b525b77b114a7a8d798aef83f528ed3a6803bda12184fe5af4e79a47"}, + {file = "pyobjc_framework_linkpresentation-12.1.tar.gz", hash = "sha256:84df6779591bb93217aa8bd82c10e16643441678547d2d73ba895475a02ade94"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-localauthentication" -version = "11.1" +version = "12.1" description = "Wrappers for the framework LocalAuthentication on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_localauthentication-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f433e611a910d89a1e327f87e2b3bd9bf33576fd8b964767487e6f278003b030"}, - {file = "pyobjc_framework_localauthentication-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b6d52d07abd2240f7bc02b01ea1c630c280ed3fbc3fabe1e43b7444cfd41788"}, - {file = "pyobjc_framework_localauthentication-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:aa3815f936612d78e51b53beed9115c57ae2fd49500bb52c4030a35856e6569e"}, - {file = "pyobjc_framework_localauthentication-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9c9446c017b13c8dcadf485b76ab1d7bc12099b504bf5c2df1aae33b5dc4ab2c"}, - {file = "pyobjc_framework_localauthentication-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d5a2e1ea2fe8233dc244f6029d5d0c878102b2e0615cb4b81b2f30d9ee101fca"}, - {file = "pyobjc_framework_localauthentication-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:f49c9dbbecfa0b0a7a633c60bda8179575e3685b6a696658a835c63afee90f9a"}, - {file = "pyobjc_framework_localauthentication-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e41be8e2132d1517e597401c7858b22531db2e7760d898993acc03ea13edb834"}, - {file = "pyobjc_framework_localauthentication-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0e05cd69c6c5aecb26a202a6b06603bd3657a62d936ae42de93b485df667c0e6"}, - {file = "pyobjc_framework_localauthentication-11.1.tar.gz", hash = "sha256:3cd48907c794bd414ac68b8ac595d83c7e1453b63fc2cfc2d2035b690d31eaa1"}, + {file = "pyobjc_framework_localauthentication-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b1b24c9b453c3b3eb862a78a3a7387f357a90b99ec61cd1950b38e1cf08307ec"}, + {file = "pyobjc_framework_localauthentication-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2d7e1b3f987dc387361517525c2c38550dc44dfb3ba42dec3a9fbf35015831a6"}, + {file = "pyobjc_framework_localauthentication-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3af1acd287d830cc7f912f46cde0dab054952bde0adaf66c8e8524311a68d279"}, + {file = "pyobjc_framework_localauthentication-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e26e746717f4774cce0568debec711f1d8effc430559ad634ff6b06fefd0a0bf"}, + {file = "pyobjc_framework_localauthentication-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02357cddc979aa169782bf09f380aab1c3af475c9eb6ffb07c77084ed10f6a6a"}, + {file = "pyobjc_framework_localauthentication-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f8d525ed2ad5cd56e420436187b534454d1f7d1fae6e585df82397d6d92c6e54"}, + {file = "pyobjc_framework_localauthentication-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:93c5470a9d60b53afa0faf31d95dc8d6fc3a7ff85c425ab157ea491b6dc3af39"}, + {file = "pyobjc_framework_localauthentication-12.1.tar.gz", hash = "sha256:2284f587d8e1206166e4495b33f420c1de486c36c28c4921d09eec858a699d05"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Security = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Security = ">=12.1" [[package]] name = "pyobjc-framework-localauthenticationembeddedui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework LocalAuthenticationEmbeddedUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_localauthenticationembeddedui-11.1-py2.py3-none-any.whl", hash = "sha256:3539a947b102b41ea6e40e7c145f27280d2f36a2a9a1211de32fa675d91585eb"}, - {file = "pyobjc_framework_localauthenticationembeddedui-11.1.tar.gz", hash = "sha256:22baf3aae606e5204e194f02bb205f244e27841ea7b4a4431303955475b4fa56"}, + {file = "pyobjc_framework_localauthenticationembeddedui-12.1-py2.py3-none-any.whl", hash = "sha256:a7ce7b56346597b9f4768be61938cbc8fc5b1292137225b6c7f631b9cde97cd7"}, + {file = "pyobjc_framework_localauthenticationembeddedui-12.1.tar.gz", hash = "sha256:a15ec44bf2769c872e86c6b550b6dd4f58d4eda40ad9ff00272a67d279d1d4e9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-LocalAuthentication = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-LocalAuthentication = ">=12.1" [[package]] name = "pyobjc-framework-mailkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MailKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_mailkit-11.1-py2.py3-none-any.whl", hash = "sha256:8e6026462567baba194468e710e83787f29d9e8c98ea0583f7b401ea9515966e"}, - {file = "pyobjc_framework_mailkit-11.1.tar.gz", hash = "sha256:bf97dc44cb09b9eb9d591660dc0a41f077699976144b954caa4b9f0479211fd7"}, + {file = "pyobjc_framework_mailkit-12.1-py2.py3-none-any.whl", hash = "sha256:536ac0c4ea3560364cd159a6512c3c18a744a12e4e0883c07df0f8a2ff21e3fe"}, + {file = "pyobjc_framework_mailkit-12.1.tar.gz", hash = "sha256:d5574b7259baec17096410efcaacf5d45c7bb5f893d4c25cbb7072369799b652"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-mapkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MapKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_mapkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0304816336b179a9508b6df9b7558c66e058acadf911900437db2d5b50eebecd"}, - {file = "pyobjc_framework_mapkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:daee6bedc3acc23e62d1e7c3ab97e10425ca57e0c3cc47d2b212254705cc5c44"}, - {file = "pyobjc_framework_mapkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:91976c6dbc8cbb020e059a0ccdeab8933184712f77164dbad5a5526c1a49599d"}, - {file = "pyobjc_framework_mapkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b6fa1c4fffc3ae91adb965731a0cc943b3b6e82c8f21919a53a68b43a67b534"}, - {file = "pyobjc_framework_mapkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1dc27d315849ac96647d13c82eeefce5d1d2db8c64767ce10bd3e77cbaad2291"}, - {file = "pyobjc_framework_mapkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:fb9b1d8cd5c0e8a097438369771d296de808621bc6013aa0065bc83716f5bdb0"}, - {file = "pyobjc_framework_mapkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:fe4581f5370dc7a209c1135e9c664a5a78950d3f5c39613bfb15c1e02a6258f3"}, - {file = "pyobjc_framework_mapkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0e4a30f6ff3a99d0adee3a1db29b90bec5f042823fbcd3a983c755e2ae5e25bb"}, - {file = "pyobjc_framework_mapkit-11.1.tar.gz", hash = "sha256:f3a5016f266091be313a118a42c0ea4f951c399b5259d93639eb643dacc626f1"}, + {file = "pyobjc_framework_mapkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48a5c9a95735d41a12929446fc45fd43913367faddedf852ab02e0452e06db4"}, + {file = "pyobjc_framework_mapkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e8aa82d4aae81765c05dcd53fd362af615aa04159fc7a1df1d0eac9c252cb7d5"}, + {file = "pyobjc_framework_mapkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:84ad7766271c114bdc423e4e2ff5433e5fc6771a3338b5f8e4b54d0340775800"}, + {file = "pyobjc_framework_mapkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ea210ba88bef2468adb5c8303071d86118d630bf37a29d28cf236c13c3bb85ad"}, + {file = "pyobjc_framework_mapkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dfee615b73bb687101f08e7fd839eea2aa8b241563ad4cabbcb075d12f598266"}, + {file = "pyobjc_framework_mapkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c2f47e813e81cb13e48343108ea3185a856c13bab1cb17e76d0d87568e18459b"}, + {file = "pyobjc_framework_mapkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:59a746ac2d4bb32fca301325430b37cde7959213ce1b6c3e30fa40d6085bf75a"}, + {file = "pyobjc_framework_mapkit-12.1.tar.gz", hash = "sha256:dbc32dc48e821aaa9b4294402c240adbc1c6834e658a07677b7c19b7990533c5"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreLocation = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreLocation = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-mediaaccessibility" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MediaAccessibility on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_mediaaccessibility-11.1-py2.py3-none-any.whl", hash = "sha256:cd07e7fc375ff1e8d225e0aa2bd9c2c1497a4d3aa5a80bfb13b08800fcd7f034"}, - {file = "pyobjc_framework_mediaaccessibility-11.1.tar.gz", hash = "sha256:52479a998fec3d079d2d4590a945fc78c41fe7ac8c76f1964c9d8156880565a4"}, + {file = "pyobjc_framework_mediaaccessibility-12.1-py2.py3-none-any.whl", hash = "sha256:2ff8845c97dd52b0e5cf53990291e6d77c8a73a7aac0e9235d62d9a4256916d1"}, + {file = "pyobjc_framework_mediaaccessibility-12.1.tar.gz", hash = "sha256:cc4e3b1d45e84133d240318d53424eff55968f5c6873c2c53267598853445a3f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-mediaextension" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MediaExtension on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"24.0\"" files = [ - {file = "pyobjc_framework_mediaextension-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7f8a41ae51c1c70ea273f29857adc24c1d7bafc8071f0e6b50cb12b8ec5c4eb2"}, - {file = "pyobjc_framework_mediaextension-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:915c0cbb04913beb1f1ac8939dc0e615da8ddfba3927863a476af49f193415c5"}, - {file = "pyobjc_framework_mediaextension-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:06cb19004413a4b08dd75cf1e5dadea7f2df8d15feeeb7adb529d0cf947fa789"}, - {file = "pyobjc_framework_mediaextension-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:40f1440ccc8da6deb80810866f8c807c17567db67b53e1576ea3a3b1330c85f9"}, - {file = "pyobjc_framework_mediaextension-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:29edab42d9ecd394ac26f2ae2dfd7e2118452fc60a5623843919c1e9659c9dbc"}, - {file = "pyobjc_framework_mediaextension-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:5efd284932ed0e7cfbca90a142b84a3966c73e51308688f8c230af41f9fb8c39"}, - {file = "pyobjc_framework_mediaextension-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:ca3a3ef1f3a759b53f297ccd701d29091eec66cc629a2b48c9acbe6c297bf256"}, - {file = "pyobjc_framework_mediaextension-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b410d033cb0b78b3708554189cec216b88c0b0a5c89ef586150971ff736cecc"}, - {file = "pyobjc_framework_mediaextension-11.1.tar.gz", hash = "sha256:85a1c8a94e9175fb364c453066ef99b95752343fd113f08a3805cad56e2fa709"}, + {file = "pyobjc_framework_mediaextension-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1aa7964ffa9e1d877a45c86692047928dbe2735188d89b52aad7d6e24b2fbcb9"}, + {file = "pyobjc_framework_mediaextension-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9555f937f2508bd2b6264cba088e2c2e516b2f94a6c804aee40e33fd89c2fb78"}, + {file = "pyobjc_framework_mediaextension-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:442bc3a759efb5c154cb75d643a5e182297093533fcdd1c24be6f64f68b93371"}, + {file = "pyobjc_framework_mediaextension-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0f3bdca0eb11923efc1e3b95beb1e6e01c675fd7809ed7ef0b475334e3562931"}, + {file = "pyobjc_framework_mediaextension-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0101b8495051bac9791a0488530386eefe9c722477a5239c5bd208967d0eaa67"}, + {file = "pyobjc_framework_mediaextension-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4f66719c97f508c619368377d768266c58cc783cf5fc51bd9d8e5e0cad0c824c"}, + {file = "pyobjc_framework_mediaextension-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:eef6ab5104fdfb257e17a73c2e7c11b0db09a94ced24f2a4948e1d593ec6200e"}, + {file = "pyobjc_framework_mediaextension-12.1.tar.gz", hash = "sha256:44409d63cc7d74e5724a68e3f9252cb62fd0fd3ccf0ca94c6a33e5c990149953"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-AVFoundation = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-AVFoundation = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" [[package]] name = "pyobjc-framework-medialibrary" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MediaLibrary on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_medialibrary-11.1-py2.py3-none-any.whl", hash = "sha256:779be84bd280f63837ce02028ca46b41b090902aa4205887ffd5777f49377669"}, - {file = "pyobjc_framework_medialibrary-11.1.tar.gz", hash = "sha256:102f4326f789734b7b2dfe689abd3840ca75a76fb8058bd3e4f85398ae2ce29d"}, + {file = "pyobjc_framework_medialibrary-12.1-py2.py3-none-any.whl", hash = "sha256:1f03ad6802a5c6e19ee3208b065689d3ec79defe1052cb80e00f54e1eff5f2a0"}, + {file = "pyobjc_framework_medialibrary-12.1.tar.gz", hash = "sha256:690dcca09b62511df18f58e8566cb33d9652aae09fe63a83f594bd018b5edfcd"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-mediaplayer" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MediaPlayer on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"16.0\"" files = [ - {file = "pyobjc_framework_mediaplayer-11.1-py2.py3-none-any.whl", hash = "sha256:b655cf537ea52d73209eb12935a047301c30239b318a366600f0f44335d51c9a"}, - {file = "pyobjc_framework_mediaplayer-11.1.tar.gz", hash = "sha256:d07a634b98e1b9eedd82d76f35e616525da096bd341051ea74f0971e0f2f2ddd"}, + {file = "pyobjc_framework_mediaplayer-12.1-py2.py3-none-any.whl", hash = "sha256:85d9baec131807bfdf0f4c24d4b943e83cce806ab31c95c7e19c78e3fb7eefc8"}, + {file = "pyobjc_framework_mediaplayer-12.1.tar.gz", hash = "sha256:5ef3f669bdf837d87cdb5a486ec34831542360d14bcba099c7c2e0383380794c"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-AVFoundation = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-AVFoundation = ">=12.1" [[package]] name = "pyobjc-framework-mediatoolbox" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MediaToolbox on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_mediatoolbox-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c6beb3be7bb3e899b8e6e7c328c5d94e706b64f10023a49a108d74c03d132545"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da60c0409b18dfb9fa60a60589881e1382c007700b99722926270feadcf3bfc1"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2867c91645a335ee29b47e9c0e9fd3ea8c9daad0c0719c50b8bf244d76998056"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bf26348d20caef38efb9cfc02d28af83c930b2f2c9581407f8ec04b3d8321a7a"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:975de470af8e52104bd1548eb9b4b0ef98524f35a6263c0bb4182797b9c5975b"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d781e45fb1a7e532bcbae38c0f491629eaa641cdc226019544123b51794baf34"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e30fd2ffdea1b2c7c314d07266bce7614197c2b3ffd5b09f7012e7df7aa5c7a6"}, - {file = "pyobjc_framework_mediatoolbox-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e9efec4dc4f29aa17d6daf53377b6f375d3afc027c2cdc409b5e9f061934099c"}, - {file = "pyobjc_framework_mediatoolbox-11.1.tar.gz", hash = "sha256:97834addc5179b3165c0d8cd74cc97ad43ed4c89547724216426348aca3b822a"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91e039f988d2fd8cb852ee880e853a90902bb0fe9c337d1947241b79db145244"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74de0cb2d5aaa77e81f8b97eab0f39cd2fab5bf6fa7c6fb5546740cbfb1f8c1f"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d7bcfeeff3fbf7e9e556ecafd8eaed2411df15c52baf134efa7480494e6faf6d"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1529a754cdb5b32797d297c0bf6279c7c14a3f7088f2dfbded09edcbfda19838"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:13afec7d9f094ca5642e32b98680d1ee59aaa11a3d694cb1a6e454f72003f51c"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:59921d4155a88d4acd04e80497707ac0208af3ff41574acba68214376e9fca23"}, + {file = "pyobjc_framework_mediatoolbox-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d99bf31c46b382f466888d1d80f738309916cbb83be0b4f1ccab5200de8f06c9"}, + {file = "pyobjc_framework_mediatoolbox-12.1.tar.gz", hash = "sha256:385b48746a5f08756ee87afc14037e552954c427ed5745d7ece31a21a7bad5ab"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-metal" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Metal on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_metal-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9c77f71b7499a27f90d43a34ccd41de15c1ee8c33f9fb4293e1395d88c2aaae1"}, - {file = "pyobjc_framework_metal-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:157a0052be459ffb35a3687f77a96ea87b42caf4cdd0b9f7245242b100edb4f0"}, - {file = "pyobjc_framework_metal-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f3aae0f9a4192a7f4f158dbee126ab5ef63a81bf9165ec63bc50c353c8d0e6f"}, - {file = "pyobjc_framework_metal-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d9b24d0ddb98b34a9a19755e5ca507c62fcef40ee5eae017e39be29650137f8c"}, - {file = "pyobjc_framework_metal-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:de71b46062cb533be2c025cd6018fd4db9d7fd6a65bd67131d8e484c3616321a"}, - {file = "pyobjc_framework_metal-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:b4c4dcab1db5750575a49a0a903528ea64b5bb93a9f3aaac5c810117a9c07e9c"}, - {file = "pyobjc_framework_metal-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:432fefd3b27ab58c703b2f07afbc4690af815a9a8b4f8a997c4aefa8652e71d7"}, - {file = "pyobjc_framework_metal-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:802539496ff504e5bd43b65acbe98268c5e20994e0d343e388f94ef510e16f50"}, - {file = "pyobjc_framework_metal-11.1.tar.gz", hash = "sha256:f9fd3b7574a824632ee9b7602973da30f172d2b575dd0c0f5ef76b44cfe9f6f9"}, + {file = "pyobjc_framework_metal-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d563b540ef659176938f0eaa7d8353d5b7d4235aa76fc7fddb1beb00391c0905"}, + {file = "pyobjc_framework_metal-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:59e10f9b36d2e409f80f42b6175457a07b18a21ca57ff268f4bc519cd30db202"}, + {file = "pyobjc_framework_metal-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38ab566b5a2979a43e13593d3eb12000a45e574576fe76996a5e1eb75ad7ac78"}, + {file = "pyobjc_framework_metal-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2f04a1a687cc346d23f3baf1ec56e3f42206709b590058d9778b52d45ca1c8ab"}, + {file = "pyobjc_framework_metal-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3f3aa0848f4da46773952408b4814a440b210dc3f67f5ec5cfc0156ca2c8c0b6"}, + {file = "pyobjc_framework_metal-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2440db9b7057b6bafbabe8a2c5dde044865569176058ee34a7d138df0fc96c8c"}, + {file = "pyobjc_framework_metal-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:476eeba3bebc2b3010e352b6bd28e3732432a3d5a8d5c3fb1cebd257dc7ea41e"}, + {file = "pyobjc_framework_metal-12.1.tar.gz", hash = "sha256:bb554877d5ee2bf3f340ad88e8fe1b85baab7b5ec4bd6ae0f4f7604147e3eae7"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-metalfx" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MetalFX on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_metalfx-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fae511ea96f4ce8aff89ee71294c26294863b5a87b6665e9b4c1b47fd7ebe6ea"}, - {file = "pyobjc_framework_metalfx-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbfca74f437fcde89de85d14de33c2e617d3084f5fc2b4d614a700e516324f55"}, - {file = "pyobjc_framework_metalfx-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:60e1dcdf133d2504d810c3a9ba5a02781c9d54c2112a9238de8e3ca4e8debf31"}, - {file = "pyobjc_framework_metalfx-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fdced91f6b2012c556db954de0e17f6d7985d52b4af83262f4d083bcd87aa01c"}, - {file = "pyobjc_framework_metalfx-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e1b2819bd6a66ba55fb7019b45d38a803ea21b8258fa41c8e9ad7c28cfe74092"}, - {file = "pyobjc_framework_metalfx-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:aedfee1218b5784b010d618332a2cc088ba2ff9414eaa06e5db465eb5ef0aa43"}, - {file = "pyobjc_framework_metalfx-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:934cbc969182c57f5094389fe4afe6695595757d0d61f1ab663257475fdcc593"}, - {file = "pyobjc_framework_metalfx-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:795c365221fdc9583e7e33f4512782f8b2666f16f8a784d062b6b44007f42bda"}, - {file = "pyobjc_framework_metalfx-11.1.tar.gz", hash = "sha256:555c1b895d4ba31be43930f45e219a5d7bb0e531d148a78b6b75b677cc588fd8"}, + {file = "pyobjc_framework_metalfx-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c28d875f8817cb80c44afaebdbc2960af66ea8eef63e0236fab3dde9be685d50"}, + {file = "pyobjc_framework_metalfx-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ec3f7ab036eae45e067fbf209676f98075892aa307d73bb9394304960746cd2"}, + {file = "pyobjc_framework_metalfx-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a4418ae5c2eb77ec00695fa720a547638dc252dfd77ecb6feb88f713f5a948fd"}, + {file = "pyobjc_framework_metalfx-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d443b0ee06de1b21a3ec5adab315840e71d52a74f8585090200228ab2fa1e59d"}, + {file = "pyobjc_framework_metalfx-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dcd334b42c5c50ec88e049f1b0bf43544b52e3ac09fd57b712fec8f63507190e"}, + {file = "pyobjc_framework_metalfx-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b5c4d81ebe71be69db838041ec93c12fb0458fe68a06f61f87a4d892135953dc"}, + {file = "pyobjc_framework_metalfx-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:795f081c558312f51079de2d739412d286229f421282cfab36e195fef557f2ca"}, + {file = "pyobjc_framework_metalfx-12.1.tar.gz", hash = "sha256:1551b686fb80083a97879ce0331bdb1d4c9b94557570b7ecc35ebf40ff65c90b"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Metal = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Metal = ">=12.1" [[package]] name = "pyobjc-framework-metalkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MetalKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_metalkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0be12860e68d960631bba4704b82670e4964191b5a20dbb48b4e1d840553ea9"}, - {file = "pyobjc_framework_metalkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:95abb993d17be7a9d1174701594cc040e557983d0a0e9f49b1dfa9868ef20ed6"}, - {file = "pyobjc_framework_metalkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4854cf74fccf6ce516b49bf7cf8fc7c22da9a3743914a2f4b00f336206ad47ec"}, - {file = "pyobjc_framework_metalkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:62e261b7798b276fee1fee065030a5d19d173863e9c697a80d1fc9a22258ec2c"}, - {file = "pyobjc_framework_metalkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b8a378135566e3c48838c19044e17ed2598a4050516ee1c23eee7d42439ef3c8"}, - {file = "pyobjc_framework_metalkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:ce886f3966144774d9222148eaf29fb08097d7dab5658186ded597b7c088f927"}, - {file = "pyobjc_framework_metalkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3e0776886fcd79fe7f0c55c718ebcdf073ac3e05d03040ab284ee09902fe1c70"}, - {file = "pyobjc_framework_metalkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6325954c5aeb3ff86d664abff8f5b8238f9ff53aadba21fd801db51c72e78ecd"}, - {file = "pyobjc_framework_metalkit-11.1.tar.gz", hash = "sha256:8811cd81ee9583b9330df4f2499a73dcc53f3359cb92767b409acaec9e4faa1e"}, + {file = "pyobjc_framework_metalkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8d2cfdf2dc4e8fc229dafe7c76787caa5430a0588d205bc9b61affd2d35d26a"}, + {file = "pyobjc_framework_metalkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:28636454f222d9b20cb61f6e8dc1ebd48237903feb4d0dbdf9d7904c542475e5"}, + {file = "pyobjc_framework_metalkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c4869076571d94788fe539fabfdd568a5c8e340936c7726d2551196640bd152"}, + {file = "pyobjc_framework_metalkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4dec94431ee888682115fe88ae72fca8bffc5df0957e3c006777c1d8267f65c3"}, + {file = "pyobjc_framework_metalkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d16958c0d4e2a75e1ea973de8951c775da1e39e378a7a7762fbce1837bf3179c"}, + {file = "pyobjc_framework_metalkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a1b8ac9582b65d2711836b56dd24ce450aa740b0c478da9ee0621cc4c64e64cb"}, + {file = "pyobjc_framework_metalkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3d41ab59184d1a79981c5fb15d042750047a1a73574efa26179d7e174ddeaca6"}, + {file = "pyobjc_framework_metalkit-12.1.tar.gz", hash = "sha256:14cc5c256f0e3471b412a5b3582cb2a0d36d3d57401a8aa09e433252d1c34824"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Metal = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Metal = ">=12.1" [[package]] name = "pyobjc-framework-metalperformanceshaders" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MetalPerformanceShaders on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:045efaf395f7f08380a2a16cd21d75a7c295edb0311728cf37133b6c1842f1ec"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:81ec1f85c55d11529008e6a0fb1329d5184620f04d89751c11bf14d7dd9798ee"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:06b2a4e446fe859e30f7efc7ccfbaefd443225a6ec53d949a113a6a4acc16c4c"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:97be4bd0ded06c663205bd1cf821e148352346f147da48dba44cf7680f0ea23b"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c905a3f5a34a95c1fd26bf07da505ed84b9b0a0c88a8f004914d9173f5037142"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:21ca31e4246e491df788f00978744d37db975266065f7ccbf393f027b4c6e248"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:c651e62ce58e75a88cfd287357fdd8d9a7f729c87248c8f43ce16025986afe6a"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:88e0d220fae47f3f9bbafb44435e5da532cbfb936b42c694d8bfc20a0e462237"}, - {file = "pyobjc_framework_metalperformanceshaders-11.1.tar.gz", hash = "sha256:8a312d090a0f51651e63d9001e6cc7c1aa04ceccf23b494cbf84b7fd3d122071"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b7a3a0dbe2a26c2c579e28124ec6ddd0d664a9557cbf64029d48b766d5af0209"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0159a6f731dc0fd126481a26490683586864e9d47c678900049a8ffe0135f56"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c00e786c352b3ff5d86cf0cf3a830dc9f6fc32a03ae1a7539d20d11324adb2e8"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:240321f2fad1555b5ede3aed938c9f37da40a57fc3e7e9c96a45658dc12c3771"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0aa287ee357fe5bd5660b3d0688f947a768cda8565dbbca3b876307b9876639e"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5d5a0a5c859c5493d597842f3d011c59bf7c10d04a29852016298364fca9e16e"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c23b3a0f869c730e50851468a082014f1b0b3d4433d5d15ac28d6a736084026c"}, + {file = "pyobjc_framework_metalperformanceshaders-12.1.tar.gz", hash = "sha256:b198e755b95a1de1525e63c3b14327ae93ef1d88359e6be1ce554a3493755b50"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Metal = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Metal = ">=12.1" [[package]] name = "pyobjc-framework-metalperformanceshadersgraph" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MetalPerformanceShadersGraph on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_metalperformanceshadersgraph-11.1-py2.py3-none-any.whl", hash = "sha256:9b8b014e8301c2ae608a25f73bbf23c8f3f73a6f5fdbafddad509a21b84df681"}, - {file = "pyobjc_framework_metalperformanceshadersgraph-11.1.tar.gz", hash = "sha256:d25225aab4edc6f786b29fe3d9badc4f3e2d0caeab1054cd4f224258c1b6dbe2"}, + {file = "pyobjc_framework_metalperformanceshadersgraph-12.1-py2.py3-none-any.whl", hash = "sha256:85a1c7a6114ada05c7924b3235a1a98c45359410d148097488f15aee5ebb6ab9"}, + {file = "pyobjc_framework_metalperformanceshadersgraph-12.1.tar.gz", hash = "sha256:b8fd017b47698037d7b172d41bed7a4835f4c4f2a288235819d200005f89ee35"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-MetalPerformanceShaders = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-MetalPerformanceShaders = ">=12.1" [[package]] name = "pyobjc-framework-metrickit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MetricKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_metrickit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:41896afbbaf6ad817b3f1c595f4c728026bf04a0e0adaafc5157b3a4d078cb76"}, - {file = "pyobjc_framework_metrickit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a5d2b394f7acadd17d8947d188106424f59393b45dd4a842ac3cc50935170e3e"}, - {file = "pyobjc_framework_metrickit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a034e6b982e915da881edef87d71b063e596511d52aef7a32c683571f364156e"}, - {file = "pyobjc_framework_metrickit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:95e98e96b8f122b0141e84f13ae9e0f91d09d0803b1c093fdc7d19123f000f9e"}, - {file = "pyobjc_framework_metrickit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:14de8dcaa107fe15546df91b1f7d51dc398169c3d1b06e02291fdb8722c6bf41"}, - {file = "pyobjc_framework_metrickit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:75c5a62abc535387eea6a1e1612cfa5b1d59512ebfa8a3352596d481b18cc714"}, - {file = "pyobjc_framework_metrickit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:92483af233a2c31ef73dd0f7a32988a323f9560699f2f1c6c10a8a282a7b9cfd"}, - {file = "pyobjc_framework_metrickit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:026e9bb1773452027c23dc5de50d45b09e609b317b4b45fcde9566a4fa0f3989"}, - {file = "pyobjc_framework_metrickit-11.1.tar.gz", hash = "sha256:a79d37575489916c35840e6a07edd958be578d3be7a3d621684d028d721f0b85"}, + {file = "pyobjc_framework_metrickit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c074060cef54004451a1f919dfc6ef46b5479ead464ae791480f8d1d044a8dc"}, + {file = "pyobjc_framework_metrickit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da6650afd9523cf7a9cae177f4bbd1ad45cc122d97784785fa1482847485142c"}, + {file = "pyobjc_framework_metrickit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3ec96e9ec7dc37fbce57dae277f0d89c66ffe1c3fa2feaca1b7125f8b2b29d87"}, + {file = "pyobjc_framework_metrickit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:884afb6ec863883318975fda38db9d741b8da5f64a2b8c34bf8edc5ff56019d4"}, + {file = "pyobjc_framework_metrickit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:37674b0e049035d8b32d0221d0afbfedd3f643e4a2ee74b9a0e4e6d1b94fcd69"}, + {file = "pyobjc_framework_metrickit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f6cde78ba1a401660fe0e3a945d1941efef255c1021a8772a838aceb31bd74e6"}, + {file = "pyobjc_framework_metrickit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8f407172e1ecc8ee63afadda477a0f1c633c09be761edcadab8a9d1eebddd27c"}, + {file = "pyobjc_framework_metrickit-12.1.tar.gz", hash = "sha256:77841daf6b36ba0c19df88545fd910c0516acf279e6b7b4fa0a712a046eaa9f1"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-mlcompute" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MLCompute on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_mlcompute-11.1-py2.py3-none-any.whl", hash = "sha256:975150725e919f8d3d33f830898f3cd2fd19a440999faab320609487f4eae19d"}, - {file = "pyobjc_framework_mlcompute-11.1.tar.gz", hash = "sha256:f6c4c3ea6a62e4e3927abf9783c40495aa8bb9a8c89def744b0822da58c2354b"}, + {file = "pyobjc_framework_mlcompute-12.1-py2.py3-none-any.whl", hash = "sha256:4f0fc19551d710a03dfc4c7129299897544ff8ea76db6c7539ecc2f9b2571bde"}, + {file = "pyobjc_framework_mlcompute-12.1.tar.gz", hash = "sha256:3281db120273dcc56e97becffd5cedf9c62042788289f7be6ea067a863164f1e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-modelio" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ModelIO on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_modelio-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:deb2d703f092a6f2b0b7d5044b0c3825a4c2c2f068f38bc2052a76e93f777bb0"}, - {file = "pyobjc_framework_modelio-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4365fb96eb42b71c12efdfa2ff9d44755d5c292b8d1c78b947833d84271e359f"}, - {file = "pyobjc_framework_modelio-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5d5e11389bde0852490b2a37896aaf9eb674b2a3586f2c572f9101cecb7bc576"}, - {file = "pyobjc_framework_modelio-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:34fabde55d28aa8a12dd4476ad40182513cf87ee2fa928043aa6702961de302b"}, - {file = "pyobjc_framework_modelio-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:327e1f3020001fd15bfbf4d4228581a8f64bd85872fd697b7c306343c11e25a6"}, - {file = "pyobjc_framework_modelio-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:214a4078950bc7b86a1ea70504ecf292cccebe6515c70023efdddaaa6423f455"}, - {file = "pyobjc_framework_modelio-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1b1393ddb315c0e8bed3f6ce4e4b355869a30c81ff79bda3ca3a201c0fd06dad"}, - {file = "pyobjc_framework_modelio-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d9acc1738280dfaa34bd3de6dd361200302d63b98ecec9a3d10fa888b6f067e1"}, - {file = "pyobjc_framework_modelio-11.1.tar.gz", hash = "sha256:fad0fa2c09d468ac7e49848e144f7bbce6826f2178b3120add8960a83e5bfcb7"}, + {file = "pyobjc_framework_modelio-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e25d153ab231ca95954e3d12082f48aea4ec72db48269421011679f926638d07"}, + {file = "pyobjc_framework_modelio-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1c2c99d47a7e4956a75ce19bddbe2d8ada7d7ce9e2f56ff53fc2898367187749"}, + {file = "pyobjc_framework_modelio-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:68d971917c289fdddf69094c74915d2ccb746b42b150e0bdc16d8161e6164022"}, + {file = "pyobjc_framework_modelio-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dad6e914b6efe8ea3d2cd10029c4eb838f1ad6a12344787e8db70c4149df8cfc"}, + {file = "pyobjc_framework_modelio-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f00b739f9333d611e7124acf95491bdf025dd32ba7c48b7521f6845b92e2dcce"}, + {file = "pyobjc_framework_modelio-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5250e7f58cc71ca8928b33a00ac0dc56ca0eead97507f4bfcf777582a4b05e39"}, + {file = "pyobjc_framework_modelio-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:aa76942301b2115c8904bcb10c73b19d10d7731ea35e6155cbfd6934d7c91e4b"}, + {file = "pyobjc_framework_modelio-12.1.tar.gz", hash = "sha256:d041d7bca7c2a4526344d3e593347225b7a2e51a499b3aa548895ba516d1bdbb"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-multipeerconnectivity" -version = "11.1" +version = "12.1" description = "Wrappers for the framework MultipeerConnectivity on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:092fc396d235a8f3513b2ba4f8ff35fbd325d858eb9babe4df9c07d063ed647e"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b3c9d4d36e0c142b4ce91033740ed5bca19fe7ec96870d90610d2942ecd3cd39"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:970031deb3dbf8da1fcb04e785d4bd2eeedae8f6677db92881df6d92b05c31d6"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c92c95ea611d5272ab37fd73bc8e68c3d8fde515a75b97d8b22dafa8acbc7daf"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:296e10d289887cc4141c660f884cced1ec4ce64a19b3e406f13f6ce453a9425f"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:35c1a4a4b16df68b658b8531f97799995816a5bf49efd66805e3057b9bb9e474"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:c28ad5c0c6d28cbc897aaebcc5f14798762aa9fec7f9110171570fef4d8d8a36"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:04307a8c80a9fba73360ef8981c67410c4d395418478976fead05161fe12f7b1"}, - {file = "pyobjc_framework_multipeerconnectivity-11.1.tar.gz", hash = "sha256:a3dacca5e6e2f1960dd2d1107d98399ff81ecf54a9852baa8ec8767dbfdbf54b"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39eff9abbd40cb7306cfbc6119a95ce583074102081571c6c90569968e655787"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7372e505ed050286aeb83d7e158fda65ad379eae12e1526f32da0a260a8b7d06"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c3bd254a16debed321debf4858f9c9b7d41572ddf1058a4bacf6a5bcfedeeff"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:25169a2fded90d13431db03787ac238b4ed551c44f7656996f8dfb6b6986b997"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3a6c2d233ecda3127bd6b6ded289ef0d1fa6ddc3acbab7f8af996c96090f7bfc"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:014f92d7e176154531c3173cf7113b6be374c041646c4b86d93afb84d2ea334c"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6490651224d1403d96e52ca3aed041b79b5456e3261abd9cb225c1fbc1893a69"}, + {file = "pyobjc_framework_multipeerconnectivity-12.1.tar.gz", hash = "sha256:7123f734b7174cacbe92a51a62b4645cc9033f6b462ff945b504b62e1b9e6c1c"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-naturallanguage" -version = "11.1" +version = "12.1" description = "Wrappers for the framework NaturalLanguage on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_naturallanguage-11.1-py2.py3-none-any.whl", hash = "sha256:65a780273d2cdd12a3fa304e9c9ad822cb71facd9281f1b35a71640c53826f7c"}, - {file = "pyobjc_framework_naturallanguage-11.1.tar.gz", hash = "sha256:ab1fc711713aa29c32719774fc623bf2d32168aed21883970d4896e901ff4b41"}, + {file = "pyobjc_framework_naturallanguage-12.1-py2.py3-none-any.whl", hash = "sha256:a02ef383ec88948ca28f03ab8995523726b3bc75c49f593b5c89c218bcbce7ce"}, + {file = "pyobjc_framework_naturallanguage-12.1.tar.gz", hash = "sha256:cb27a1e1e5b2913d308c49fcd2fd04ab5ea87cb60cac4a576a91ebf6a50e52f6"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-netfs" -version = "11.1" +version = "12.1" description = "Wrappers for the framework NetFS on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_netfs-11.1-py2.py3-none-any.whl", hash = "sha256:f202e8e0c2e73516d3eac7a43b1c66f9911cdbb37ea32750ed197d82162c994a"}, - {file = "pyobjc_framework_netfs-11.1.tar.gz", hash = "sha256:9c49f050c8171dc37e54d05dd12a63979c8b6b565c10f05092923a2250446f50"}, + {file = "pyobjc_framework_netfs-12.1-py2.py3-none-any.whl", hash = "sha256:0021f8b141e693d3821524c170e9c645090eb320e80c2935ddb978a6e8b8da81"}, + {file = "pyobjc_framework_netfs-12.1.tar.gz", hash = "sha256:e8d0c25f41d7d9ced1aa2483238d0a80536df21f4b588640a72e1bdb87e75c1e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-network" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Network on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_network-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:53469903051aafbdd099c57c75b825f04167f1e3889634806af2bb762081d704"}, - {file = "pyobjc_framework_network-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e56691507584c09cdb50f1cd69b5f57b42fd55c396e8c34fab8c5b81b44d36ed"}, - {file = "pyobjc_framework_network-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8cdc9be8ec3b0ae95e5c649e4bbcdf502cffd357dacc566223be707bdd5ac271"}, - {file = "pyobjc_framework_network-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:04582fef567392c2a10dcee9519356b79b17ab73ded050d14592da938d95b01a"}, - {file = "pyobjc_framework_network-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:acf16738ab447a31a9f6167171b2a00d65a9370a8e84482d435b2b31c58eed94"}, - {file = "pyobjc_framework_network-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:cafdf953aa80934d30726baa681c1af61daf2cc9fe9e3ca582f4e3796bd0d053"}, - {file = "pyobjc_framework_network-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2e45d8fdc0ad553cc35839cae5eab221fe5f7ce28758d693b8159e619ea06eac"}, - {file = "pyobjc_framework_network-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:141383b2eb048ff3d70ca94fe045d0d9cba896856f74e18f0639b84ae6b3ff07"}, - {file = "pyobjc_framework_network-11.1.tar.gz", hash = "sha256:f6df7a58a1279bbc976fd7e2efe813afbbb18427df40463e6e2ee28fba07d2df"}, + {file = "pyobjc_framework_network-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:07264f1dc5d7c437dfbbbf9302a60ead87bbce14692c4cc20b2a259a9fe20b3d"}, + {file = "pyobjc_framework_network-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d1ad948b9b977f432bf05363381d7d85a7021246ebf9d50771b35bf8d4548d2b"}, + {file = "pyobjc_framework_network-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5e53aad64eae2933fe12d49185d66aca62fb817abf8a46f86b01e436ce1b79e4"}, + {file = "pyobjc_framework_network-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e341beb32c7f95ed3e38f00cfed0a9fe7f89b8d80679bf2bd97c1a8d2280180a"}, + {file = "pyobjc_framework_network-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8344e3b57afccc762983e4629ec5eff72a3d7292afa8169a3e2aada3348848a8"}, + {file = "pyobjc_framework_network-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:25e20ec81e23699e1182808384b8e426cb3ae9adaf639684232fc205edb48183"}, + {file = "pyobjc_framework_network-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:39be2f25b13d2d530e893f06ddd3f277b83233020a0ab58413554fe8e0496624"}, + {file = "pyobjc_framework_network-12.1.tar.gz", hash = "sha256:dbf736ff84d1caa41224e86ff84d34b4e9eb6918ae4e373a44d3cb597648a16a"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-networkextension" -version = "11.1" +version = "12.1" description = "Wrappers for the framework NetworkExtension on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_networkextension-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7a679a2b17038de2fc3d66fce68361fb8152bd4e18cf95c15ccdbdef83d9da74"}, - {file = "pyobjc_framework_networkextension-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:55e5ca70c81a864896b603cfcabf4c065783f64395460d16fe16db2bf0866d60"}, - {file = "pyobjc_framework_networkextension-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:853458aae8b43634461f6c44759750e2dc784c9aba561f9468ab14529b5a7fbe"}, - {file = "pyobjc_framework_networkextension-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d3d6e9810cb01c3a8f99aed5ee2d75f6f785204338b99b32e5f64370a18cc9dd"}, - {file = "pyobjc_framework_networkextension-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7dea914e7b26e28c6e4f8ffd03dd8fce612d38876043944fb0cf191774634566"}, - {file = "pyobjc_framework_networkextension-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:4c9d6c08b8f1cf374351bcecf8bbc91e6a8999b84d52f30964f4f1e6a323943c"}, - {file = "pyobjc_framework_networkextension-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:6d730540d97662867f3cfd90c9a1e69a6adae0f5eb554c1b94a1b067e7ebc728"}, - {file = "pyobjc_framework_networkextension-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:77226fd8bc78b65e3adbdce32d2838cd819f2b570fbe845b895cff6ca1e7bd44"}, - {file = "pyobjc_framework_networkextension-11.1.tar.gz", hash = "sha256:2b74b430ca651293e5aa90a1e7571b200d0acbf42803af87306ac8a1c70b0d4b"}, + {file = "pyobjc_framework_networkextension-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd96684be3a942a301eb38b5f46236091c87ec9830ed8d56be434e420af45387"}, + {file = "pyobjc_framework_networkextension-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c3082c29f94ca3a05cd1f3219999ca3af9b6dece1302ccf789f347e612bb9303"}, + {file = "pyobjc_framework_networkextension-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:adc9baacfc532944d67018e381c7645f66a9fa0064939a5a841476d81422cdcc"}, + {file = "pyobjc_framework_networkextension-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:63453b38e5a795f9ff950397e5a564071c2b4fd3360d79169ab017755bbb932a"}, + {file = "pyobjc_framework_networkextension-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e21d8ec762ded95afaff41b68425219df55ca8c3f777b810238441a4f7c221e3"}, + {file = "pyobjc_framework_networkextension-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21076ec44790023b579f21f6b88e13388d353de98658dbb50369df53e6a9c967"}, + {file = "pyobjc_framework_networkextension-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:06d78bab27d4a7c51c9787b1f4cfcfed4d85488fcd96d93bac400bb2690ddceb"}, + {file = "pyobjc_framework_networkextension-12.1.tar.gz", hash = "sha256:36abc339a7f214ab6a05cb2384a9df912f247163710741e118662bd049acfa2e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-notificationcenter" -version = "11.1" +version = "12.1" description = "Wrappers for the framework NotificationCenter on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"14.0\"" files = [ - {file = "pyobjc_framework_notificationcenter-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:70704ba076eb30a2e25fd9d738d4ed2cf4a684c87a9129b1fc0c570301f53eee"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d44413818e7fa3662f784cdcf0730c86676dd7333b7d24a7da13d4ffcde491b"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:65fc67374a471890245c7a1d60cf67dcf160075a9c048a5d89608a8290f33b03"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f5ce98882e301adef07651ba495ddd57b661d4c0398afd39f4591c1b44673cca"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e46285290d04e84c167606ccfcb9a20c2567f5a2a6a9c6e96760fc9d561c2740"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:c3e79e9c57f130099b47bde48f26fcd90ab3b52e01d989ea15b7cdb7fa5a34d8"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:15e49491d7f091eaa643f2fd89787becbf767dd6c609aa3d01e53132cb1d9fa1"}, - {file = "pyobjc_framework_notificationcenter-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bbb96dfca9f93b0f9a9de2c4a2c87128b60d6365bf79121e08bebd35c20685f5"}, - {file = "pyobjc_framework_notificationcenter-11.1.tar.gz", hash = "sha256:0b938053f2d6b1cea9db79313639d7eb9ddd5b2a5436a346be0887e75101e717"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f227d4b2e197f614b64302faea974f25434827da30f6d46b3a8d73cb3788cf69"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:84e254f2a56ff5372793dea938a2b2683dd0bc40c5107fede76f9c2c1f6641a2"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82a735bd63f315f0a56abd206373917b7d09a0ae35fd99f1639a0fac4c525c0a"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:06470683f568803f55f1646accfbf5eaa3fda56d15f27fca31bdbff4eaa8796c"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:bdf87e5f027bec727b24bb1764a9933af9728862f6a0e9a7f4a1835061f283dd"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9495b1b0820a3e82bfcd0331b92bc29e4e4ca3a4e58d6ec0e1eda6c301ec4460"}, + {file = "pyobjc_framework_notificationcenter-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1aca78efbf3ceab878758ec11dacef0c85629f844eee9e21645319dd98fd3673"}, + {file = "pyobjc_framework_notificationcenter-12.1.tar.gz", hash = "sha256:2d09f5ab9dc39770bae4fa0c7cfe961e6c440c8fc465191d403633dccc941094"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-opendirectory" -version = "11.1" +version = "12.1" description = "Wrappers for the framework OpenDirectory on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_opendirectory-11.1-py2.py3-none-any.whl", hash = "sha256:bb4219b0d98dff4a952c50a79b1855ce74e1defd0d241f3013def5b09256fd7b"}, - {file = "pyobjc_framework_opendirectory-11.1.tar.gz", hash = "sha256:319ac3424ed0350be458b78148914468a8fc13a069d62e7869e3079108e4f118"}, + {file = "pyobjc_framework_opendirectory-12.1-py2.py3-none-any.whl", hash = "sha256:b5b5a5cf3cc2fb25147b16b79f046b90e3982bf3ded1b210a993d8cfdba737c4"}, + {file = "pyobjc_framework_opendirectory-12.1.tar.gz", hash = "sha256:2c63ce5dd179828ef2d8f9e3961da3bfa971a57db07a6c34eedc296548a928bb"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-osakit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework OSAKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_osakit-11.1-py2.py3-none-any.whl", hash = "sha256:1b0c0cc537ffb8a8365ef9a8b46f717a7cc2906414b6a3983777a6c0e4d53d5a"}, - {file = "pyobjc_framework_osakit-11.1.tar.gz", hash = "sha256:920987da78b67578367c315d208f87e8fab01dd35825d72242909f29fb43c820"}, + {file = "pyobjc_framework_osakit-12.1-py2.py3-none-any.whl", hash = "sha256:c49165336856fd75113d2e264a98c6deb235f1bd033eae48f661d4d832d85e6b"}, + {file = "pyobjc_framework_osakit-12.1.tar.gz", hash = "sha256:36ea6acf03483dc1e4344a0cce7250a9656f44277d12bc265fa86d4cbde01f23"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-oslog" -version = "11.1" +version = "12.1" description = "Wrappers for the framework OSLog on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_oslog-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d064b4ed8960bb65a277af16938043ebb4fb1d38fd47129bc9b9aeb6d385d4bc"}, - {file = "pyobjc_framework_oslog-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5dab25ef1cde4237cd2957c1f61c2888968e924304f7b9d9699eceeb330e9817"}, - {file = "pyobjc_framework_oslog-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7ae29c31ce51c476d3a37ca303465dd8bdfa98df2f6f951cf14c497e984a1ba9"}, - {file = "pyobjc_framework_oslog-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7174ca2cdc073e555d5f5aea3baa7410c61a83a3741eaec23e8581340037680e"}, - {file = "pyobjc_framework_oslog-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f03789f8d5638e1075652b331b8ebf98c03dfa809c57545f0313583a7688bb86"}, - {file = "pyobjc_framework_oslog-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a302272aa40d1655be635e0f0dd0ca71b5fce562dfcb88a87165a170a648b2fd"}, - {file = "pyobjc_framework_oslog-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:cade8869e185a29fb88fc48e2e5c984548433f669c1a40ec7f5640994fa36603"}, - {file = "pyobjc_framework_oslog-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2563e1e5a83f47cb62545e014c8b407dc7130c0c21a897c21db8593a8d130e09"}, - {file = "pyobjc_framework_oslog-11.1.tar.gz", hash = "sha256:b2af409617e6b68fa1f1467c5a5679ebf59afd0cdc4b4528e1616059959a7979"}, + {file = "pyobjc_framework_oslog-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4bdcba214ca33563408b7703282f9a99ca61d04bcc34d5474abc68621fd44c48"}, + {file = "pyobjc_framework_oslog-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8dd03386331fbb6b39df8941d99071da0bfeda7d10f6434d1daa1c69f0e7bb14"}, + {file = "pyobjc_framework_oslog-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:072a41d36fcf780a070f13ac2569f8bafbb5ae4792fab4136b1a4d602dd9f5b4"}, + {file = "pyobjc_framework_oslog-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d26ce39be2394695cf4c4c699e47f9b85479cf1ccb0472614bb88027803a8986"}, + {file = "pyobjc_framework_oslog-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6925e6764c6f293b69fbd4f5fd32a9810fca07d63e782c41cb4ebf05dc42977"}, + {file = "pyobjc_framework_oslog-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:16d98c49698da839b79904a2c63fee658fd4a8c4fa9223e5694270533127e8d4"}, + {file = "pyobjc_framework_oslog-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:302956914b0d28dc9d8e27c2428d46c89cde8e2c64a426cda241d4b0c64315fd"}, + {file = "pyobjc_framework_oslog-12.1.tar.gz", hash = "sha256:d0ec6f4e3d1689d5e4341bc1130c6f24cb4ad619939f6c14d11a7e80c0ac4553"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-passkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PassKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_passkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9f195a9c7d0ad46c975d22a0e3362ea6ccdb01e4cb1f81221db1037aee8225ff"}, - {file = "pyobjc_framework_passkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:67b7b1ee9454919c073c2cba7bdba444a766a4e1dd15a5e906f4fa0c61525347"}, - {file = "pyobjc_framework_passkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:779eaea4e1931cfda4c8701e1111307b14bf9067b359a319fc992b6848a86932"}, - {file = "pyobjc_framework_passkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6306dda724ca812dca70154d40f32ec9bbdaff765a12f3cc45391723efe147e"}, - {file = "pyobjc_framework_passkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d7948d5b3369b60808a85dcadffdebb0a44e8d2c4716edc10b78cb76fa762070"}, - {file = "pyobjc_framework_passkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bfff2a63850afe702ba25f661360393389ffb58e127d47488c414caa9e676aa7"}, - {file = "pyobjc_framework_passkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f6b7f3cd7c6855af1b6fc4036ae2f10779a312182107c94d36ef63c2dd4a6f87"}, - {file = "pyobjc_framework_passkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b75997fc26df9e9e5a664679ab5c0b6b52d0b88fb1e9b3fa5970f0bfaf121189"}, - {file = "pyobjc_framework_passkit-11.1.tar.gz", hash = "sha256:d2408b58960fca66607b483353c1ffbd751ef0bef394a1853ec414a34029566f"}, + {file = "pyobjc_framework_passkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b8383b36a99abea9f8d9fe05f89abca34e57d604664adc4964b1a8d6b9a0d04a"}, + {file = "pyobjc_framework_passkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cb5c8f0fdc46db6b91c51ee1f41a2b81e9a482c96a0c91c096dcb78a012b740a"}, + {file = "pyobjc_framework_passkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7e95a484ec529dbf1d44f5f7f1406502a77bda733511e117856e3dca9fa29c5c"}, + {file = "pyobjc_framework_passkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:64287e6dc54ab4c0aa8ba80a7a51762e36591602c77c6a803aee690e7464b6b2"}, + {file = "pyobjc_framework_passkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a360e98b29eee8642f3e7d973c636284c24fb2ec2c3ee56022eeae6270943be"}, + {file = "pyobjc_framework_passkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e28dcf1074cddd82c2bd3ee5c3800952ac59850578b1135b38871ff584ea9d41"}, + {file = "pyobjc_framework_passkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a8782f31254016a9b152a9d1dc7ea18187729221f6ca175927be99a65b97640e"}, + {file = "pyobjc_framework_passkit-12.1.tar.gz", hash = "sha256:d8c27c352e86a3549bf696504e6b25af5f2134b173d9dd60d66c6d3da53bb078"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-pencilkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PencilKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_pencilkit-11.1-py2.py3-none-any.whl", hash = "sha256:b7824907bbcf28812f588dda730e78f662313baf40befd485c6f2fcb49018019"}, - {file = "pyobjc_framework_pencilkit-11.1.tar.gz", hash = "sha256:9c173e0fe70179feadc3558de113a8baad61b584fe70789b263af202bfa4c6be"}, + {file = "pyobjc_framework_pencilkit-12.1-py2.py3-none-any.whl", hash = "sha256:33b88e5ed15724a12fd8bf27a68614b654ff739d227e81161298bc0d03acca4f"}, + {file = "pyobjc_framework_pencilkit-12.1.tar.gz", hash = "sha256:d404982d1f7a474369f3e7fea3fbd6290326143fa4138d64b6753005a6263dc4"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-phase" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PHASE on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_phase-11.1-py2.py3-none-any.whl", hash = "sha256:cfa61f9c6c004161913946501538258aed48c448b886adbf9ed035957d93fa15"}, - {file = "pyobjc_framework_phase-11.1.tar.gz", hash = "sha256:a940d81ac5c393ae3da94144cf40af33932e0a9731244e2cfd5c9c8eb851e3fc"}, + {file = "pyobjc_framework_phase-12.1-py2.py3-none-any.whl", hash = "sha256:99a1c1efc6644f5312cce3693117d4e4482538f65ad08fe59e41e2579b67ab17"}, + {file = "pyobjc_framework_phase-12.1.tar.gz", hash = "sha256:3a69005c572f6fd777276a835115eb8359a33673d4a87e754209f99583534475"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-AVFoundation = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-AVFoundation = ">=12.1" [[package]] name = "pyobjc-framework-photos" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Photos on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_photos-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1cd54a6b60a7ad2f810c02ec2c4d676feec4a25d08c9328ff839034b29c15bf7"}, - {file = "pyobjc_framework_photos-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:959dfc82f20513366b85cd37d8541bb0a6ab4f3bfa2f8094e9758a5245032d67"}, - {file = "pyobjc_framework_photos-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8dbfffd29cfa63a8396ede0030785c15a5bc36065d3dd98fc6176a59e7abb3d3"}, - {file = "pyobjc_framework_photos-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d8fafdb2f111f2f298e1aa0542f2d5871ce1dd481c3e9be4ed33916b38c3a"}, - {file = "pyobjc_framework_photos-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7cded282eaebd77645a4262f6fb63379c7a226d20f8f1763910b19927709aea2"}, - {file = "pyobjc_framework_photos-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3a759ebcf46493cd09e5c89c0a09096ad83ae837d9236e437571bb22ca6eab3f"}, - {file = "pyobjc_framework_photos-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:72e0ed9bc5f1890f882df55333797da95c0ed1c1d7a0fe7d869a8d4ee4e1bdfd"}, - {file = "pyobjc_framework_photos-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f6f044e52bfb0861a6ead5436383b5a24729d6d1be5fe9cdec5efa0ac82afe51"}, - {file = "pyobjc_framework_photos-11.1.tar.gz", hash = "sha256:c8c3b25b14a2305047f72c7c081ff3655b3d051f7ed531476c03246798f8156d"}, + {file = "pyobjc_framework_photos-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ed6ca0ace0d12b469f68d35dddbede445350afd13b3c582e3297792fd08ad5f8"}, + {file = "pyobjc_framework_photos-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f28db92602daac9d760067449fc9bf940594536e65ad542aec47d52b56f51959"}, + {file = "pyobjc_framework_photos-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eda8a584a851506a1ebbb2ee8de2cb1ed9e3431e6a642ef6a9543e32117d17b9"}, + {file = "pyobjc_framework_photos-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bd7906d8662af29f91c71892ae0b0cab4682a3a7ef5be1a2277d881d7b8d37d3"}, + {file = "pyobjc_framework_photos-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c822d81c778dd2a789f15d0f329cee633391c5ad766482ffbaf40d3dc57584a3"}, + {file = "pyobjc_framework_photos-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:95d5036bdaf1c50559adfa60fd715b57c68577d2574241ed1890e359849f923f"}, + {file = "pyobjc_framework_photos-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:77f181d3cb3fde9c04301c9a96693d02a139d478891e49ed76573dedf0437f49"}, + {file = "pyobjc_framework_photos-12.1.tar.gz", hash = "sha256:adb68aaa29e186832d3c36a0b60b0592a834e24c5263e9d78c956b2b77dce563"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-photosui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PhotosUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"15.0\"" files = [ - {file = "pyobjc_framework_photosui-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c2648031c62c30089ac8170a63ffbe92e6469447a488590504edd94cd51fd45a"}, - {file = "pyobjc_framework_photosui-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d93722aeb8c134569035fd7e6632d0247e1bcb18c3cc4e0a288664218f241b85"}, - {file = "pyobjc_framework_photosui-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b2f278f569dfd596a32468351411518a651d12cb91e60620094e852c525a5f10"}, - {file = "pyobjc_framework_photosui-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f0fa9c9e363c0db54957dfe4e26214379f2698caaba1e4ff4c9e3eba5e690d9"}, - {file = "pyobjc_framework_photosui-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:91aff7caae16a7a7f25e35692aa92b796155510b8a0575668e75f351fbf63a68"}, - {file = "pyobjc_framework_photosui-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e607242e09fb7d4bcad2f3eb2e88529d8f2ff7cf7341cd2c6c5b3f4d6744218e"}, - {file = "pyobjc_framework_photosui-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f11f6043c83b2c65ecad69c48844fff6368127af3956ec8df9726bbd1e5da17e"}, - {file = "pyobjc_framework_photosui-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2d92550a2bcd4491a8d4c9b345f4be49abff3e2e8eb3eaf75f2764b38e970488"}, - {file = "pyobjc_framework_photosui-11.1.tar.gz", hash = "sha256:1c7ffab4860ce3e2b50feeed4f1d84488a9e38546db0bec09484d8d141c650df"}, + {file = "pyobjc_framework_photosui-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:14a088aeb67232a2e8f8658bd52fa0ccb896a2fe7c4e580299ec2da486c597fa"}, + {file = "pyobjc_framework_photosui-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:02ca941187b2a2dcbbd4964d7b2a05de869653ed8484dc059a51cc70f520cd07"}, + {file = "pyobjc_framework_photosui-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:713e3bb25feb5ea891e67260c2c0769cab44a7f11b252023bfcf9f8c29dd1206"}, + {file = "pyobjc_framework_photosui-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5fa3ca2bc4c8609dee46e3c8fb5f3fbfb615f39fa3d710a213febec38e227758"}, + {file = "pyobjc_framework_photosui-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:713ec72b13d8399229d285ccd1e94e5ea2627cf88858977a2a91cc94d1affcd6"}, + {file = "pyobjc_framework_photosui-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a8e0320908f497d1e548336569f435afd27ed964e65b2aefa3a2d2ea4c041da2"}, + {file = "pyobjc_framework_photosui-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1b3e9226601533843d6764a7006c2f218123a9c22ac935345c6fb88691b9f78b"}, + {file = "pyobjc_framework_photosui-12.1.tar.gz", hash = "sha256:9141234bb9d17687f1e8b66303158eccdd45132341fbe5e892174910035f029a"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-preferencepanes" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PreferencePanes on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_preferencepanes-11.1-py2.py3-none-any.whl", hash = "sha256:6ee5f5a7eb294e03ea3bac522ac4b69e6dc83ceceff627a0a2d289afe1e01ad9"}, - {file = "pyobjc_framework_preferencepanes-11.1.tar.gz", hash = "sha256:6e4a55195ec9fc921e0eaad6b3038d0ab91f0bb2f39206aa6fccd24b14a0f1d8"}, + {file = "pyobjc_framework_preferencepanes-12.1-py2.py3-none-any.whl", hash = "sha256:1b3af9db9e0cfed8db28c260b2cf9a22c15fda5f0ff4c26157b17f99a0e29bbf"}, + {file = "pyobjc_framework_preferencepanes-12.1.tar.gz", hash = "sha256:b2a02f9049f136bdeca7642b3307637b190850e5853b74b5c372bc7d88ef9744"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-pubsub" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PubSub on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\" and platform_release < \"18.0\"" files = [ - {file = "pyobjc_framework_pubsub-11.1-py2.py3-none-any.whl", hash = "sha256:cea6bd9e0af46f9ea1c8d002a92e462576dd5a772a7e0688d40c7903755af11f"}, - {file = "pyobjc_framework_pubsub-11.1.tar.gz", hash = "sha256:47221f63466c523516ab5d2297dd3c644d915a77ca1f1867b0055d735486f1f8"}, + {file = "pyobjc_framework_pubsub-12.1-py2.py3-none-any.whl", hash = "sha256:6bf254217645a493edd82090dbe9ab3e4ec97b9d1416a6f126ce3c2f7d7389af"}, + {file = "pyobjc_framework_pubsub-12.1.tar.gz", hash = "sha256:dc9dea4b2e82eb8e3370b399587b6b3bb1a8b9f9361178a83d608ec82cac0d89"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-pushkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework PushKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_pushkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:48c38a7d3bef449c23aa799b70283586e0b7d9203cf17b0666bc61278b663ed2"}, - {file = "pyobjc_framework_pushkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5e2f08b667035df6b11a0a26f038610df1eebbedf9f3f111c241b5afaaf7c5fd"}, - {file = "pyobjc_framework_pushkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:21993b7e9127b05575a954faa68e85301c6a4c04e34e38aff9050f67a05c562a"}, - {file = "pyobjc_framework_pushkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bac3ee77dfbe936998f207c1579e346993485bab8849db537ed250261cf12ab3"}, - {file = "pyobjc_framework_pushkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:68c4f44354eab84cb54d43310fa65ca3a5ba68299c868378764cc50803cf2adc"}, - {file = "pyobjc_framework_pushkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:cfec36cdca24654be0465282eb31b7ff3674ea4b7f3ce696b07edbe33b000aa5"}, - {file = "pyobjc_framework_pushkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:80d5d8240b71631d81cfa96f398fae1d137be98f224739e50edaf9e5afc21a9d"}, - {file = "pyobjc_framework_pushkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:76c074efd1a6f977a4fb998786ec319a26e406e7efff1c2a14f6be89665d291a"}, - {file = "pyobjc_framework_pushkit-11.1.tar.gz", hash = "sha256:540769a4aadc3c9f08beca8496fe305372501eb28fdbca078db904a07b8e10f4"}, + {file = "pyobjc_framework_pushkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1d6cb54971c7ed73ce1d13b683d117d4aa34415563c9ca2437dcffefd489940"}, + {file = "pyobjc_framework_pushkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:03f41be8b27d06302ea487a6b250aaf811917a0e7d648cd4043fac759d027210"}, + {file = "pyobjc_framework_pushkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7bdf472a55ac65154e03f54ae0bcad64c4cf45e9b1acba62f15107f2bc994d69"}, + {file = "pyobjc_framework_pushkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f3751276cb595a9f886ed6094e06004fd11932443e345760eade09119f8e0181"}, + {file = "pyobjc_framework_pushkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:64955af6441635449c2af6c6f468c9ba5e413e1494b87617bc1e9fbd8be7e5bf"}, + {file = "pyobjc_framework_pushkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:de82e1f6e01444582ad2ca6a76aeee1524c23695f0e4f56596f9db3e9d635623"}, + {file = "pyobjc_framework_pushkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:69c7a03a706bc7fb24ca69a9f79d030927be1e5166c0d2a5a9afc1c5d82a07ec"}, + {file = "pyobjc_framework_pushkit-12.1.tar.gz", hash = "sha256:829a2fc8f4780e75fc2a41217290ee0ff92d4ade43c42def4d7e5af436d8ae82"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-quartz" -version = "11.1" +version = "12.1" description = "Wrappers for the Quartz frameworks on macOS" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\"" files = [ - {file = "pyobjc_framework_quartz-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b5ef75c416b0209e25b2eb07a27bd7eedf14a8c6b2f968711969d45ceceb0f84"}, - {file = "pyobjc_framework_quartz-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2d501fe95ef15d8acf587cb7dc4ab4be3c5a84e2252017da8dbb7df1bbe7a72a"}, - {file = "pyobjc_framework_quartz-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9ac806067541917d6119b98d90390a6944e7d9bd737f5c0a79884202327c9204"}, - {file = "pyobjc_framework_quartz-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43a1138280571bbf44df27a7eef519184b5c4183a588598ebaaeb887b9e73e76"}, - {file = "pyobjc_framework_quartz-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b23d81c30c564adf6336e00b357f355b35aad10075dd7e837cfd52a9912863e5"}, - {file = "pyobjc_framework_quartz-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:07cbda78b4a8fcf3a2d96e047a2ff01f44e3e1820f46f0f4b3b6d77ff6ece07c"}, - {file = "pyobjc_framework_quartz-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:39d02a3df4b5e3eee1e0da0fb150259476910d2a9aa638ab94153c24317a9561"}, - {file = "pyobjc_framework_quartz-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b1f451ddb5243d8d6316af55f240a02b0fffbfe165bff325628bf73f3df7f44"}, - {file = "pyobjc_framework_quartz-11.1.tar.gz", hash = "sha256:a57f35ccfc22ad48c87c5932818e583777ff7276605fef6afad0ac0741169f75"}, + {file = "pyobjc_framework_quartz-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c6f312ae79ef8b3019dcf4b3374c52035c7c7bc4a09a1748b61b041bb685a0ed"}, + {file = "pyobjc_framework_quartz-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:19f99ac49a0b15dd892e155644fe80242d741411a9ed9c119b18b7466048625a"}, + {file = "pyobjc_framework_quartz-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7730cdce46c7e985535b5a42c31381af4aa6556e5642dc55b5e6597595e57a16"}, + {file = "pyobjc_framework_quartz-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:629b7971b1b43a11617f1460cd218bd308dfea247cd4ee3842eb40ca6f588860"}, + {file = "pyobjc_framework_quartz-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:53b84e880c358ba1ddcd7e8d5ea0407d760eca58b96f0d344829162cda5f37b3"}, + {file = "pyobjc_framework_quartz-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:42d306b07f05ae7d155984503e0fb1b701fecd31dcc5c79fe8ab9790ff7e0de0"}, + {file = "pyobjc_framework_quartz-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0cc08fddb339b2760df60dea1057453557588908e42bdc62184b6396ce2d6e9a"}, + {file = "pyobjc_framework_quartz-12.1.tar.gz", hash = "sha256:27f782f3513ac88ec9b6c82d9767eef95a5cf4175ce88a1e5a65875fee799608"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-quicklookthumbnailing" -version = "11.1" +version = "12.1" description = "Wrappers for the framework QuickLookThumbnailing on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_quicklookthumbnailing-11.1-py2.py3-none-any.whl", hash = "sha256:4d1863c6c83c2a199c1dbe704b4f8b71287168f4090ed218d37dc59277f0d9c9"}, - {file = "pyobjc_framework_quicklookthumbnailing-11.1.tar.gz", hash = "sha256:1614dc108c1d45bbf899ea84b8691288a5b1d25f2d6f0c57dfffa962b7a478c3"}, + {file = "pyobjc_framework_quicklookthumbnailing-12.1-py2.py3-none-any.whl", hash = "sha256:5efe50b0318188b3a4147681788b47fce64709f6fe0e1b5d020e408ef40ab08e"}, + {file = "pyobjc_framework_quicklookthumbnailing-12.1.tar.gz", hash = "sha256:4f7e09e873e9bda236dce6e2f238cab571baeb75eca2e0bc0961d5fcd85f3c8f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-replaykit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ReplayKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_replaykit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:634b18c7b0f2ea548421307d6c59339d69094dfde9b638ce0ca3d6d3016de470"}, - {file = "pyobjc_framework_replaykit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4d88c3867349865d8a3a06ea064f15aed7e5be20d22882ac8a647d9b6959594e"}, - {file = "pyobjc_framework_replaykit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:22c6d09be9a6e758426d723a6c3658ad6bbb66f97ba9a1909bfcf29a91d99921"}, - {file = "pyobjc_framework_replaykit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7742ee18c8c9b61f5668698a05b88d25d34461fcdd95a8f669ecdfd8db8c4d42"}, - {file = "pyobjc_framework_replaykit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b503fabc33ee02117fd82c78db18cba3f0be90dea652f5553101a45185100402"}, - {file = "pyobjc_framework_replaykit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:da84e48ba5d529ae72b975f0d81c5bd5427983c2b05d3d2c7fd54a6cbdf0d0f9"}, - {file = "pyobjc_framework_replaykit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2bf2180feae500fdd6f14360200fda0b6650a4ec39fe5d84a5dde9e8cdd307b6"}, - {file = "pyobjc_framework_replaykit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4632ad736a746b7e1caadabd657200253383204beddb77609c207a788d4edbe5"}, - {file = "pyobjc_framework_replaykit-11.1.tar.gz", hash = "sha256:6919baa123a6d8aad769769fcff87369e13ee7bae11b955a8185a406a651061b"}, + {file = "pyobjc_framework_replaykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05c8e4cbda2ff22cd5180bee4a892306a4004127365b15e18335ab39e577faa8"}, + {file = "pyobjc_framework_replaykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3a2f9da6939d7695fa40de9c560c20948d31b0cc2f892fdd611fc566a6b83606"}, + {file = "pyobjc_framework_replaykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b0528c2a6188440fdc2017f0924c0a0f15d0a2f6aa295f1d1c2d6b3894c22f1d"}, + {file = "pyobjc_framework_replaykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:18af5ab59574102978790ce9ccc89fe24be9fa57579f24ed8cfc2b44ea28d839"}, + {file = "pyobjc_framework_replaykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:31c826a71b76cd7d12c3f30956c202116b0c985a19eb420e91fc1f51bedd2f72"}, + {file = "pyobjc_framework_replaykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d6d8046825149f7f2627987a1b48ac7e4c9747a15e263054de0dfde1926a0f42"}, + {file = "pyobjc_framework_replaykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9f77dc914d5aabcd9273c39777a3372175aa839a3bd7f673a0ead4b7f2cf4211"}, + {file = "pyobjc_framework_replaykit-12.1.tar.gz", hash = "sha256:95801fd35c329d7302b2541f2754e6574bf36547ab869fbbf41e408dfa07268a"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-safariservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SafariServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"16.0\"" files = [ - {file = "pyobjc_framework_safariservices-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:62e70805477b04d1abc6dfa1f22d2ee41af8a5784fa98d3dcbd9fca00b6dd521"}, - {file = "pyobjc_framework_safariservices-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a441a2e99f7d6475bea00c3d53de924143b8f90052be226aee16f1f6d9cfdc8c"}, - {file = "pyobjc_framework_safariservices-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c92eb9e35f98368ea1bfaa8cdd41138ca8b004ea5a85833390a44e5626ca5061"}, - {file = "pyobjc_framework_safariservices-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8b4d4169dd21e69246d90a42f872b7148064b63de6bbbf6bc6ddabe33f143843"}, - {file = "pyobjc_framework_safariservices-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8a4371d64052a3ffe9993a89c45f9731f86e7b6c21fd1d968815fd7930ff501a"}, - {file = "pyobjc_framework_safariservices-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:abdbe0d8a79caa994a1d2be8ea4e5a1e4c80f7d8e1f0750f9c365129d1f1a968"}, - {file = "pyobjc_framework_safariservices-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:8a6ec417d35a0600629eba97c0ab2f2d09fae171e8bca3d3d6aa1c7ff272c4d7"}, - {file = "pyobjc_framework_safariservices-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3c04a8ec1cc99f93b83d59abe451b80cb137c8106e54d37aa722064b83f8d60c"}, - {file = "pyobjc_framework_safariservices-11.1.tar.gz", hash = "sha256:39a17df1a8e1c339457f3acbff0dc0eae4681d158f9d783a11995cf484aa9cd0"}, + {file = "pyobjc_framework_safariservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:571c3c65c30dd492e49d9e561f6ba847e0b847352aeb8db0317c5b9ef84f2c88"}, + {file = "pyobjc_framework_safariservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae709cf7a72ac7b95d2f131349f852d5d7a1729a8d760ea3308883f8269a4c37"}, + {file = "pyobjc_framework_safariservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b475abc82504fc1c0801096a639562d6a6d37370193e8e4a406de9199a7cea13"}, + {file = "pyobjc_framework_safariservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:592cf5080a9e7f104d6a8d338ebf2523a961f38068f238f11783e86dc105f9c7"}, + {file = "pyobjc_framework_safariservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:097a2166f79c60633e963913722a087a13b1c5849f3173655b24a8be47039ac4"}, + {file = "pyobjc_framework_safariservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:090afa066820de497d2479a1c5bd4c8ed381eb36a615e4644e12e347ec9d9a3e"}, + {file = "pyobjc_framework_safariservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3fc553396c51a7fd60c0a2e2b1cdb3fecab135881115adf2f1bbaeb64f801863"}, + {file = "pyobjc_framework_safariservices-12.1.tar.gz", hash = "sha256:6a56f71c1e692bca1f48fe7c40e4c5a41e148b4e3c6cfb185fd80a4d4a951897"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-safetykit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SafetyKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_safetykit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:45c1fb59246ca9eef99149f3b325491a1aec7f775dd136f6de86aa69911cc43f"}, - {file = "pyobjc_framework_safetykit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3333e8e53a1e8c8133936684813a2254e5d1b4fe313333a3d0273e31b9158cf7"}, - {file = "pyobjc_framework_safetykit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b76fccdb970d3d751a540c47712e9110afac9abea952cb9b7bc0d5867db896e3"}, - {file = "pyobjc_framework_safetykit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8130de57f701dbccb1d84c76ec007fe04992da58cbf0eb906324393eeac3d08d"}, - {file = "pyobjc_framework_safetykit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:cd8091c902037eac4a403d8462424afd711f43206af3548a34bebe1f59d2c340"}, - {file = "pyobjc_framework_safetykit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:761304365978d650015fe05fb624ba13ea4af6c6a76ef8e344673f5b0fed2e92"}, - {file = "pyobjc_framework_safetykit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:24d5ce9dfb80abb634a95ceda3da0f0cdb52c765db0f47de953a4f66b918c957"}, - {file = "pyobjc_framework_safetykit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3c286694968b5f0aea1e80c27c0ddbf3714ae0e754007619e4ffbb172b20539c"}, - {file = "pyobjc_framework_safetykit-11.1.tar.gz", hash = "sha256:c6b44e0cf69e27584ac3ef3d8b771d19a7c2ccd9c6de4138d091358e036322d4"}, + {file = "pyobjc_framework_safetykit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cbb7bcacc88aab1ab4d8dacedc9569be00e26bb7e761b7759dc4d4a2c2656586"}, + {file = "pyobjc_framework_safetykit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c63bcd5d571bba149e28c49c8db06073e54e073b08589e94b850b39a43e52b0"}, + {file = "pyobjc_framework_safetykit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e4977f7069a23252053d1a42b1a053aefc19b85c960a5214b05daf3c037a6f16"}, + {file = "pyobjc_framework_safetykit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:20170b4869c4ee5485f750ad02bbfcb25c53bbfe86892e5328096dc3c6478b83"}, + {file = "pyobjc_framework_safetykit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a935c55ae8e731a44c3cb74324da7517634bfc0eca678b6d4b2f9fe04ff53d8"}, + {file = "pyobjc_framework_safetykit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1b0e8761fd53e6a83a48dbd93961434b05fe17658478b9001c65627da46ba02b"}, + {file = "pyobjc_framework_safetykit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b3ea88d1de4be84f630e25856abb417f3b19c242038ac061cca85a9a9e3dc61b"}, + {file = "pyobjc_framework_safetykit-12.1.tar.gz", hash = "sha256:0cd4850659fb9b5632fd8ad21f2de6863e8303ff0d51c5cc9c0034aac5db08d8"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-scenekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SceneKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"11.0\"" files = [ - {file = "pyobjc_framework_scenekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c828200919573e1c5a02f8702b2e0f8a6c46edddd2d690666d8cf16575f4578"}, - {file = "pyobjc_framework_scenekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3e777dacb563946ad0c2351e6cfe3f16b8587a65772ec0654e2be9f75764d234"}, - {file = "pyobjc_framework_scenekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c803d95b30c4ce49f46ff7174806f5eb84e4c3a152f8f580c5da0313c5c67041"}, - {file = "pyobjc_framework_scenekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2f347d5ae42af8acddb86a45f965046bb91f8d83d33851390954439961e2a7b7"}, - {file = "pyobjc_framework_scenekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ea2f02eea982872994d7c366f6a51060a90cc17b994c017f85c094e2bc346847"}, - {file = "pyobjc_framework_scenekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:2be143172b43c2cf4a2b3fad9e15ffb5d29df677d3678160cd125b94a30caaca"}, - {file = "pyobjc_framework_scenekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3f62f2b8f26375ecfec71f7fdb23f2739cf93d213968c6ffac6a8525516ffc6e"}, - {file = "pyobjc_framework_scenekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:032bc9f4a2cabb49617a1a23408ccab833abc404e6611c372de8ed345439aac0"}, - {file = "pyobjc_framework_scenekit-11.1.tar.gz", hash = "sha256:82941f1e5040114d6e2c9fd35507244e102ef561c637686091b71a7ad0f31306"}, + {file = "pyobjc_framework_scenekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:269760fa2ab44df11be1a7898907d2f01eb05d1d98a8997ae876ed49803be75b"}, + {file = "pyobjc_framework_scenekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:01bf1336a7a8bdc96fabde8f3506aa7a7d1905e20a5c46030a57daf0ce2cbd16"}, + {file = "pyobjc_framework_scenekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:40aea10098893f0b06191f1e79d7b25e12e36a9265549d324238bdb25c7e6df0"}, + {file = "pyobjc_framework_scenekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a032377a7374320131768b6c8bf84589e45819d9e0fe187bd3f8d985207016b9"}, + {file = "pyobjc_framework_scenekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:633909adff9b505b49c34307f507f4bd926b88a1482d8143655d5703481cbbf5"}, + {file = "pyobjc_framework_scenekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d4c8512c9186f12602ac19558072cdeec3a607d628c269317d5965341a14372c"}, + {file = "pyobjc_framework_scenekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b99a99edf37c8fe4194a9c0ab2092f57e564e07adb1ad54ef82b7213184be668"}, + {file = "pyobjc_framework_scenekit-12.1.tar.gz", hash = "sha256:1bd5b866f31fd829f26feac52e807ed942254fd248115c7c742cfad41d949426"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-screencapturekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ScreenCaptureKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.4\"" files = [ - {file = "pyobjc_framework_screencapturekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:11de78f270d405bd14b784b15d4bb04a13b3d25613abd5f9aaaf2b8ef108dc60"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7203108d28d7373501c455cd4a8bbcd2eb7849906dbc7859ac17a350b141553c"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:641fa7834f54558859209e174c83551d5fa239ca6943ace52665f7d45e562ff2"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1119d6258d6c668564ab39154cfc745fd2bb8b3beeaa4f9b2a8a4c93926678c0"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f93f8198741bd904d423a7b1ef941445246bdf6cb119597d981e61a13cc479a4"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:9e135b414d3829fcf7fd8a66c94e8b51135fb9f630c10488fb9d78f27f622906"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:9972db69064b69e78fbc6a00f1de2d8eaa225b990b23687970328b061e60e26d"}, - {file = "pyobjc_framework_screencapturekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98412a02e7eed9199ccf1e64f6effc1a77194e2f2a38f2927d4228c5739531ac"}, - {file = "pyobjc_framework_screencapturekit-11.1.tar.gz", hash = "sha256:11443781a30ed446f2d892c9e6642ca4897eb45f1a1411136ca584997fa739e0"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cf13285180e9acf8a6d0eff494dd7fb63296c648d4838f628c67be72b1af4725"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae412d397eedf189e763defe3497fcb8dffa5e0b54f62390cb33bf9b1cfb864a"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:27df138ce2dfa9d4aae5106d4877e9ed694b5a174643c058f1c48678ffc7001a"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:168125388fb35c6909bec93b259508156e89b9e30fec5748d4a04fd0157f0e0d"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4fc2fe72c1da5ac1b8898a7b2082ed69803e6d9c11f414bb5a5ec94422a5f74f"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:be210ea5df36c1392425c026c59c5e0797b0d6e07ee9551d032e40bed95d2833"}, + {file = "pyobjc_framework_screencapturekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:534f3a433edf6417c3dd58ac52a69360e5a19c924d1cb389495c4d6cc13a875d"}, + {file = "pyobjc_framework_screencapturekit-12.1.tar.gz", hash = "sha256:50992c6128b35ab45d9e336f0993ddd112f58b8c8c8f0892a9cb42d61bd1f4c9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" [[package]] name = "pyobjc-framework-screensaver" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ScreenSaver on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_screensaver-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:656651d0b6870bffeea01b65f4748936603a62dbbdc8e7a61c125ea6ebf8299c"}, - {file = "pyobjc_framework_screensaver-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8b959761fddf06d9fb3fed6cd0cea6009d60473317e11490f66dcf0444011d5f"}, - {file = "pyobjc_framework_screensaver-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f2d22293cf9d715e4692267a1678096afd6793c0519d9417cf77c8a6c706a543"}, - {file = "pyobjc_framework_screensaver-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:46d65c1e14d35f287e7be351e2f98daf9489e31e7ca0d306e6102904ce6c40fb"}, - {file = "pyobjc_framework_screensaver-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2c01a9646bc118445cbb117e7016bd1df9fe93a65db991ab5496d59b1a7bc66d"}, - {file = "pyobjc_framework_screensaver-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e32c83e1d9e5044d482916ac42257a87d1f1068f3f6bccaa04edda40fb9f9ad1"}, - {file = "pyobjc_framework_screensaver-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:7852c2281148cb99c87c4c25b83dca7fdd11e6eed04deadcf2201ed5a2079e5f"}, - {file = "pyobjc_framework_screensaver-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a3cd83eda8a85c02a852cdd5d79f92e8850dcbe9f80de1f66fd0e5eaed7afbba"}, - {file = "pyobjc_framework_screensaver-11.1.tar.gz", hash = "sha256:d5fbc9dc076cc574ead183d521840b56be0c160415e43cb8e01cfddd6d6372c2"}, + {file = "pyobjc_framework_screensaver-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:58625f7d19d73b74521570ddd5b49bf5eeaf32bac6f2c39452594f020dda9b85"}, + {file = "pyobjc_framework_screensaver-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5bd10809005fbe0d68fe651f32a393ce059e90da38e74b6b3cd055ed5b23eaa9"}, + {file = "pyobjc_framework_screensaver-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a3c90c2299eac6d01add81427ae2f90d7724f15d676261e838d7a7750f812322"}, + {file = "pyobjc_framework_screensaver-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a865b6dbb39fb92cdb67b13f68d594ab84d08a984cc3e9a39fab3386f431649"}, + {file = "pyobjc_framework_screensaver-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c249dffcb95d55fc6be626bf17f70b477e320c33d94e234597bc0074e302cfcd"}, + {file = "pyobjc_framework_screensaver-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4744a01043a9c6b464f6a2230948812bf88bdd68f084b6f05b475b93093c3ea9"}, + {file = "pyobjc_framework_screensaver-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c02ec9dccf49463056a438b7f8a6374dc2416d4a0672003382d50603aed9ab5d"}, + {file = "pyobjc_framework_screensaver-12.1.tar.gz", hash = "sha256:c4ca111317c5a3883b7eace0a9e7dd72bc6ffaa2ca954bdec918c3ab7c65c96f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-screentime" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ScreenTime on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_screentime-11.1-py2.py3-none-any.whl", hash = "sha256:50a4e4ab33d6643a52616e990aa1c697d5e3e8f9f9bdab8d631e6d42d8287b4f"}, - {file = "pyobjc_framework_screentime-11.1.tar.gz", hash = "sha256:9bb8269456bbb674e1421182efe49f9168ceefd4e7c497047c7bf63e2f510a34"}, + {file = "pyobjc_framework_screentime-12.1-py2.py3-none-any.whl", hash = "sha256:d34a068ec8ba2704987fcd05c37c9a9392de61d92933e6e71c8e4eaa4dfce029"}, + {file = "pyobjc_framework_screentime-12.1.tar.gz", hash = "sha256:583de46b365543bbbcf27cd70eedd375d397441d64a2cf43c65286fd9c91af55"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-scriptingbridge" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ScriptingBridge on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"9.0\"" files = [ - {file = "pyobjc_framework_scriptingbridge-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2cf247dfe9f98aa3c8210395d045a708a4133a5d6164673213eb39afc4f6dd31"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d6020c69c14872105852ff99aab7cd2b2671e61ded3faefb071dc40a8916c527"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:226ba12d9cbd504411b702323b0507dd1690e81b4ce657c5f0d8b998c46cf374"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c2ba0ad3d3e4e3c6a43fe3e84ab02c5c4e74000bb6f130ae47bf82a3dcd4af98"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:57f5401826e3a008d9cfb7c164187859cadc1b1f96194dc0a7c596f502548c26"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a84d0a8ff4fa1f0016f5d797ad93e22e437212a2fc8e6417a3b8d68f89229680"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:5381e9be1299e1134489e4d46662c649613214265b3b691264cfba0b083929f5"}, - {file = "pyobjc_framework_scriptingbridge-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1d12f1b9de8d862fa8e215e6b8181455f0624cd5d50f8ab4f0cc014b52c2649d"}, - {file = "pyobjc_framework_scriptingbridge-11.1.tar.gz", hash = "sha256:604445c759210a35d86d3e0dfcde0aac8e5e3e9d9e35759e0723952138843699"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:97acd79168892ba457bc472214851f4e4a2d40a8aae106fb07cc94417e1fc681"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e6e37e69760d6ac9d813decf135d107760d33e1cdf7335016522235607f6f31b"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8083cd68c559c55a3787b2e74fc983c8665e5078571475aaeabf4f34add36b62"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bddbd3a13bfaeaa38ab66e44f10446d5bc7d1110dbc02e59b80bcd9c3a60548a"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:148191010b4e10c3938cdb2dcecad43fa0884cefb5a78499a21bdaf5a78318b3"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:48f4bc33b2cab6634f58f37549096bda9ec7d3ec664b4b40e7d3248d9f481f69"}, + {file = "pyobjc_framework_scriptingbridge-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:81bf8b19cd7fd1db055530007bc724901fd61160823324ec2df0daa8e25b94f7"}, + {file = "pyobjc_framework_scriptingbridge-12.1.tar.gz", hash = "sha256:0e90f866a7e6a8aeaf723d04c826657dd528c8c1b91e7a605f8bb947c74ad082"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-searchkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SearchKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_searchkit-11.1-py2.py3-none-any.whl", hash = "sha256:9c9d6ca71cef637ccc3627225fb924a460b3d0618ed79bb0b3c12fcbe9270323"}, - {file = "pyobjc_framework_searchkit-11.1.tar.gz", hash = "sha256:13a194eefcf1359ce9972cd92f2aadddf103f3efb1b18fd578ba5367dff3c10c"}, + {file = "pyobjc_framework_searchkit-12.1-py2.py3-none-any.whl", hash = "sha256:844ce62b7296b19da8db7dedd539d07f7b3fb3bb8b029c261f7bcf0e01a97758"}, + {file = "pyobjc_framework_searchkit-12.1.tar.gz", hash = "sha256:ddd94131dabbbc2d7c3f17db3da87c1a712c431310eef16f07187771e7e85226"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-CoreServices = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-CoreServices = ">=12.1" [[package]] name = "pyobjc-framework-security" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Security on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_security-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ffe21933b554098709087fbc4e629ab4875e75d74ffb741de508063dba56c73e"}, - {file = "pyobjc_framework_security-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d361231697486e97cfdafadf56709190696ab26a6a086dbba5f170e042e13daa"}, - {file = "pyobjc_framework_security-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2eb4ba6d8b221b9ad5d010e026247e8aa26ee43dcaf327e848340ed227d22d7e"}, - {file = "pyobjc_framework_security-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:158da3b2474e2567fd269531c4ee9f35b8ba4f1eccbd1fb4a37c85a18bf1243c"}, - {file = "pyobjc_framework_security-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:141cc3ee08627ae0698264efc3dbbaf28d2255e0fe690e336eb8f0f387c4af01"}, - {file = "pyobjc_framework_security-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:858a18303711eb69d18d1a64cf8bb2202f64a3bd1c82203c511990dbd8326514"}, - {file = "pyobjc_framework_security-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:4db1ebf6395cd370139cb35ff172505fc449c7fdf5d3a28f2ada8a30ef132cd0"}, - {file = "pyobjc_framework_security-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5dec8412602256e1d7039e670fb987bf1b233a55086e1204f1e32d7aab798f98"}, - {file = "pyobjc_framework_security-11.1.tar.gz", hash = "sha256:dabcee6987c6bae575e2d1ef0fcbe437678c4f49f1c25a4b131a5e960f31a2da"}, + {file = "pyobjc_framework_security-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:787e9d873535247e2caca2036cbcdc956bcc92d0c06044bec7eefe0a456856b0"}, + {file = "pyobjc_framework_security-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b2d8819f0fb7b619ec7627a0d8c1cac1a57c5143579ce8ac21548165680684b"}, + {file = "pyobjc_framework_security-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab42e55f5b782332be5442750fcd9637ee33247d57c7b1d5801bc0e24ee13278"}, + {file = "pyobjc_framework_security-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:afc36661cc6eb98cd794bed1d6668791e96557d6f72d9ac70aa49022d26af1d4"}, + {file = "pyobjc_framework_security-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9510c98ab56921d1d416437372605cc1c1f6c1ad8d3061ee56b17bf423dd5427"}, + {file = "pyobjc_framework_security-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:6319a34508fd87ab6ca3cda6f54e707196197a65b792b292705af967e225438a"}, + {file = "pyobjc_framework_security-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:03d166371cefdef24908825148eb848f99ee2c0b865870a09dcbb94334dd3e0a"}, + {file = "pyobjc_framework_security-12.1.tar.gz", hash = "sha256:7fecb982bd2f7c4354513faf90ba4c53c190b7e88167984c2d0da99741de6da9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-securityfoundation" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SecurityFoundation on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_securityfoundation-11.1-py2.py3-none-any.whl", hash = "sha256:25f2cf10f80c122f462e9d4d43efe9fd697299c194e0c357e76650e234e6d286"}, - {file = "pyobjc_framework_securityfoundation-11.1.tar.gz", hash = "sha256:b3c4cf70735a93e9df40f3a14478143959c415778f27be8c0dc9ae0c5b696b92"}, + {file = "pyobjc_framework_securityfoundation-12.1-py2.py3-none-any.whl", hash = "sha256:579cf23e63434226f78ffe0afb8426e971009588e4ad812c478d47dfd558201c"}, + {file = "pyobjc_framework_securityfoundation-12.1.tar.gz", hash = "sha256:1f39f4b3db6e3bd3a420aaf4923228b88e48c90692cf3612b0f6f1573302a75d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Security = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Security = ">=12.1" [[package]] name = "pyobjc-framework-securityinterface" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SecurityInterface on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_securityinterface-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:127da21b8fd4d8df0f1d680f581cef714eeb8c2db31e72b2c5395e2ad41936ff"}, - {file = "pyobjc_framework_securityinterface-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3e884620b22918d462764f0665f6ac0cbb8142bb160fcd27c4f4357f81da73b7"}, - {file = "pyobjc_framework_securityinterface-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:26056441b325029da06a7c7b8dd1a0c9a4ad7d980596c1b04d132a502b4cacc0"}, - {file = "pyobjc_framework_securityinterface-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:708dd1d65309f3d4043ecaf152591c240601a5d3da7ae7a500f511c54317537b"}, - {file = "pyobjc_framework_securityinterface-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e9ebfb32177eb06f5c894be97c6af3802f09b9890fce8e0956cc0e680af4eafd"}, - {file = "pyobjc_framework_securityinterface-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:0232f947b4f906097a5d758305097a8688835a52e0721b75ae3f1180eac30f50"}, - {file = "pyobjc_framework_securityinterface-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:2c20bedead75de7bf1f2ceda562755f64c70ee86180ed45480dc9dbc55609a0b"}, - {file = "pyobjc_framework_securityinterface-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d5493ebf2d62458485b4461a16fb9756de31c1e4be34daa4d539239adf25132c"}, - {file = "pyobjc_framework_securityinterface-11.1.tar.gz", hash = "sha256:e7aa6373e525f3ae05d71276e821a6348c53fec9f812b90eec1dbadfcb507bc9"}, + {file = "pyobjc_framework_securityinterface-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:048950875a968032bc133c64e594d4810d5bf5ef359012830cf193610d9c04ac"}, + {file = "pyobjc_framework_securityinterface-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed599be750122376392e95c2407d57bd94644e8320ddef1d67660e16e96b0d06"}, + {file = "pyobjc_framework_securityinterface-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5cb5e79a73ea17663ebd29e350401162d93e42343da7d96c77efb38ae64ff01f"}, + {file = "pyobjc_framework_securityinterface-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:af5db06d53c92f05446600d241afab5aec6fec7ab10941b4eeb27a452c543b64"}, + {file = "pyobjc_framework_securityinterface-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:08516c01954233fecb9bd203778b1bf559d427ccea26444ae1fa93691e751ddd"}, + {file = "pyobjc_framework_securityinterface-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:153632d23b0235faa56d26d5641e585542dac6b13b0d7b152cca27655405dec4"}, + {file = "pyobjc_framework_securityinterface-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b9eb42c5d4c62af83d69adeff3608af9cd4cfe5b7c9885a6a399be74fcc3d0f0"}, + {file = "pyobjc_framework_securityinterface-12.1.tar.gz", hash = "sha256:deef11ad03be8d9ff77db6e7ac40f6b641ee2d72eaafcf91040537942472e88b"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Security = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Security = ">=12.1" [[package]] name = "pyobjc-framework-securityui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SecurityUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"24.4\"" files = [ - {file = "pyobjc_framework_securityui-11.1-py2.py3-none-any.whl", hash = "sha256:3cdb101b03459fcf8e4064b90021d06761003f669181e02f43ff585e6ba2403d"}, - {file = "pyobjc_framework_securityui-11.1.tar.gz", hash = "sha256:e80c93e8a56bf89e4c0333047b9f8219752dd6de290681e9e2e2b2e26d69e92d"}, + {file = "pyobjc_framework_securityui-12.1-py2.py3-none-any.whl", hash = "sha256:3e988b83c9a2bb0393207eaa030fc023a8708a975ac5b8ea0508cdafc2b60705"}, + {file = "pyobjc_framework_securityui-12.1.tar.gz", hash = "sha256:f1435fed85edc57533c334a4efc8032170424b759da184cb7a7a950ceea0e0b6"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Security = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Security = ">=12.1" [[package]] name = "pyobjc-framework-sensitivecontentanalysis" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SensitiveContentAnalysis on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"23.0\"" files = [ - {file = "pyobjc_framework_sensitivecontentanalysis-11.1-py2.py3-none-any.whl", hash = "sha256:dbb78f5917f986a63878bb91263bceba28bd86fc381bad9461cf391646db369f"}, - {file = "pyobjc_framework_sensitivecontentanalysis-11.1.tar.gz", hash = "sha256:5b310515c7386f7afaf13e4632d7d9590688182bb7b563f8026c304bdf317308"}, + {file = "pyobjc_framework_sensitivecontentanalysis-12.1-py2.py3-none-any.whl", hash = "sha256:faf19d32d4599ac2b18fb1ccdc3e33b2b242bdf34c02e69978bd62d3643ad068"}, + {file = "pyobjc_framework_sensitivecontentanalysis-12.1.tar.gz", hash = "sha256:2c615ac10e93eb547b32b214cd45092056bee0e79696426fd09978dc3e670f25"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-servicemanagement" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ServiceManagement on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"10.0\"" files = [ - {file = "pyobjc_framework_servicemanagement-11.1-py2.py3-none-any.whl", hash = "sha256:104f56557342a05ad68cd0c9daf63b7f4678957fe1f919f03a872f1607a50710"}, - {file = "pyobjc_framework_servicemanagement-11.1.tar.gz", hash = "sha256:90a07164da49338480e0e135b445acc6ae7c08549a2037d1e512d2605fedd80a"}, + {file = "pyobjc_framework_servicemanagement-12.1-py2.py3-none-any.whl", hash = "sha256:9a2941f16eeb71e55e1cd94f50197f91520778c7f48ad896761f5e78725cc08f"}, + {file = "pyobjc_framework_servicemanagement-12.1.tar.gz", hash = "sha256:08120981749a698033a1d7a6ab99dbbe412c5c0d40f2b4154014b52113511c1d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-sharedwithyou" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SharedWithYou on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_sharedwithyou-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2a218b3c89253a5c3a0ca974854872b68f58d46373a3e38ab20a82c9484a1062"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ce1c37d5f8cf5b0fe8a261e4e7256da677162fd5aa7b724e83532cdfe58d8f94"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:99e1749187ae370be7b9c55dd076d1b8143f0d8db3e83f52540586f32e7abb33"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c1a1770aa2c417f17010623414fb12943570baa726d8780dd7446ba5bcee8c3d"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:63b1cb673b844ebfeddc032d0539f913bbd6b67ab2a310a1fcff7842dba9c714"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:481362f0bde6def86634fc687abe6f4dee650c09c22b48bfe5af5322f9947cef"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:70421a8fd326afd99eeae273b693a7b4d2d200c38e883d8219a84123a4ba0861"}, - {file = "pyobjc_framework_sharedwithyou-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7ac08df8e62ad348d0fae889731eb18379a49e891ed0b19d1bbddef7af0284df"}, - {file = "pyobjc_framework_sharedwithyou-11.1.tar.gz", hash = "sha256:ece3a28a3083d0bcad0ac95b01f0eb699b9d2d0c02c61305bfd402678753ff6e"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b5e05940bd0b9107340437ecef4502a2d2326072b0fa0b458f41c02a173d1047"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:359c03096a6988371ea89921806bb81483ea509c9aa7114f9cd20efd511b3576"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a99a6ebc6b6de7bc8663b1f07332fab9560b984a57ce344dc5703f25258f258d"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:491b35cdb3a0bc11e730c96d4109944c77ab153573a28220ff12d41d34dd9c0f"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:50f0b32e2bf6f7ceb3af4422b015f674dc20a8cb1afa72d78f7e4186eb3710b9"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5a38bc6e3e0c9a36fe86e331eb16b680bab0024c897d252af1e611f0cd1087ef"}, + {file = "pyobjc_framework_sharedwithyou-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1b65c51a8f6f5baf382e419cda74896d196625f1468710660a1a87a8b02b34dc"}, + {file = "pyobjc_framework_sharedwithyou-12.1.tar.gz", hash = "sha256:167d84794a48f408ee51f885210c616fda1ec4bff3dd8617a4b5547f61b05caf"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-SharedWithYouCore = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-SharedWithYouCore = ">=12.1" [[package]] name = "pyobjc-framework-sharedwithyoucore" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SharedWithYouCore on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:daa8de2cbf5ec8e768e4d8b7b7cd410747d92ca83ccf7d114563537448099136"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a7fe5ffcc65093ef7cd25903769ad557c3d3c5a59155a31f3f934cf555101e6"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd18c588b29de322c25821934d6aa6d2bbbdbb89b6a4efacdb248b4115fc488d"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a3fb0e745fd022fed48cc9a5e0dcbf8d1abcb5bfc192150e3a2584f4351791fc"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6aee3df8bed97a74e1f79609f9884edcaab2d305db20bdcae39e47b3e513c559"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:5a45c562c99017f8e057d4080012b63a9bb660c696334707c54d7b4018ca1017"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:4e19bfc74f392546ca4b7ea5271d4802617445ad493428370eafd3cddd4d977e"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cbb6ed02c8c38e2cdca0fb2c710374fc5cda13d2be40f3d002f1f852006e64ca"}, - {file = "pyobjc_framework_sharedwithyoucore-11.1.tar.gz", hash = "sha256:790050d25f47bda662a9f008b17ca640ac2460f2559a56b17995e53f2f44ed73"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a7dd3048ea898b8fa401088d9fae73dbda361fb7c2dd1dc1057102e503b12771"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f4f9f7fed0768ebbbc2d24248365da2cf5f014b8822b2a1fbbce5fa920f410f1"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed928266ae9d577ff73de72a03bebc66a751918eb59ca660a9eca157392f17be"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:13eebca21722556449e47b0eda3339165b5afbb455ae00b34aabe03988affd7a"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d9aa525cdff75005a8f0ca2f7afdd1535b9e34ccafb6a92a932f3ded4b6d64d4"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2ceb4c3ad7bc1c93b4cbbbab6404d3e32714c12c36fab2932c170946af83c548"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0a55c843bd4cfdefa4a4566ccb64782466341715ecab3956c3566dbfbad0d1e5"}, + {file = "pyobjc_framework_sharedwithyoucore-12.1.tar.gz", hash = "sha256:0813149eeb755d718b146ec9365eb4ca3262b6af9ff9ba7db2f7b6f4fd104518"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-shazamkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ShazamKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"21.0\"" files = [ - {file = "pyobjc_framework_shazamkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5f19e1f307d84c53271af7ed70a3c39f134a46e358672fb8c74ced7205949551"}, - {file = "pyobjc_framework_shazamkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2fe6990d0ec1b40d4efd0d0e49c2deb65198f49b963e6215c608c140b3149151"}, - {file = "pyobjc_framework_shazamkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b323f5409b01711aa2b6e2113306084fab2cc83fa57a0c3d55bd5876358b68d8"}, - {file = "pyobjc_framework_shazamkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bac17f285742e0f13a54c7085ef3035d8034ffc43d18d3d68fb41283c5064ff"}, - {file = "pyobjc_framework_shazamkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b3304c3a67e3722b895d874f215dd4277b49cedddb72fa780a791ef79e5c3d45"}, - {file = "pyobjc_framework_shazamkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:ef51f461672234076b3791ad4be05adad20a2e24b9d7d93acd7bf18d7f9b1714"}, - {file = "pyobjc_framework_shazamkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:f7d191fb187dbb05e3f88f546d5207618d65e270d7a4316b51b1171cc491e268"}, - {file = "pyobjc_framework_shazamkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:00a65ae3ba449ba19144b6acb093afd9ddeae67b69828928ca536174f0e8dec2"}, - {file = "pyobjc_framework_shazamkit-11.1.tar.gz", hash = "sha256:c6e3c9ab8744d9319a89b78ae6f185bb5704efb68509e66d77bcd1f84a9446d6"}, + {file = "pyobjc_framework_shazamkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:18ff0a83a6d2517d30669cf5337e688310e424d1cdc1fa90acf3753a73cc1bd4"}, + {file = "pyobjc_framework_shazamkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0c10ba22de524fbedf06270a71bb0a3dbd4a3853b7002ddf54394589c3be6939"}, + {file = "pyobjc_framework_shazamkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e184dd0f61a604b1cfcf44418eb95b943e7b8f536058a29e4b81acadd27a9420"}, + {file = "pyobjc_framework_shazamkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:957c5e31b2b275c822ea43d7c4435fa1455c6dc5469ad4b86b29455571794027"}, + {file = "pyobjc_framework_shazamkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:eb2875ddf18d3cd2dc2b1327f58e142b9bd86fafd32078387ed867ec5a6c5571"}, + {file = "pyobjc_framework_shazamkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:951b989997a7c19d0c0d91a477d3d221ddb890085f3538ae3c520177c2322caa"}, + {file = "pyobjc_framework_shazamkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:70f203ffe3e4c130b3a9c699d9a2081884bd7b3bd1ce08c7402b6d60fc755d75"}, + {file = "pyobjc_framework_shazamkit-12.1.tar.gz", hash = "sha256:71db2addd016874639a224ed32b2000b858802b0370c595a283cce27f76883fe"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-social" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Social on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_social-11.1-py2.py3-none-any.whl", hash = "sha256:ab5878c47d7a0639704c191cee43eeb259e09688808f0905c42551b9f79e1d57"}, - {file = "pyobjc_framework_social-11.1.tar.gz", hash = "sha256:fbc09d7b00dad45b547f9b2329f4dcee3f5a50e2348de1870de0bd7be853a5b7"}, + {file = "pyobjc_framework_social-12.1-py2.py3-none-any.whl", hash = "sha256:2f3b36ba5769503b1bc945f85fd7b255d42d7f6e417d78567507816502ff2b44"}, + {file = "pyobjc_framework_social-12.1.tar.gz", hash = "sha256:1963db6939e92ae40dd9d68852e8f88111cbfd37a83a9fdbc9a0c08993ca7e60"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-soundanalysis" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SoundAnalysis on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_soundanalysis-11.1-py2.py3-none-any.whl", hash = "sha256:6cf983c24fb2ad2aa5e7499ab2d30ff134d887fe91fd2641acf7472e546ab4e5"}, - {file = "pyobjc_framework_soundanalysis-11.1.tar.gz", hash = "sha256:42cd25b7e0f343d8b59367f72b5dae96cf65696bdb8eeead8d7424ed37aa1434"}, + {file = "pyobjc_framework_soundanalysis-12.1-py2.py3-none-any.whl", hash = "sha256:8b2029ab48c1a9772f247f0aea995e8c3ff4706909002a9c1551722769343a52"}, + {file = "pyobjc_framework_soundanalysis-12.1.tar.gz", hash = "sha256:e2deead8b9a1c4513dbdcf703b21650dcb234b60a32d08afcec4895582b040b1"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-speech" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Speech on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_speech-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5fcbe46060f0b25963e32fa7488a34fb3f929fa099797a10e30012d3d6ee328a"}, - {file = "pyobjc_framework_speech-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d3e0276a66d2fa4357959a6f6fb5def03f8e0fd3aa43711d6a81ab2573b9415f"}, - {file = "pyobjc_framework_speech-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7726eff52cfa9cc7178ddcd1285cbc23b5f89ee55b4b850b0d2e90bb4f8e044b"}, - {file = "pyobjc_framework_speech-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3c80670dbad921bf1d4954a9de29525acb53ee84e064a95fbbdfddff1db2f14f"}, - {file = "pyobjc_framework_speech-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f19778a4ace37c538a34a10ac1f595c80b83489210e6fa60c703399aee264c7e"}, - {file = "pyobjc_framework_speech-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:f36ca8a3cfc12b7a5cdf00712eec3ad0fac34e3da36b5737c5302e224525aa70"}, - {file = "pyobjc_framework_speech-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:80e577e3dfc1c10a1280deae172cdb64e105f99f47343099e3968b720a3f68da"}, - {file = "pyobjc_framework_speech-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8b464742b77693e398802a3184c6dbf49bd7ac8b86a0c8aa9d311d883df85c6a"}, - {file = "pyobjc_framework_speech-11.1.tar.gz", hash = "sha256:d382977208c3710eacea89e05eae4578f1638bb5a7b667c06971e3d34e96845c"}, + {file = "pyobjc_framework_speech-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:be5c005595918557f17e991b2575159b8ea943e7fb08fd00b1dabccde35f8b1b"}, + {file = "pyobjc_framework_speech-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0301bfae5d0d09b6e69bd4dbabc5631209e291cc40bda223c69ed0c618f8f2dc"}, + {file = "pyobjc_framework_speech-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cae4b88ef9563157a6c9e66b37778fc4022ee44dd1a2a53081c2adbb69698945"}, + {file = "pyobjc_framework_speech-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:49df0ac39ae6fb44a83b2f4d7f500e0fa074ff58fbc53106d8f626d325079c23"}, + {file = "pyobjc_framework_speech-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ed5455f6d9e473c08ebf904ae280ad5fd0d00a073448bf4f0a01fee5887c5537"}, + {file = "pyobjc_framework_speech-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a958b3ace1425cf9319f5d8ace920c2f3dac95a5a6d1bd8742d5b64d24671e30"}, + {file = "pyobjc_framework_speech-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:893052631198c5447453f81e4ed4af8077038666a7893fbe2d6a2f72b9c44b7e"}, + {file = "pyobjc_framework_speech-12.1.tar.gz", hash = "sha256:2a2a546ba6c52d5dd35ddcfee3fd9226a428043d1719597e8701851a6566afdd"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-spritekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SpriteKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"13.0\"" files = [ - {file = "pyobjc_framework_spritekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5adddbeea27ca748d4fd4588ffa79299fb7a7b369038bc6e3425570d1cab9b0a"}, - {file = "pyobjc_framework_spritekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1c8c94d37c054b6e3c22c237f6458c12649776e5ac921d066ab99dee2e580909"}, - {file = "pyobjc_framework_spritekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8b470a890db69e70ef428dfff88da499500fca9b2d44da7120dc588d13a2dbdb"}, - {file = "pyobjc_framework_spritekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2277e74d7be426181ae5ca7dd9d6c776426e8e825ad83b6046a7cb999015f27d"}, - {file = "pyobjc_framework_spritekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d6ea27fc202b40945729db50fdc6f75a0a11a07149febf4b99e14caf96ef33b0"}, - {file = "pyobjc_framework_spritekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e04d0825109a0158e551e9e2a61c56e83eadfdc5a44a47b64cb410b0498d33be"}, - {file = "pyobjc_framework_spritekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:4e3673196b7cbc007e4aa7f14d711f3cda00e32e120bc4f6e896d54edd517c61"}, - {file = "pyobjc_framework_spritekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0519dac1eec99fcc94db2027b20ab445ed3a97cb9b2c5f02d737fcf436644d82"}, - {file = "pyobjc_framework_spritekit-11.1.tar.gz", hash = "sha256:914da6e846573cac8db5e403dec9a3e6f6edf5211f9b7e429734924d00f65108"}, + {file = "pyobjc_framework_spritekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9324955df38e24ab799d5bc7f66cce20aa0c9a93aef3139e54dee99f9d7848cc"}, + {file = "pyobjc_framework_spritekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26fd12944684713ae1e3cdd229348609c1142e60802624161ca0c3540eec3ffa"}, + {file = "pyobjc_framework_spritekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1649e57c25145795d04bb6a1ec44c20ef7cf0af7c60a9f6f5bc7998dd269db1e"}, + {file = "pyobjc_framework_spritekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd6847cb7a287c42492ffd7c30bc08165f4fbb51b2602290e001c0d27e0aa0f0"}, + {file = "pyobjc_framework_spritekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dd6e309aa284fa9b434aa7bf8ab9ab23fe52e7a372e2db3869586a74471f3419"}, + {file = "pyobjc_framework_spritekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5c9cb8f23436fc7bd0a8149f1271b307131a4c5669dfbb8302beef56cdca057f"}, + {file = "pyobjc_framework_spritekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9ebe7740c124ea7f8fb765e86df39f331f137be575ddb6d0d81bfb2258ee72d7"}, + {file = "pyobjc_framework_spritekit-12.1.tar.gz", hash = "sha256:a851f4ef5aa65cc9e08008644a528e83cb31021a1c0f17ebfce4de343764d403"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-storekit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework StoreKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"11.0\"" files = [ - {file = "pyobjc_framework_storekit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:850b8157c30aa023c16a883a140538ca229d7b30db6c17568ea69532b19256ad"}, - {file = "pyobjc_framework_storekit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:624105bd26a9ce5a097b3f96653e2700d33bb095828ed65ee0f4679b34d9f1e1"}, - {file = "pyobjc_framework_storekit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5ca3373272b6989917c88571ca170ce6d771180fe1a2b44c7643fe084569b93e"}, - {file = "pyobjc_framework_storekit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e2607116b0d53d7fda2fc48e37b1deb1d26a60e7b723a6b7c391a3f48b2ac3b"}, - {file = "pyobjc_framework_storekit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4944bd1fd01f486623453b68accf4445d3c5686714820c8329a0c4e4672d6fff"}, - {file = "pyobjc_framework_storekit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d312c392962e15fc842d11b0f7d937e3bd9f3ed3a80f7a6be77518475564f04d"}, - {file = "pyobjc_framework_storekit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:be6c894a9f9c2b40e300005c3a3cf46f352e1711f65c0b7a8dd5035d1f6333aa"}, - {file = "pyobjc_framework_storekit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:390074ec81680f94e4a6a9f7b46438c0fcf96555092c363beb40e1b41f83574d"}, - {file = "pyobjc_framework_storekit-11.1.tar.gz", hash = "sha256:85acc30c0bfa120b37c3c5ac693fe9ad2c2e351ee7a1f9ea6f976b0c311ff164"}, + {file = "pyobjc_framework_storekit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e67341cb14adfdecbd230393f3b02d4b19fbb3ada427b06d4f82a703ae90431f"}, + {file = "pyobjc_framework_storekit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a29f45bcba9dee4cf73dae05ab0f94d06a32fb052e31414d0c23791c1ec7931c"}, + {file = "pyobjc_framework_storekit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9fe2d65a2b644bb6b4fdd3002292cba153560917de3dd6cf969431fa32d21dd0"}, + {file = "pyobjc_framework_storekit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:556c3dc187646ab8bda714a7e5630201b931956b81b0162ba420c64f55e5faaf"}, + {file = "pyobjc_framework_storekit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:15d4643bc4de4aa62f72efcb7a4930bd7e15280867be225bd2c582b3367d75ae"}, + {file = "pyobjc_framework_storekit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:5e9354f2373b243066358bf32988d07d8a2da6718563ee6946a40c981a37c7c1"}, + {file = "pyobjc_framework_storekit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d11ffe3f8e638ebe7c156c5bf2919115c7562f44f44be8067521b7c5f6e50553"}, + {file = "pyobjc_framework_storekit-12.1.tar.gz", hash = "sha256:818452e67e937a10b5c8451758274faa44ad5d4329df0fa85735115fb0608da9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-symbols" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Symbols on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"23.0\"" files = [ - {file = "pyobjc_framework_symbols-11.1-py2.py3-none-any.whl", hash = "sha256:1de6fc3af15fc8d5fd4869663a3250311844ec33e99ec8a1991a352ab61d641d"}, - {file = "pyobjc_framework_symbols-11.1.tar.gz", hash = "sha256:0e09b7813ef2ebdca7567d3179807444dd60f3f393202b35b755d4e1baf99982"}, + {file = "pyobjc_framework_symbols-12.1-py2.py3-none-any.whl", hash = "sha256:c72eecbc25f6bfcd39c733067276270057c5aca684be20fdc56def645f2b6446"}, + {file = "pyobjc_framework_symbols-12.1.tar.gz", hash = "sha256:7d8e999b8a59c97d38d1d343b6253b1b7d04bf50b665700957d89c8ac43b9110"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-syncservices" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SyncServices on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_syncservices-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:108619faf4cafb894022ca923b52d45008eb6ad3af2123ca4e187101a74ddaee"}, - {file = "pyobjc_framework_syncservices-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bc6159bda4597149c6999b052a35ffd9fc4817988293da6e54a1e073fa571653"}, - {file = "pyobjc_framework_syncservices-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:03124c8c7c7ce837f51e1c9bdcf84c6f1d5201f92c8a1c172ec34908d5e57415"}, - {file = "pyobjc_framework_syncservices-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:711d493c7967682bee605c5909a49d268d9b3dd3cb7a71d8ab5dbe01a069eb44"}, - {file = "pyobjc_framework_syncservices-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a0ff222472b2cb5c345c92ae4bde245f4181843379f4fd9462cd5c096ed7b2f1"}, - {file = "pyobjc_framework_syncservices-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:24c2b62e94d9e0e5e64abbf6d1f9994212b2a5cb8cad5a8d0394d694b20731b5"}, - {file = "pyobjc_framework_syncservices-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e5b29d6e8fe5b0015dcac5485e4fe6ede35bae7beeb647fb81d86120365029ea"}, - {file = "pyobjc_framework_syncservices-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4c294bfc33e60520a6652f1cc2a6f275f7cc923bd7ce87c2e305293cd2d20898"}, - {file = "pyobjc_framework_syncservices-11.1.tar.gz", hash = "sha256:0f141d717256b98c17ec2eddbc983c4bd39dfa00dc0c31b4174742e73a8447fe"}, + {file = "pyobjc_framework_syncservices-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:21dcb61da6816d2c55afb24d5bbf30741f806c0db8bb7a842fd27177550a3c9c"}, + {file = "pyobjc_framework_syncservices-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e81a38c2eb7617cb0ecfc4406c1ae2a97c60e95af42e863b2b0f1f6facd9b0da"}, + {file = "pyobjc_framework_syncservices-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0cd629bea95692aad2d26196657cde2fbadedae252c7846964228661a600b900"}, + {file = "pyobjc_framework_syncservices-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:606afac9255b5bf828f1dcf7b0d7bdc7726021b686ad4f5743978eb4086902d9"}, + {file = "pyobjc_framework_syncservices-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9d1ebe60e92efd08455be209a265879cf297feda831aadf36431f38229b1dd52"}, + {file = "pyobjc_framework_syncservices-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:2af99db7c23f0368300e8bd428ecfb75b14449d3467e883ff544dbc5ae9e1351"}, + {file = "pyobjc_framework_syncservices-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c27754af8cb86bd445e1182a184617229fa70cf3a716e740a93b0622f44ceb27"}, + {file = "pyobjc_framework_syncservices-12.1.tar.gz", hash = "sha256:6a213e93d9ce15128810987e4c5de8c73cfab1564ac8d273e6b437a49965e976"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreData = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreData = ">=12.1" [[package]] name = "pyobjc-framework-systemconfiguration" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SystemConfiguration on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_systemconfiguration-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:45ede697a3f9d4f97f1554a3f5636197aee83923d3adbe0901935da8ddb559a9"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d12d5078611c905162bc951dffbb2a989b0dfd156952ba1884736c8dcbe38f7f"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6881929b828a566bf1349f09db4943e96a2b33f42556e1f7f6f28b192420f6fc"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ab2ff52e4228f42182b7ef398d0da504f9f8f4a889963422af9aa1f495668db2"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c236f19cadc9fff56c0afb3e4ad6f8c8e11c5679e31ed413fe6876bf2ea73353"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:ef266e9f83c2fc9a999709626138b427ff052a0acf4851d797c3a7654878c046"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:b994c613b5bea9f1c9a64f57f373563c7f424ffae5e4cb20e76c8448a35543f7"}, - {file = "pyobjc_framework_systemconfiguration-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:832e534e2b3daeb01c03dd6dba4540027caf2320b7b46a8c29f88d30decadcbd"}, - {file = "pyobjc_framework_systemconfiguration-11.1.tar.gz", hash = "sha256:f30ed0e9a8233fecb06522e67795918ab230ddcc4a18e15494eff7532f4c3ae1"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:db640a31120e8cd4e47516f5e32a222488809478d6cf4402db506496defd3e18"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:796390a80500cc7fde86adc71b11cdc41d09507dd69103d3443fbb60e94fb438"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0e5bb9103d39483964431db7125195c59001b7bff2961869cfe157b4c861e52d"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:359b35c00f52f57834169c1057522279201ac5a64ac5b4d90dbafa40ad6c54b4"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f4ff57defb4dcd933db392eb8ea9e5a46005cb7a6f2b46c27ab2dd5e13a459ab"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e9c597c13b9815dce7e1fccdfae7c66b9df98e8c688b7afdf4af39de26d917b3"}, + {file = "pyobjc_framework_systemconfiguration-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:10ad47ec2bee4f567e78369359b8c75a23097c6d89b11aa37840c22cc79229f1"}, + {file = "pyobjc_framework_systemconfiguration-12.1.tar.gz", hash = "sha256:90fe04aa059876a21626931c71eaff742a27c79798a46347fd053d7008ec496e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-systemextensions" -version = "11.1" +version = "12.1" description = "Wrappers for the framework SystemExtensions on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"19.0\"" files = [ - {file = "pyobjc_framework_systemextensions-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:55e33ce532c16e36e0960e34501748d07d019f8088aa4efde10c5c91ccbce5aa"}, - {file = "pyobjc_framework_systemextensions-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7e742ae51cdd86c0e609fe47189ea446de98d13b235b0a138a3f2e37e98cd359"}, - {file = "pyobjc_framework_systemextensions-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3a2b1e84e4a118bfe13efb9f2888b065dc937e2a7e60afd4d0a82b51b8301a10"}, - {file = "pyobjc_framework_systemextensions-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2ed65857244f18b88107e5d3ea8ea21c9da662490895b430e376423ee7c0b963"}, - {file = "pyobjc_framework_systemextensions-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9aa7595de4f8f6a252c50419c0343f7326c6a4de47da5b933a17880d1cadfa36"}, - {file = "pyobjc_framework_systemextensions-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:97c1b5f415f3981d0426516e014e94392f054f3898252bf6c88c3f50700c1d70"}, - {file = "pyobjc_framework_systemextensions-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:1801413066d1cbf2a0319e228060820c51ea0fb27aec339716d8c82f2e1b3125"}, - {file = "pyobjc_framework_systemextensions-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f0356cafec3296e0dca1e7c9672c0be0aaf723050bb4fa4bfd054ca467e23666"}, - {file = "pyobjc_framework_systemextensions-11.1.tar.gz", hash = "sha256:8ff9f0aad14dcdd07dd47545c1dd20df7a286306967b0a0232c81fcc382babe6"}, + {file = "pyobjc_framework_systemextensions-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:820f2d0364340395efafdfa85630b2e4a3ffc3f40b469b2880bab2c03f1e2907"}, + {file = "pyobjc_framework_systemextensions-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a4e82160e43c0b1aa17e6d4435e840a655737fbe534e00e37fc1961fbf3bebd"}, + {file = "pyobjc_framework_systemextensions-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:01fac4f8d88c0956d9fc714d24811cd070e67200ba811904317d91e849e38233"}, + {file = "pyobjc_framework_systemextensions-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:038032801d46cc7b1ea69400f43d5c17b25d7a16efa7a7d9727b25789387a8cf"}, + {file = "pyobjc_framework_systemextensions-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2aea4e823d915abca463b1c091ff969cef09108c88b71b68569485dec6f3651d"}, + {file = "pyobjc_framework_systemextensions-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:51f0a4488fa245695c7e8c1c83909c86bf27b34519807437c753602ff6d7e9af"}, + {file = "pyobjc_framework_systemextensions-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:b393e3bf85ccb9321f134405eac6fd16a8e7f048286301b67f0cf8d99588bf29"}, + {file = "pyobjc_framework_systemextensions-12.1.tar.gz", hash = "sha256:243e043e2daee4b5c46cd90af5fff46b34596aac25011bab8ba8a37099685eeb"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-threadnetwork" -version = "11.1" +version = "12.1" description = "Wrappers for the framework ThreadNetwork on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"22.0\"" files = [ - {file = "pyobjc_framework_threadnetwork-11.1-py2.py3-none-any.whl", hash = "sha256:55021455215a0d3ad4e40152f94154e29062e73655558c5f6e71ab097d90083e"}, - {file = "pyobjc_framework_threadnetwork-11.1.tar.gz", hash = "sha256:73a32782f44b61ca0f8a4a9811c36b1ca1cdcf96c8a3ba4de35d8e8e58a86ad5"}, + {file = "pyobjc_framework_threadnetwork-12.1-py2.py3-none-any.whl", hash = "sha256:07d937748fc54199f5ec04d5a408e8691a870481c11b641785c2adc279dd8e4b"}, + {file = "pyobjc_framework_threadnetwork-12.1.tar.gz", hash = "sha256:e071eedb41bfc1b205111deb54783ec5a035ccd6929e6e0076336107fdd046ee"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-uniformtypeidentifiers" -version = "11.1" +version = "12.1" description = "Wrappers for the framework UniformTypeIdentifiers on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_uniformtypeidentifiers-11.1-py2.py3-none-any.whl", hash = "sha256:6e2e8ea89eb8ca03bc2bc8e506fff901e71d916276475c8d81fbf0280059cb4c"}, - {file = "pyobjc_framework_uniformtypeidentifiers-11.1.tar.gz", hash = "sha256:86c499bec8953aeb0c95af39b63f2592832384f09f12523405650b5d5f1ed5e9"}, + {file = "pyobjc_framework_uniformtypeidentifiers-12.1-py2.py3-none-any.whl", hash = "sha256:ec5411e39152304d2a7e0e426c3058fa37a00860af64e164794e0bcffee813f2"}, + {file = "pyobjc_framework_uniformtypeidentifiers-12.1.tar.gz", hash = "sha256:64510a6df78336579e9c39b873cfcd03371c4b4be2cec8af75a8a3d07dff607d"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-usernotifications" -version = "11.1" +version = "12.1" description = "Wrappers for the framework UserNotifications on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_usernotifications-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:863f9c680ce9d4b0d398a61803210e4c7ff770487b6506f00742dd45cd4d4347"}, - {file = "pyobjc_framework_usernotifications-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7140d337dd9dc3635add2177086429fdd6ef24970935b22fffdc5ec7f02ebf60"}, - {file = "pyobjc_framework_usernotifications-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ce6006989fd4a59ec355f6797ccdc9946014ea5241ff7875854799934dbba901"}, - {file = "pyobjc_framework_usernotifications-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9efa3004059a8fe3f3c52f638f0401dbcdbc7b2f539587c8868da2486a64d674"}, - {file = "pyobjc_framework_usernotifications-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:62a4bd242b761a6f00a4374a369391346d225d68be07691e042ec7db452084c8"}, - {file = "pyobjc_framework_usernotifications-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:dcdcb657d2fa47108e4ef93ec3320025576857e8f69a15f082f5eda930b35e86"}, - {file = "pyobjc_framework_usernotifications-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:bad5e650c014757159523466e5b2c127e066045e2a5579a5cac9aeca46bda017"}, - {file = "pyobjc_framework_usernotifications-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bab02c31a07d3723df91de37e1e15d72770f717828efacf4bb058acb7bb82980"}, - {file = "pyobjc_framework_usernotifications-11.1.tar.gz", hash = "sha256:38fc763afa7854b41ddfca8803f679a7305d278af8a7ad02044adc1265699996"}, + {file = "pyobjc_framework_usernotifications-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:95796a075e3a92257d69596ec16d9e03cb504f1324294ed41052f5b3bf90ce9f"}, + {file = "pyobjc_framework_usernotifications-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c62e8d7153d72c4379071e34258aa8b7263fa59212cfffd2f137013667e50381"}, + {file = "pyobjc_framework_usernotifications-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:412afb2bf5fe0049f9c4e732e81a8a35d5ebf97c30a5a6abd276259d020c82ac"}, + {file = "pyobjc_framework_usernotifications-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:40a5457f4157ca007f80f0644413f44f0dc141f7864b28e1728623baf56a8539"}, + {file = "pyobjc_framework_usernotifications-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:58c09bd1bd7a8cd29613d0d0e6096eda6c8465dc5a7a733675e1b8d0406f7adc"}, + {file = "pyobjc_framework_usernotifications-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:cc69e2aed9b55296a447f2fb69cc52a1a026c50e46253dbf482f5807bce3ae7c"}, + {file = "pyobjc_framework_usernotifications-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0746d2a67ca05ae907b7551ccd3a534e9d6e76115882ab962365f9ad259c4032"}, + {file = "pyobjc_framework_usernotifications-12.1.tar.gz", hash = "sha256:019ccdf2d400f9a428769df7dba4ea97c02453372bc5f8b75ce7ae54dfe130f9"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-usernotificationsui" -version = "11.1" +version = "12.1" description = "Wrappers for the framework UserNotificationsUI on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_usernotificationsui-11.1-py2.py3-none-any.whl", hash = "sha256:b84d73d90ab319acf8fad5c59b7a5e2b6023fbb2efd68c58b532e3b3b52f647a"}, - {file = "pyobjc_framework_usernotificationsui-11.1.tar.gz", hash = "sha256:18e0182bddd10381884530d6a28634ebb3280912592f8f2ad5bac2a9308c6a65"}, + {file = "pyobjc_framework_usernotificationsui-12.1-py2.py3-none-any.whl", hash = "sha256:11af59dc5abfcb72c08769ab4d7ca32a628527a8ba341786431a0d2dacf31605"}, + {file = "pyobjc_framework_usernotificationsui-12.1.tar.gz", hash = "sha256:51381c97c7344099377870e49ed0871fea85ba50efe50ab05ccffc06b43ec02e"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-UserNotifications = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-UserNotifications = ">=12.1" [[package]] name = "pyobjc-framework-videosubscriberaccount" -version = "11.1" +version = "12.1" description = "Wrappers for the framework VideoSubscriberAccount on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"18.0\"" files = [ - {file = "pyobjc_framework_videosubscriberaccount-11.1-py2.py3-none-any.whl", hash = "sha256:d5a95ae9f2a6f0180a5bbb10e76c064f0fd327aae00a2fe90aa7b65ed4dad7ef"}, - {file = "pyobjc_framework_videosubscriberaccount-11.1.tar.gz", hash = "sha256:2dd78586260fcee51044e129197e8bf2e157176e02babeec2f873afa4235d8c6"}, + {file = "pyobjc_framework_videosubscriberaccount-12.1-py2.py3-none-any.whl", hash = "sha256:381a5e8a3016676e52b88e38b706559fa09391d33474d8a8a52f20a883104a7b"}, + {file = "pyobjc_framework_videosubscriberaccount-12.1.tar.gz", hash = "sha256:750459fa88220ab83416f769f2d5d210a1f77b8938fa4d119aad0002fc32846b"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-videotoolbox" -version = "11.1" +version = "12.1" description = "Wrappers for the framework VideoToolbox on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"12.0\"" files = [ - {file = "pyobjc_framework_videotoolbox-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dad01cdc1fe2b5ca4ba4f2472eb62fca87898e1a4ade3b692177bb09a07d4254"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:94c17bffe0f4692db2e7641390dfdcd0f73ddbb0afa6c81ef504219be0777930"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c55285c3c78183fd2a092d582e30b562777a82985cccca9e7e99a0aff2601591"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:65a96385e80cb9ad3eab7d1f3156452ff805a925c9ca287ff1491a97cca191ba"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e282cb07f6a51647ac19a3b5d31e26f1619285bac24171e403921d671e4756d9"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:31acfb12cea4f0624ecb92e74404f15e2755fbf0a3f4133dc93add44cf4a6a9f"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:0e54bd6cfcbdda4add24e8e873baab11dfb436633100cc6664f3c068e615a6ff"}, - {file = "pyobjc_framework_videotoolbox-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:df39385ffe4b32d40e8d97414356de1dcc16ef20678c7556d2c513286f42985f"}, - {file = "pyobjc_framework_videotoolbox-11.1.tar.gz", hash = "sha256:a27985656e1b639cdb102fcc727ebc39f71bb1a44cdb751c8c80cc9fe938f3a9"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5cb63e0e69aac148fa45d577f049e1e4846d65d046fcb0f7744fb90ac85da936"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a1eb1eb41c0ffdd8dcc6a9b68ab2b5bc50824a85820c8a7802a94a22dfbb4f91"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eb6ce6837344ee319122066c16ada4beb913e7bfd62188a8d14b1ecbb5a89234"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca28b39e22016eb5f81f540102a575ee6e6114074d09e17e22eb3b5647976d93"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dba7e078df01432331ee75a90c2c147264bfdb9e31998b4e4fc28913b93b832e"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e67a3890916346b7c15c9270d247e191c3899e4698fee79d460a476145715401"}, + {file = "pyobjc_framework_videotoolbox-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:67227431c340e308c4ecdce743b5d1d27757994663c983f179f2e934acdacb99"}, + {file = "pyobjc_framework_videotoolbox-12.1.tar.gz", hash = "sha256:7adc8670f3b94b086aed6e86c3199b388892edab4f02933c2e2d9b1657561bef"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreMedia = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreMedia = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-virtualization" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Virtualization on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"20.0\"" files = [ - {file = "pyobjc_framework_virtualization-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:27b3149426ab80583d8b40a0c0829d0968621b2c406abeeee1ac7ba3f25f9949"}, - {file = "pyobjc_framework_virtualization-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c2a812da4c995e1f8076678130d0b0a63042aa48219f8fb43b70e13eabcbdbc2"}, - {file = "pyobjc_framework_virtualization-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:59df6702b3e63200752be7d9c0dc590cb4c3b699c886f9a8634dd224c74b3c3c"}, - {file = "pyobjc_framework_virtualization-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:12a5ef32d2b7a56b675ea34fcb68bb9dddb7cf2c0a5ac5131f35551767bdacf1"}, - {file = "pyobjc_framework_virtualization-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:790bd2e42e8c5890319f8c576d5e171f87f95655e6fc55cf19a5f85f9e23558a"}, - {file = "pyobjc_framework_virtualization-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:5f35d823003a613bde27c2c699a8a7de45dc2bdd2e1121e0c4a337b877dfc64e"}, - {file = "pyobjc_framework_virtualization-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:b2e7ab5204fe80249dd8d031b761cf9c0106d0d5e61d88930e0f334f5060d820"}, - {file = "pyobjc_framework_virtualization-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d2db7abc0ba7b33611c2596f210e4b4f2d49b68d2df71e82e8f0126f50bb4ba"}, - {file = "pyobjc_framework_virtualization-11.1.tar.gz", hash = "sha256:4221ee5eb669e43a2ff46e04178bec149af2d65205deb5d4db5fa62ea060e022"}, + {file = "pyobjc_framework_virtualization-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9a5f565411330c5776b60eb5eb94ab1591f76f0969e85b23a046d2de915fc84e"}, + {file = "pyobjc_framework_virtualization-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a88a307dc96885afc227ceda4067f1af787f024063f4ccf453d59e7afd47cda8"}, + {file = "pyobjc_framework_virtualization-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7d5724b38e64b39ab5ec3b45993afa29fc88b307d99ee2c7a1c0fd770e9b4b21"}, + {file = "pyobjc_framework_virtualization-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:232956de8a0c3086a58c96621e0a2148497d1750ebb1bb6bea9f7f34ec3c83c6"}, + {file = "pyobjc_framework_virtualization-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a9552e49b967fb520e5be1cfce510e0b68c2ba314a28ac90aad36fe33218d430"}, + {file = "pyobjc_framework_virtualization-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e40bff972adfefbe8a02e508571b32c58e90e4d974d65470eab75c53fe47006d"}, + {file = "pyobjc_framework_virtualization-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:8d53e81f1928c4e90cbebebd39b965aa679f7fadda1fd075e18991872c4cb56b"}, + {file = "pyobjc_framework_virtualization-12.1.tar.gz", hash = "sha256:e96afd8e801e92c6863da0921e40a3b68f724804f888bce43791330658abdb0f"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyobjc-framework-vision" -version = "11.1" +version = "12.1" description = "Wrappers for the framework Vision on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\" and platform_release >= \"17.0\"" files = [ - {file = "pyobjc_framework_vision-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c6f46df632096f070e16ba902a483fcb95c01fe12856a071bc2b25ac4a89bf3"}, - {file = "pyobjc_framework_vision-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bfbde43c9d4296e1d26548b6d30ae413e2029425968cd8bce96d3c5a735e8f2c"}, - {file = "pyobjc_framework_vision-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df076c3e3e672887182953efc934c1f9683304737e792ec09a29bfee90d2e26a"}, - {file = "pyobjc_framework_vision-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1e5617e37dd2a7cff5e69e9aab039ea74b39ccdc528f6c828f2b60c1254e61e5"}, - {file = "pyobjc_framework_vision-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:dfd148a6df30ac70a9c41dd90a6c8f8c7f339bd9ca6829629a902f272e02b6b4"}, - {file = "pyobjc_framework_vision-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d1f8fdccc6135fdbfd66d8f21240d6c84465cb8e116a8e5b43601aed020051e5"}, - {file = "pyobjc_framework_vision-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:d00830c71a30fc893b3c5ee65119c7e5e5a95a16af53b8e56a0e58cff57e3b56"}, - {file = "pyobjc_framework_vision-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25d2d42edc7459b010ec87a0c5428d12fe5d62dfa95cd34fb71f716f2e4d6b95"}, - {file = "pyobjc_framework_vision-11.1.tar.gz", hash = "sha256:26590512ee7758da3056499062a344b8a351b178be66d4b719327884dde4216b"}, + {file = "pyobjc_framework_vision-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a30c3fff926348baecc3ce1f6da8ed327d0cbd55ca1c376d018e31023b79c0ab"}, + {file = "pyobjc_framework_vision-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1edbf2fc18ce3b31108f845901a88f2236783ae6bf0bc68438d7ece572dc2a29"}, + {file = "pyobjc_framework_vision-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6b3211d84f3a12aad0cde752cfd43a80d0218960ac9e6b46b141c730e7d655bd"}, + {file = "pyobjc_framework_vision-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7273e2508db4c2e88523b4b7ff38ac54808756e7ba01d78e6c08ea68f32577d2"}, + {file = "pyobjc_framework_vision-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:04296f0848cc8cdead66c76df6063720885cbdf24fdfd1900749a6e2297313db"}, + {file = "pyobjc_framework_vision-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:631add775ed1dafb221a6116137cdcd78432addc16200ca434571c2a039c0e03"}, + {file = "pyobjc_framework_vision-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fe41a1a70cc91068aee7b5293fa09dc66d1c666a8da79fdf948900988b439df6"}, + {file = "pyobjc_framework_vision-12.1.tar.gz", hash = "sha256:a30959100e85dcede3a786c544e621ad6eb65ff6abf85721f805822b8c5fe9b0"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" -pyobjc-framework-CoreML = ">=11.1" -pyobjc-framework-Quartz = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" +pyobjc-framework-CoreML = ">=12.1" +pyobjc-framework-Quartz = ">=12.1" [[package]] name = "pyobjc-framework-webkit" -version = "11.1" +version = "12.1" description = "Wrappers for the framework WebKit on macOS" optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "sys_platform == \"darwin\" and extra == \"macos\"" files = [ - {file = "pyobjc_framework_webkit-11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5e7c254ba37b7a41fe9ffd31565495cad961a82ab22727949cdb4aface7f3fa6"}, - {file = "pyobjc_framework_webkit-11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:10ec89d727af8f216ba5911ff5553f84a5b660f5ddf75b07788e3a439c281165"}, - {file = "pyobjc_framework_webkit-11.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1a6e6f64ca53c4953f17e808ecac11da288d9a6ade738156ba161732a5e0c96a"}, - {file = "pyobjc_framework_webkit-11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d01008756c3912b02b7c02f62432467fbee90a93e3b8e31fa351b4ca97c9c98"}, - {file = "pyobjc_framework_webkit-11.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:864f9867a2caaeaeb83e5c0fa3dcf78169622233cf93a9a5eeb7012ced3b8076"}, - {file = "pyobjc_framework_webkit-11.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:13b774d4244734cb77bf3c3648149c163f62acaa105243d7c48bb3fd856b5628"}, - {file = "pyobjc_framework_webkit-11.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:c1c00d549ab1d50e3d7e8f5f71352b999d2c32dc2365c299f317525eb9bff916"}, - {file = "pyobjc_framework_webkit-11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:94534450e4b3c0a4fe8ad4fa9258afc07ebfe36e1b3966f0fb5cd437c89ccfbf"}, - {file = "pyobjc_framework_webkit-11.1.tar.gz", hash = "sha256:27e701c7aaf4f24fc7e601a128e2ef14f2773f4ab071b9db7438dc5afb5053ae"}, + {file = "pyobjc_framework_webkit-12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:231048d250e97323b25e5f1690d09e2415b691c0d57bc13241e442d486ef94c8"}, + {file = "pyobjc_framework_webkit-12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3db734877025614eaef4504fadc0fbbe1279f68686a6f106f2e614e89e0d1a9d"}, + {file = "pyobjc_framework_webkit-12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:af2c7197447638b92aafbe4847c063b6dd5e1ed83b44d3ce7e71e4c9b042ab5a"}, + {file = "pyobjc_framework_webkit-12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1da0c428c9d9891c93e0de51c9f272bfeb96d34356cdf3136cb4ad56ce32ec2d"}, + {file = "pyobjc_framework_webkit-12.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1a29e334d5a7dd4a4f0b5647481b6ccf8a107b92e67b2b3c6b368c899f571965"}, + {file = "pyobjc_framework_webkit-12.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:99d0d28542a266a95ee2585f51765c0331794bca461aaf4d1f5091489d475179"}, + {file = "pyobjc_framework_webkit-12.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1aaa3bf12c7b68e1a36c0b294d2728e06f2cc220775e6dc4541d5046290e4dc8"}, + {file = "pyobjc_framework_webkit-12.1.tar.gz", hash = "sha256:97a54dd05ab5266bd4f614e41add517ae62cdd5a30328eabb06792474b37d82a"}, ] [package.dependencies] -pyobjc-core = ">=11.1" -pyobjc-framework-Cocoa = ">=11.1" +pyobjc-core = ">=12.1" +pyobjc-framework-Cocoa = ">=12.1" [[package]] name = "pyrect" @@ -4279,21 +4220,21 @@ six = "*" [[package]] name = "pytest" -version = "8.4.2" +version = "9.0.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"}, - {file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"}, + {file = "pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b"}, + {file = "pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11"}, ] [package.dependencies] colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} -iniconfig = ">=1" -packaging = ">=20" +iniconfig = ">=1.0.1" +packaging = ">=22" pluggy = ">=1.5,<2" pygments = ">=2.7.2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} @@ -4403,7 +4344,7 @@ description = "A (partial) reimplementation of pywin32 using ctypes/cffi" optional = false python-versions = ">=3.6" groups = ["dev"] -markers = "sys_platform == \"win32\"" +markers = "python_version < \"3.15\" and sys_platform == \"win32\"" files = [ {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"}, {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"}, @@ -4450,24 +4391,25 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "setuptools" -version = "80.8.0" +version = "82.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.9" groups = ["dev"] +markers = "python_version < \"3.15\"" files = [ - {file = "setuptools-80.8.0-py3-none-any.whl", hash = "sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0"}, - {file = "setuptools-80.8.0.tar.gz", hash = "sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257"}, + {file = "setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0"}, + {file = "setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.13.0) ; sys_platform != \"cygwin\""] core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"] +type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.18.*)", "pytest-mypy"] [[package]] name = "six" @@ -4483,45 +4425,60 @@ files = [ [[package]] name = "tomli" -version = "2.2.1" +version = "2.4.0" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +markers = "python_version == \"3.10\"" +files = [ + {file = "tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867"}, + {file = "tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9"}, + {file = "tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95"}, + {file = "tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76"}, + {file = "tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d"}, + {file = "tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576"}, + {file = "tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a"}, + {file = "tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa"}, + {file = "tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614"}, + {file = "tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1"}, + {file = "tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8"}, + {file = "tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a"}, + {file = "tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1"}, + {file = "tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b"}, + {file = "tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51"}, + {file = "tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729"}, + {file = "tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da"}, + {file = "tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3"}, + {file = "tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0"}, + {file = "tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e"}, + {file = "tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4"}, + {file = "tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e"}, + {file = "tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c"}, + {file = "tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f"}, + {file = "tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86"}, + {file = "tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87"}, + {file = "tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132"}, + {file = "tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6"}, + {file = "tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc"}, + {file = "tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66"}, + {file = "tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d"}, + {file = "tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702"}, + {file = "tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8"}, + {file = "tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776"}, + {file = "tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475"}, + {file = "tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2"}, + {file = "tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9"}, + {file = "tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0"}, + {file = "tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df"}, + {file = "tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d"}, + {file = "tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f"}, + {file = "tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b"}, + {file = "tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087"}, + {file = "tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd"}, + {file = "tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4"}, + {file = "tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a"}, + {file = "tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c"}, ] [[package]] @@ -4541,34 +4498,34 @@ urllib3 = ">=2" [[package]] name = "typing-extensions" -version = "4.13.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +version = "4.15.0" +description = "Backported and Experimental Type Hints for Python 3.9+" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ - {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, - {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, + {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, + {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] [[package]] name = "urllib3" -version = "2.4.0" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, - {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "winotify" @@ -4583,27 +4540,6 @@ files = [ {file = "winotify-1.1.0.tar.gz", hash = "sha256:f8a0d6ff00cb2c1b3dcdfe825431f46f6aa5dc8ce84ffc59e8fda8c7e36687fe"}, ] -[[package]] -name = "zipp" -version = "3.21.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version == \"3.9\"" -files = [ - {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, - {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] -type = ["pytest-mypy"] - [extras] linux = ["python-xlib"] linux-full = ["PyGObject", "python-xlib"] @@ -4611,5 +4547,5 @@ macos = ["pyobjc"] [metadata] lock-version = "2.1" -python-versions = ">=3.9,<3.14" -content-hash = "75b167745cf5aa84422b37ca5d7a5cb0b5faed8b41aae4299b5c4b25762d9b12" +python-versions = ">=3.10,<4.0" +content-hash = "434153b5b9a0b3ace147fb1c6d573b2d846c41610ac33be2a315d472665ab045" diff --git a/pyproject.toml b/pyproject.toml index 0f7c044..1dc0661 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "simkl-mps" -version = "2.2.0" +version = "2.2.1" description = "Automatic Media Scrobbler for Simkl" authors = [ "kavin ", @@ -25,14 +25,14 @@ packages = [ ] [tool.poetry.dependencies] -python = ">=3.9,<3.14" +python = ">=3.10,<4.0" requests = ">=2.25.0" -guessit = ">=3.3.0" +guessit = ">=3.8.0" python-dotenv = ">=0.15.0" psutil = ">=5.8.0" colorama = ">=0.4.4" pystray = ">=0.19.0" -pillow = ">=11.2.0" +pillow = ">=12.1.1" plyer = ">=2.0.0" [tool.poetry.dependencies.winotify] @@ -73,7 +73,7 @@ flake8 = ">=5,<8" pytest-mock = ">=3.6.1" requests = ">=2.25.0" types-requests = ">=2.25.0" -pyinstaller = "^6.13.0" +pyinstaller = {version = "^6.13.0", python = ">=3.9,<3.15"} [tool.poetry.scripts] simkl-mps = "simkl_mps.cli:main" diff --git a/setup.iss b/setup.iss index 257c03e..2b7fe6f 100644 --- a/setup.iss +++ b/setup.iss @@ -1,10 +1,10 @@ #define MyAppName "Media Player Scrobbler for SIMKL" #define MyAppShortName "MPS for SIMKL" -#define MyAppPublisher "kavin" +#define MyAppPublisher "ByteTrix" #define MyAppURL "https://github.com/ByteTrix/Media-Player-Scrobbler-for-Simkl" #define MyAppExeName "MPSS" #define MyAppTrayName "MPS for Simkl" -#define MyAppVersion "2.2.0" +#define MyAppVersion "2.2.1" #define MyAppDescription "Automatically track and scrobble media you watch to SIMKL" #define MyAppCopyright "Copyright (C) 2025 kavin" #define MyAppUpdateURL "https://github.com/ByteTrix/Media-Player-Scrobbler-for-Simkl/releases" @@ -140,6 +140,137 @@ const MyAppIdGuid = '{3FF84A4E-B9C2-4F49-A8DE-5F7EA15F5D88}'; // Define the AppId GUID as a script constant CONFIG_FOLDER = 'simkl-mps'; TASK_NAME = 'kavin.MediaPlayerScrobblerForSIMKL.UpdateCheck'; + SILENT_ALIAS_MARKER = '/_mpss_silent_alias_applied'; + +type + TStringArray = array of String; + +function NormalizeSwitchToken(const Token: String): String; +var + Work: String; +begin + Work := Token; + if (Length(Work) > 1) and (Work[1] = '"') and (Work[Length(Work)] = '"') then + Work := Copy(Work, 2, Length(Work) - 2); + while (Length(Work) > 0) and ((Work[1] = '/') or (Work[1] = '-')) do + Delete(Work, 1, 1); + Result := LowerCase(Work); +end; + +function IsSilentAliasToken(const Token: String): Boolean; +var + Normalized: String; +begin + Normalized := NormalizeSwitchToken(Token); + Result := (Normalized = 'quiet') or + (Normalized = 'silent') or + (Normalized = 's') or + (Normalized = 'qn') or + (Normalized = 'qb') or + (Normalized = 'passive'); +end; + +procedure SplitCmdLineTokens(const CmdLine: String; var Tokens: TStringArray); +var + i, Count: Integer; + InQuote: Boolean; + Current: String; + c: Char; +begin + SetArrayLength(Tokens, 0); + Count := 0; + InQuote := False; + Current := ''; + for i := 1 to Length(CmdLine) do + begin + c := CmdLine[i]; + if c = '"' then + begin + InQuote := not InQuote; + Current := Current + c; + end + else if (c = ' ') and (not InQuote) then + begin + if Current <> '' then + begin + SetArrayLength(Tokens, Count + 1); + Tokens[Count] := Current; + Count := Count + 1; + Current := ''; + end; + end + else + Current := Current + c; + end; + if Current <> '' then + begin + SetArrayLength(Tokens, Count + 1); + Tokens[Count] := Current; + end; +end; + +function JoinTokens(const Tokens: TStringArray): String; +var + i: Integer; +begin + Result := ''; + for i := 0 to GetArrayLength(Tokens) - 1 do + begin + if Tokens[i] <> '' then + begin + if Result <> '' then + Result := Result + ' '; + Result := Result + Tokens[i]; + end; + end; +end; + +function HandleSilentAliasLaunch: Boolean; +var + RawTokens, CleanTokens: TStringArray; + Token: String; + CleanTail: String; + i, CleanCount, ResultCode: Integer; + AliasDetected, AlreadyHandled: Boolean; +begin + Result := False; + AliasDetected := False; + AlreadyHandled := False; + SplitCmdLineTokens(GetCmdTail, RawTokens); + CleanCount := 0; + SetArrayLength(CleanTokens, 0); + + for i := 0 to GetArrayLength(RawTokens) - 1 do + begin + Token := RawTokens[i]; + if CompareText(Token, SILENT_ALIAS_MARKER) = 0 then + AlreadyHandled := True + else if IsSilentAliasToken(Token) then + AliasDetected := True + else + begin + SetArrayLength(CleanTokens, CleanCount + 1); + CleanTokens[CleanCount] := Token; + CleanCount := CleanCount + 1; + end; + end; + + if (not AliasDetected) or AlreadyHandled then + exit; + + CleanTail := Trim(JoinTokens(CleanTokens)); + if CleanTail <> '' then + CleanTail := CleanTail + ' ' + SILENT_ALIAS_MARKER + else + CleanTail := SILENT_ALIAS_MARKER; + + ResultCode := 0; + if Exec(ExpandConstant('{srcexe}'), '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART ' + CleanTail, + '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then + Result := True + else + Log('Failed to relaunch installer for silent alias. ResultCode=' + IntToStr(ResultCode)); +end; // Check if the app is currently running function IsAppRunning: Boolean; @@ -207,6 +338,12 @@ end; // Initialization function for setup function InitializeSetup: Boolean; begin + if HandleSilentAliasLaunch then + begin + Result := False; + exit; + end; + // Check if app is running and terminate it before setup begins IsAppRunning(); Result := True; diff --git a/simkl_mps/__init__.py b/simkl_mps/__init__.py index 91e3fac..063f976 100644 --- a/simkl_mps/__init__.py +++ b/simkl_mps/__init__.py @@ -2,7 +2,7 @@ Media Player Scrobbler for SIMKL package. """ -__version__ = "2.2.0" +__version__ = "2.2.1" __author__ = "kavin" # Apply compatibility patches first, before any other imports diff --git a/simkl_mps/assets/simkl-mps (Custom).png b/simkl_mps/assets/simkl-mps (Custom).png new file mode 100644 index 0000000..b5199be Binary files /dev/null and b/simkl_mps/assets/simkl-mps (Custom).png differ diff --git a/simkl_mps/cli.py b/simkl_mps/cli.py index 666abab..3bd8342 100644 --- a/simkl_mps/cli.py +++ b/simkl_mps/cli.py @@ -58,7 +58,7 @@ def get_version(): colorama.init() logger = logging.getLogger(__name__) -def _setup_logging(): +def _setup_logging(debug=False): """Configure logging for the application.""" log_file = APP_DATA_DIR / "simkl_mps.log" APP_DATA_DIR.mkdir(parents=True, exist_ok=True) # Ensure directory exists @@ -72,9 +72,9 @@ def _setup_logging(): filemode='a' # Append to log file ) - # Configure console logging (only for INFO level and above) + # Configure console logging (INFO by default, DEBUG when requested) console_handler = logging.StreamHandler(sys.stdout) - console_handler.setLevel(logging.INFO) + console_handler.setLevel(logging.DEBUG if debug else logging.INFO) formatter = logging.Formatter('%(message)s') # Simple format for console console_handler.setFormatter(formatter) @@ -531,6 +531,8 @@ def create_parser(): parser.add_argument("--version", "-v", action="store_true", help="Display version information and exit") + parser.add_argument("--debug", action="store_true", + help="Enable debug logging in console output.") subparsers = parser.add_subparsers(dest="command", help="Available commands", required=True) # Make command required @@ -551,6 +553,8 @@ def create_parser(): aliases=['t'], help="Run ONLY tray icon attached to the terminal (shows logs)." ) + tray_parser.add_argument("--debug", action="store_true", + help="Enable debug logging in console output.") version_parser = subparsers.add_parser( "version", @@ -575,8 +579,11 @@ def main(): Returns: int: Exit code (0 for success, 1 for errors). """ - # Check for common Linux dependency issues before setting up logging - if sys.platform == 'linux': + parser = create_parser() + args = parser.parse_args() + + # Check Linux GUI dependencies only for commands that need tray/GTK runtime. + if sys.platform == 'linux' and args.command in {'tray', 'start'}: try: # Try to import PyGObject - this will fail if system dependencies are missing import gi @@ -594,12 +601,9 @@ def main(): print("\nThen reinstall with: pip install --no-binary=:all: \"simkl-mps[linux]\"") print("Or with pipx: pipx install --system-site-packages \"simkl-mps[linux]\"") return 1 - - # Setup logging AFTER the dependency check - _setup_logging() - - parser = create_parser() - args = parser.parse_args() + + # Setup logging AFTER argument parsing so --debug can affect console verbosity. + _setup_logging(debug=getattr(args, 'debug', False)) # If no command was provided (e.g., just 'simkl-mps'), print help. # Note: 'required=True' in add_subparsers makes this less likely, but good practice. diff --git a/simkl_mps/credentials.py b/simkl_mps/credentials.py index ccac52c..1f72925 100644 --- a/simkl_mps/credentials.py +++ b/simkl_mps/credentials.py @@ -28,6 +28,38 @@ SIMKL_CLIENT_ID = CLIENT_ID_PLACEHOLDER SIMKL_CLIENT_SECRET = CLIENT_SECRET_PLACEHOLDER + +def _is_placeholder_credential(value: str, placeholder: str = None) -> bool: + """ + Return True when a credential is missing or still a build/runtime placeholder. + + Checks for: + - Empty/None values + - Exact placeholder matches (if placeholder provided) + """ + if not value: + return True + + normalized = str(value).strip().strip('"').strip("'") + + # Check exact placeholder if provided (for build-injected constants) + if placeholder and normalized == placeholder: + return True + + # Check for common placeholder patterns from env/config + placeholder_patterns = [ + "placeholder", + "id", + "change_me", + ] + + normalized_lower = normalized.lower() + for pattern in placeholder_patterns: + if pattern in normalized_lower: + return True + + return False + APP_NAME_FOR_PATH = "simkl-mps" USER_SUBDIR_FOR_PATH = "kavin" # Updated from kavinthangavel try: @@ -70,20 +102,56 @@ def get_credentials(): or if the build/init process failed. """ - client_id = SIMKL_CLIENT_ID - client_secret = SIMKL_CLIENT_SECRET - - if not client_id or not client_secret: - logger.debug("Build-injected credentials not found, trying development sources...") - - client_id = os.environ.get("SIMKL_CLIENT_ID") - client_secret = os.environ.get("SIMKL_CLIENT_SECRET") + client_id = None + client_secret = None + + if not _is_placeholder_credential(SIMKL_CLIENT_ID, CLIENT_ID_PLACEHOLDER): + client_id = SIMKL_CLIENT_ID + if not _is_placeholder_credential(SIMKL_CLIENT_SECRET, CLIENT_SECRET_PLACEHOLDER): + client_secret = SIMKL_CLIENT_SECRET + + if client_id and client_secret: + logger.debug("Using build-injected SIMKL client credentials.") + else: + logger.debug("Build-injected credentials missing/placeholder, trying runtime sources...") + + # Check environment variables with placeholder validation + env_client_id = os.environ.get("SIMKL_CLIENT_ID") + env_client_secret = os.environ.get("SIMKL_CLIENT_SECRET") + if env_client_id and not _is_placeholder_credential(env_client_id): + client_id = env_client_id + if env_client_secret and not _is_placeholder_credential(env_client_secret): + client_secret = env_client_secret + + # Fall back to app env file used by end users (.simkl_mps.env) + env_file_path = get_env_file_path() + if (not client_id or not client_secret) and env_file_path.exists(): + logger.debug(f"Loading runtime credentials from {env_file_path}") + runtime_config = dotenv_values(env_file_path) + + # Validate credentials from runtime config file against placeholders + runtime_client_id = runtime_config.get("SIMKL_CLIENT_ID") + runtime_client_secret = runtime_config.get("SIMKL_CLIENT_SECRET") + + if runtime_client_id and not _is_placeholder_credential(runtime_client_id): + client_id = client_id or runtime_client_id + if runtime_client_secret and not _is_placeholder_credential(runtime_client_secret): + client_secret = client_secret or runtime_client_secret + + # Final fallback for local development if (not client_id or not client_secret) and DEV_CREDS_PATH.exists(): logger.debug(f"Loading development credentials from {DEV_CREDS_PATH}") dev_config = dotenv_values(DEV_CREDS_PATH) - client_id = client_id or dev_config.get("SIMKL_CLIENT_ID") - client_secret = client_secret or dev_config.get("SIMKL_CLIENT_SECRET") + + # Validate credentials from dev config against placeholders + dev_client_id = dev_config.get("SIMKL_CLIENT_ID") + dev_client_secret = dev_config.get("SIMKL_CLIENT_SECRET") + + if dev_client_id and not _is_placeholder_credential(dev_client_id): + client_id = client_id or dev_client_id + if dev_client_secret and not _is_placeholder_credential(dev_client_secret): + client_secret = client_secret or dev_client_secret access_token = None @@ -92,16 +160,24 @@ def get_credentials(): if env_file_path.exists(): logger.debug(f"Reading credentials from {env_file_path} inside get_credentials()") config = dotenv_values(env_file_path) - access_token = config.get("SIMKL_ACCESS_TOKEN") - user_id = config.get("SIMKL_USER_ID") + + # Validate access token against placeholders + raw_access_token = config.get("SIMKL_ACCESS_TOKEN") + if raw_access_token and not _is_placeholder_credential(raw_access_token): + access_token = raw_access_token + + # Validate user ID against placeholders + raw_user_id = config.get("SIMKL_USER_ID") + if raw_user_id and not _is_placeholder_credential(raw_user_id): + user_id = raw_user_id if user_id: logger.debug(f"Found user ID in env file: {user_id}") else: - logger.debug("User ID not found in env file") + logger.debug("User ID not found in env file or value is a placeholder") if not access_token: - logger.warning(f"Found env file at {env_file_path}, but SIMKL_ACCESS_TOKEN key is missing or empty.") + logger.warning(f"Found env file at {env_file_path}, but SIMKL_ACCESS_TOKEN key is missing, empty, or contains a placeholder value.") else: logger.debug(f"Env file not found at {env_file_path} inside get_credentials()") diff --git a/simkl_mps/main.py b/simkl_mps/main.py index 120a31a..9c77fdb 100644 --- a/simkl_mps/main.py +++ b/simkl_mps/main.py @@ -10,6 +10,7 @@ import threading import pathlib import logging +from logging.handlers import TimedRotatingFileHandler from simkl_mps.monitor import Monitor from simkl_mps.credentials import get_credentials from simkl_mps.config_manager import get_app_data_dir, initialize_paths, get_setting, APP_NAME @@ -49,7 +50,13 @@ class ConfigurationError(Exception): stream_handler.setFormatter(stream_formatter) try: - file_handler = logging.FileHandler(log_file_path, mode='a', encoding='utf-8') + file_handler = TimedRotatingFileHandler( + log_file_path, + when='W0', # Rotate weekly (Monday 00:00) + interval=1, + backupCount=6, + encoding='utf-8' + ) file_handler.setLevel(logging.INFO) file_formatter = logging.Formatter('%(asctime)s [%(levelname)-8s] %(name)s: %(message)s') file_handler.setFormatter(file_formatter) diff --git a/simkl_mps/media_cache.py b/simkl_mps/media_cache.py index 6bf9286..39b1b80 100644 --- a/simkl_mps/media_cache.py +++ b/simkl_mps/media_cache.py @@ -95,7 +95,8 @@ def _filter_media_info(self, raw_info: dict) -> dict: allowed_other_fields_must_have_value = [ 'source', 'duration_seconds', 'original_input', 'original_filepath', - 'season', 'episode' + 'season', 'episode', + 'season_display', 'episode_display' ] for field in allowed_other_fields_can_be_null: if field in raw_info: diff --git a/simkl_mps/media_scrobbler.py b/simkl_mps/media_scrobbler.py index 20a8ecc..ce62a92 100644 --- a/simkl_mps/media_scrobbler.py +++ b/simkl_mps/media_scrobbler.py @@ -11,10 +11,10 @@ import re import requests import pathlib -from difflib import SequenceMatcher from datetime import datetime, timezone import threading from collections import deque +from typing import Any, Dict from requests.exceptions import RequestException # Import necessary functions and libraries @@ -93,6 +93,10 @@ def __init__(self, app_data_dir, client_id=None, access_token=None, testing_mode self.media_type = None # 'movie', 'episode' (from guessit), 'show', 'anime' (from simkl) self.season = None # Season number for episodes self.episode = None # Episode number for episodes + self._season_guess_from_filename = None + self._episode_guess_from_filename = None + self.display_season = None + self.display_episode = None self.last_backlog_attempt_time = {} # Track last offline sync attempt per item {cache_key: timestamp} self._last_connection_error_log = {} # Tracks last log time for player connection errors self._backlog_notification_throttle = {} # Track last notification time per item {item_key: timestamp} @@ -399,6 +403,16 @@ def process_window(self, window_info): self.stop_tracking() return None + # Detect media switches even when guessit returns identical titles (e.g., sequential episodes) + if self.currently_tracking and self.current_filepath and filepath: + if self._has_media_file_changed(self.current_filepath, filepath): + logger.info( + "Media change detected via filepath switch: '%s' -> '%s'. Resetting tracking for new item.", + self.current_filepath, + filepath + ) + self.stop_tracking() + detected_title = parse_filename_from_path(filepath) detection_source = "filename" detection_details = os.path.basename(filepath) @@ -438,6 +452,16 @@ def process_window(self, window_info): "detection_details": detection_details } + @staticmethod + def _has_media_file_changed(previous_filepath, current_filepath): + """Case-insensitive comparison of media filenames to detect switches within the same player.""" + if not previous_filepath or not current_filepath: + return False + + prev_name = os.path.basename(previous_filepath).lower() + curr_name = os.path.basename(current_filepath).lower() + return prev_name != curr_name + def _start_new_media_item(self, raw_title, filepath, initial_media_type_guess, guessit_info=None): """Starts tracking a new media item, sets initial state, and attempts identification.""" if not raw_title or raw_title.lower() in ["audio", "video", "media", "no file"]: @@ -463,6 +487,18 @@ def _start_new_media_item(self, raw_title, filepath, initial_media_type_guess, g self.media_type = initial_media_type_guess # Initial guess, will be refined by Simkl self.season = None self.episode = None + self._season_guess_from_filename = None + self._episode_guess_from_filename = None + self.display_season = None + self.display_episode = None + + if guessit_info and isinstance(guessit_info, dict): + self._season_guess_from_filename = guessit_info.get('season') + self._episode_guess_from_filename = guessit_info.get('episode') + self.display_season = self._season_guess_from_filename + self.display_episode = self._episode_guess_from_filename + + self._derive_display_season_episode() self._send_notification("Tracking Started", f"Tracking: '{raw_title}'", offline_only=True) @@ -489,6 +525,51 @@ def _start_new_media_item(self, raw_title, filepath, initial_media_type_guess, g logger.info("Offline: Cannot cache basic info - filepath not available.") + def _derive_display_season_episode(self): + """Determine display season/episode values using filename guesses when API returns generic numbering.""" + season_display = self.display_season if self.display_season is not None else self.season + episode_display = self.display_episode if self.display_episode is not None else self.episode + + if self._season_guess_from_filename is not None: + guess = self._season_guess_from_filename + if isinstance(guess, int): + if season_display is None or (isinstance(season_display, int) and season_display in (0, 1) and guess > 1): + season_display = guess + else: + if season_display is None: + season_display = guess + + if self._episode_guess_from_filename is not None: + if episode_display is None or episode_display == self.episode: + episode_display = self._episode_guess_from_filename + + self.display_season = season_display + self.display_episode = episode_display + + def _build_episode_display_suffix(self): + """Return a formatted suffix (e.g., ' S03E05') for display purposes.""" + if self.media_type in ['show', 'anime']: + season_val = self.display_season if self.display_season is not None else self.season + episode_val = self.display_episode if self.display_episode is not None else self.episode + parts = [] + + if season_val is not None: + if isinstance(season_val, int): + parts.append(f"S{season_val:02d}") + else: + parts.append(f"S{season_val}") + + if episode_val is not None: + if isinstance(episode_val, int): + parts.append(f"E{episode_val:02d}") + else: + parts.append(f"E{episode_val}") + + if parts: + return " " + "".join(parts) + return "" + + def _cache_initial_offline_info(self, raw_title, filepath, media_type_guess, guessit_info): """Caches basic info when detected offline before full Simkl ID.""" offline_cache_key = os.path.basename(filepath).lower() @@ -540,6 +621,12 @@ def _apply_cached_info_to_state(self, cached_info): self.media_type = cached_info.get('type') # Simkl type: 'movie', 'show', 'anime' self.season = cached_info.get('season') self.episode = cached_info.get('episode') + if 'season_display' in cached_info: + self.display_season = cached_info.get('season_display') + if 'episode_display' in cached_info: + self.display_episode = cached_info.get('episode_display') + + self._derive_display_season_episode() if 'duration_seconds' in cached_info and self.total_duration_seconds is None: self.total_duration_seconds = cached_info['duration_seconds'] @@ -550,15 +637,15 @@ def _apply_cached_info_to_state(self, cached_info): if self.currently_tracking and self.movie_name and self.simkl_id: display_text = f"Playing: '{self.movie_name}'" if self.media_type in ['show', 'anime']: - if self.season is not None and self.episode is not None: - display_text += f" S{self.season}E{self.episode}" - elif self.media_type == 'anime' and self.episode is not None: # Anime might only have episode - display_text += f" E{self.episode}" + suffix = self._build_episode_display_suffix() + if suffix: + display_text += suffix elif self.media_type == 'movie' and cached_info.get('year'): display_text += f" ({cached_info.get('year')})" + media_label = (self.media_type or 'media').capitalize() self._send_notification( - f"{self.media_type.capitalize()} Identified (Cache)", + f"{media_label} Identified (Cache)", display_text, online_only=True # Notifications for confirmed IDs are online-only ) @@ -594,9 +681,9 @@ def _update_tracking(self, window_info=None): # Get position and duration from player pos, dur = None, None + position_updated_from_player = False if process_name: - pos, dur = self.get_player_position_duration(process_name) - position_updated_from_player = False + pos, dur = self.get_player_position_duration(process_name) if pos is not None and dur is not None and dur > 0: if self.total_duration_seconds is None or abs(self.total_duration_seconds - dur) > 2: logger.info(f"Updating total duration for '{self.movie_name or self.currently_tracking}' from {self.total_duration_seconds}s to {dur}s via player.") @@ -655,7 +742,8 @@ def _update_tracking(self, window_info=None): # self.last_scrobble_time = current_time # Update this only when returning scrobble data below # Check completion threshold if not self.completed and (current_time - self.last_progress_check > 5): # Check every 5s completion_pct = self._calculate_percentage(use_position=position_updated_from_player) - if completion_pct and completion_pct >= self.completion_threshold: + threshold = self.completion_threshold + if completion_pct is not None and threshold is not None and float(completion_pct) >= float(threshold): display_title_for_log = self.movie_name or self.currently_tracking logger.info(f"Completion threshold ({self.completion_threshold}%) met for '{display_title_for_log}' at {completion_pct:.2f}%.") self._log_playback_event("completion_threshold_reached") @@ -733,7 +821,8 @@ def stop_tracking(self): # Use a stricter check if it wasn't already marked complete by _update_tracking if not self.completed: final_completion_pct = self._calculate_percentage(use_position=True) # Prefer position at stop - if final_completion_pct and final_completion_pct >= self.completion_threshold: + threshold = self.completion_threshold + if final_completion_pct is not None and threshold is not None and float(final_completion_pct) >= float(threshold): logger.info(f"'{final_movie_name or final_raw_title}' met completion threshold upon stopping.") # Attempt to add to history if not already done self._attempt_add_to_history() # This might set self.completed @@ -1049,6 +1138,8 @@ def _process_simkl_search_result(self, result, original_input, cache_key, source if 'episode' in episode_details_from_api: self.episode = episode_details_from_api['episode'] + self._derive_display_season_episode() + year = media_item.get('year') runtime_minutes = media_item.get('runtime') or episode_details_from_api.get('runtime') @@ -1139,6 +1230,8 @@ def _process_simkl_search_result(self, result, original_input, cache_key, source poster_url=final_poster_url_for_cache, source_description=source_description, original_filepath_if_any=original_filepath_for_cache, + season_display=self.display_season, + episode_display=self.display_episode, _api_full_details=final_api_full_details_for_cache # This now passes the richer details ) @@ -1147,11 +1240,14 @@ def _process_simkl_search_result(self, result, original_input, cache_key, source # For now, let's keep it to ensure a notification is sent. display_text = f"Playing: '{self.movie_name}'" # self.movie_name might have been updated by cache_media_info if self.media_type in ['show', 'anime']: # self.media_type might have been updated - if self.season is not None and self.episode is not None: display_text += f" S{self.season}E{self.episode}" - elif self.media_type == 'anime' and self.episode is not None: display_text += f" E{self.episode}" - elif self.media_type == 'movie' and final_year_for_cache: display_text += f" ({final_year_for_cache})" # Use potentially updated year - - self._send_notification(f"{self.media_type.capitalize()} Identified", display_text, online_only=True) + suffix = self._build_episode_display_suffix() + if suffix: + display_text += suffix + elif self.media_type == 'movie' and final_year_for_cache: + display_text += f" ({final_year_for_cache})" # Use potentially updated year + + media_label = (self.media_type or 'media').capitalize() + self._send_notification(f"{media_label} Identified", display_text, online_only=True) self._clear_backlog_entry_if_temp_identified() def _identify_movie(self, title_to_search): @@ -1246,7 +1342,11 @@ def _attempt_add_to_history(self): """ display_title = self.movie_name or self.currently_tracking # Use official name if known # Cache key for cooldown tracking: prefer filepath, fallback to raw title - cache_key_for_cooldown = os.path.basename(self.current_filepath).lower() if self.current_filepath else self.currently_tracking.lower() + cache_key_for_cooldown = ( + os.path.basename(self.current_filepath).lower() + if self.current_filepath + else (self.currently_tracking or "").lower() + ) current_time = time.time() cooldown_period = 300 # 5 minutes @@ -1355,7 +1455,8 @@ def _attempt_add_to_history(self): media_type=self.media_type, season=self.season, episode=self.episode, original_filepath=self.current_filepath ) - self._send_notification(f"{self.media_type.capitalize()} Synced", f"'{display_title}' added to Simkl.", online_only=True) + media_label = (self.media_type or 'media').capitalize() + self._send_notification(f"{media_label} Synced", f"'{display_title}' added to Simkl.", online_only=True) if cache_key_for_cooldown in self.last_backlog_attempt_time: del self.last_backlog_attempt_time[cache_key_for_cooldown] return True @@ -1400,7 +1501,11 @@ def _add_to_backlog_due_to_issue(self, item_key_for_backlog, title_for_backlog, self.backlog_cleaner.add(item_key_for_backlog, title_for_backlog, additional_data=backlog_data_payload) # Use a consistent cache key for cooldown, based on current filepath or raw title - cooldown_key = os.path.basename(self.current_filepath).lower() if self.current_filepath else self.currently_tracking.lower() + cooldown_key = ( + os.path.basename(self.current_filepath).lower() + if self.current_filepath + else (self.currently_tracking or "").lower() + ) self.last_backlog_attempt_time[cooldown_key] = time.time() self.completed = True # Mark as "handled" for this playback session @@ -1494,7 +1599,7 @@ def _build_add_to_history_payload(self, watched_at=None): if self.episode is not None: try: anime_episode_payload = [{"number": int(self.episode), "watched_at": watched_at}] - show_item = {"ids": item_ids} + show_item: Dict[str, Any] = {"ids": item_ids} if self.season is not None: # If season is known, nest episode under it show_item["seasons"] = [{"number": int(self.season), "episodes": anime_episode_payload}] else: # Otherwise, episodes directly under show (common for OVAs or movies treated as anime episodes) @@ -2076,8 +2181,8 @@ def sync_loop(): def cache_media_info(self, original_title_key, simkl_id, display_name, media_type='movie', season=None, episode=None, year=None, runtime_minutes=None, api_ids=None, overview=None, poster_url=None, # Changed from poster_url - source_description=None, original_filepath_if_any=None, - _api_full_details=None): + source_description=None, season_display=None, episode_display=None, + original_filepath_if_any=None, _api_full_details=None): """ Caches detailed media info, consolidating by Simkl ID and merging data. `original_title_key` is the key for this specific caching attempt (e.g., filename or raw title). @@ -2128,7 +2233,7 @@ def cache_media_info(self, original_title_key, simkl_id, display_name, media_typ break # Found the matching episode # Prepare the new data, adding fields only if they have a meaningful value - new_data_to_cache = {"simkl_id": simkl_id} + new_data_to_cache: Dict[str, Any] = {"simkl_id": simkl_id} if display_name: new_data_to_cache["movie_name"] = display_name if media_type: new_data_to_cache["type"] = media_type if year is not None: new_data_to_cache["year"] = year @@ -2149,6 +2254,8 @@ def cache_media_info(self, original_title_key, simkl_id, display_name, media_typ if media_type in ['show', 'anime']: if season is not None: new_data_to_cache["season"] = season if episode is not None: new_data_to_cache["episode"] = episode + if season_display is not None: new_data_to_cache["season_display"] = season_display + if episode_display is not None: new_data_to_cache["episode_display"] = episode_display duration_seconds_to_cache = None if runtime_minutes_for_cache: # Use the potentially episode-specific runtime @@ -2243,6 +2350,10 @@ def cache_media_info(self, original_title_key, simkl_id, display_name, media_typ if media_type: self.media_type = media_type if season is not None: self.season = season if episode is not None: self.episode = episode + if season_display is not None: self.display_season = season_display + if episode_display is not None: self.display_episode = episode_display + + self._derive_display_season_episode() current_total_duration = new_data_to_cache.get("duration_seconds") if current_total_duration is not None and \ @@ -2255,13 +2366,14 @@ def cache_media_info(self, original_title_key, simkl_id, display_name, media_typ if is_new_id_for_instance or (display_name and self.movie_name != display_name): notify_text = f"Playing: '{self.movie_name}'" if self.media_type in ['show', 'anime']: - # Use the parameters passed to this function, not the instance variables (which may be stale) - if season is not None and episode is not None: notify_text += f" S{season}E{episode}" - elif episode is not None : notify_text += f" E{episode}" # Anime + suffix = self._build_episode_display_suffix() + if suffix: + notify_text += suffix elif year is not None: notify_text += f" ({year})" # Use year from params if available elif new_data_to_cache.get('year') is not None: notify_text += f" ({new_data_to_cache.get('year')})" - self._send_notification(f"{self.media_type.capitalize()} Identified", notify_text, online_only=True) + media_label = (self.media_type or 'media').capitalize() + self._send_notification(f"{media_label} Identified", notify_text, online_only=True) def is_complete(self, threshold_override=None): @@ -2276,9 +2388,10 @@ def is_complete(self, threshold_override=None): if percentage is None: # Fallback to accumulated watch time percentage = self._calculate_percentage(use_accumulated=True) - if percentage is None: return False # Cannot determine completion + if percentage is None or threshold_to_use is None: + return False # Cannot determine completion - is_now_complete = percentage >= threshold_to_use + is_now_complete = float(percentage) >= float(threshold_to_use) # Log first time completion detection for this item if is_now_complete and not hasattr(self, '_logged_completion_for_this_item'): diff --git a/simkl_mps/monitor.py b/simkl_mps/monitor.py index c3d4977..f92abe3 100644 --- a/simkl_mps/monitor.py +++ b/simkl_mps/monitor.py @@ -212,12 +212,24 @@ def set_credentials(self, client_id, access_token): self.access_token = access_token self.scrobbler.set_credentials(client_id, access_token) - def cache_media_info(self, title, simkl_id, display_name, media_type='movie', season=None, episode=None, year=None, runtime=None): + def cache_media_info(self, title, simkl_id, display_name, media_type='movie', season=None, episode=None, + year=None, runtime=None, season_display=None, episode_display=None): """Cache media info to avoid repeated searches for any media type""" logger.info(f"Caching media info for '{title}': ID={simkl_id}, Display='{display_name}', Type={media_type}" + (f", Season={season}" if season is not None else "") + (f", Episode={episode}" if episode is not None else "")) - self.scrobbler.cache_media_info(title, simkl_id, display_name, media_type, season, episode, year, runtime) + self.scrobbler.cache_media_info( + title, + simkl_id, + display_name, + media_type, + season, + episode, + year, + runtime, + season_display=season_display, + episode_display=episode_display + ) def cache_movie_info(self, title, simkl_id, movie_name, runtime=None): """Legacy method for backward compatibility, delegates to cache_media_info""" diff --git a/simkl_mps/players/potplayer.py b/simkl_mps/players/potplayer.py index 0bb4c4e..b1ad3b1 100644 --- a/simkl_mps/players/potplayer.py +++ b/simkl_mps/players/potplayer.py @@ -4,6 +4,7 @@ """ import logging +import os import platform import re @@ -11,16 +12,26 @@ # Setup module logger logger = logging.getLogger(__name__) +VIDEO_EXTENSIONS = { + '.mkv', '.mp4', '.avi', '.mov', '.wmv', '.flv', '.webm', '.m4v', '.ts', '.m2ts', '.mpg', '.mpeg' +} + # Only import Windows-specific modules on Windows PLATFORM = platform.system().lower() +win32gui = None +win32con = None +win32process = None +psutil = None if PLATFORM == 'windows': try: import win32gui import win32con + import win32process import psutil except ImportError: win32gui = None win32con = None + win32process = None psutil = None logger.warning("PotPlayer integration requires pywin32 and psutil on Windows") @@ -31,6 +42,8 @@ def find_potplayer_hwnd(): """Find PotPlayer window handle.""" + if not win32gui: + return None try: hwnd = win32gui.FindWindow("PotPlayer64", None) if hwnd: @@ -42,6 +55,8 @@ def find_potplayer_hwnd(): def get_playback_ms(hwnd): """Get current playback position in milliseconds.""" + if not win32gui or not win32con: + return None try: return win32gui.SendMessage(hwnd, win32con.WM_USER, PPM_GET_PLAYBACK_TIME_MS, 0) except Exception as e: @@ -50,6 +65,8 @@ def get_playback_ms(hwnd): def get_total_ms(hwnd): """Get total duration in milliseconds.""" + if not win32gui or not win32con: + return None try: return win32gui.SendMessage(hwnd, win32con.WM_USER, PPM_GET_TOTAL_TIME_MS, 0) except Exception: @@ -74,10 +91,12 @@ def __init__(self): self.name = 'potplayer' self.platform = platform.system().lower() self.last_hwnd = None + self.last_window_title = None self.cached_filename = None + self.cached_filepath = None self._connection_logged = False - - if self.platform == 'windows' and not all([win32gui, win32con, psutil]): + + if self.platform == 'windows' and not all([win32gui, win32con, win32process, psutil]): logger.error("PotPlayer integration requires pywin32 and psutil libraries on Windows") def get_position_duration(self, process_name=None): @@ -96,7 +115,9 @@ def get_position_duration(self, process_name=None): hwnd = find_potplayer_hwnd() if not hwnd: self.last_hwnd = None + self.last_window_title = None self.cached_filename = None + self.cached_filepath = None return None, None try: @@ -133,7 +154,7 @@ def is_paused(self): Returns: bool: True if paused, False if playing, None if unknown """ - if self.platform != 'windows' or not win32gui: + if self.platform != 'windows' or not win32gui or not win32con: return None hwnd = find_potplayer_hwnd() @@ -158,36 +179,124 @@ def get_current_filepath(self, process_name=None): str: Filepath of the current media, or None if unavailable """ if self.platform != 'windows' or not win32gui: - return self.cached_filename + return self.cached_filepath or self.cached_filename hwnd = find_potplayer_hwnd() if not hwnd: - return self.cached_filename + return self.cached_filepath or self.cached_filename try: window_title = win32gui.GetWindowText(hwnd) if not window_title or window_title == "PotPlayer": - return self.cached_filename + return self.cached_filepath or self.cached_filename + + if self.last_window_title == window_title: + return self.cached_filepath or self.cached_filename + + self.last_window_title = window_title clean_title = window_title if " - PotPlayer" in clean_title: clean_title = clean_title.replace(" - PotPlayer", "").strip() if self._is_menu_state(clean_title): - logger.debug(f"Detected menu state: '{clean_title}', using cached filename") - return self.cached_filename + logger.debug(f"Detected menu state: '{clean_title}', attempting process handle fallback") + resolved_from_process = self._resolve_full_path(None, hwnd) + if resolved_from_process: + if self.cached_filepath != resolved_from_process: + logger.debug(f"Resolved PotPlayer media via handle fallback: '{resolved_from_process}'") + self.cached_filepath = resolved_from_process + self.cached_filename = os.path.basename(resolved_from_process) + return resolved_from_process + + return self.cached_filepath or self.cached_filename cleaned_filename = self._clean_filename(clean_title) if cleaned_filename: + resolved_path = self._resolve_full_path(cleaned_filename, hwnd) + if resolved_path: + if self.cached_filepath != resolved_path: + logger.debug(f"Resolved PotPlayer media to full path: '{resolved_path}'") + self.cached_filepath = resolved_path + self.cached_filename = os.path.basename(resolved_path) + return resolved_path + + # Fallback: return cleaned filename if full path not available + if self.cached_filename != cleaned_filename: + logger.debug(f"Cached PotPlayer filename: '{cleaned_filename}'") self.cached_filename = cleaned_filename - logger.debug(f"Cached valid filename from PotPlayer: '{cleaned_filename}'") + self.cached_filepath = cleaned_filename return cleaned_filename - - return self.cached_filename + + return self.cached_filepath or self.cached_filename except Exception as e: logger.debug(f"Error getting filepath from PotPlayer: {e}") - return self.cached_filename + return self.cached_filepath or self.cached_filename + + def _get_process_from_hwnd(self, hwnd): + """Return psutil.Process for the PotPlayer window handle.""" + if not hwnd or not psutil or not win32process: + return None + + try: + _, pid = win32process.GetWindowThreadProcessId(hwnd) + if pid: + return psutil.Process(pid) + except (psutil.Error, ValueError, RuntimeError) as exc: + logger.debug(f"Unable to resolve PotPlayer process: {exc}") + except Exception as exc: # pragma: no cover - defensive + logger.debug(f"Unexpected error resolving PotPlayer process: {exc}") + return None + + def _resolve_full_path(self, filename, hwnd): + """Attempt to resolve the full path for the provided filename using process handles.""" + process = self._get_process_from_hwnd(hwnd) + if not process: + return None + + target_basename = os.path.basename(filename).lower() if filename else None + + # Try open file handles first + try: + for open_file in process.open_files(): + candidate_path = open_file.path + if not candidate_path: + continue + candidate_basename = os.path.basename(candidate_path).lower() + if target_basename: + if candidate_basename == target_basename: + return candidate_path + else: + if os.path.splitext(candidate_basename)[1].lower() in VIDEO_EXTENSIONS: + return candidate_path + except Exception as exc: # pragma: no cover - defensive + if psutil and isinstance(exc, (psutil.AccessDenied, psutil.NoSuchProcess)): + logger.debug(f"Access denied enumerating PotPlayer open files: {exc}") + else: + logger.debug(f"Unexpected error inspecting PotPlayer open files: {exc}") + + # Fallback: check command-line arguments (works when file opened via CLI) + try: + for arg in process.cmdline()[1:]: + if not arg: + continue + arg_basename = os.path.basename(arg).lower() + if target_basename: + if arg_basename == target_basename and os.path.exists(arg): + return arg + else: + if os.path.exists(arg) and os.path.splitext(arg_basename)[1].lower() in VIDEO_EXTENSIONS: + return arg + except Exception as exc: # pragma: no cover - defensive + if psutil and isinstance(exc, (psutil.AccessDenied, psutil.NoSuchProcess)): + logger.debug(f"Unable to resolve PotPlayer media via cmdline due to access restrictions: {exc}") + elif isinstance(exc, (FileNotFoundError, OSError)): + logger.debug(f"Unable to resolve PotPlayer media via cmdline: {exc}") + else: + logger.debug(f"Unexpected error inspecting PotPlayer cmdline: {exc}") + + return None def _is_menu_state(self, title): """Check if the title represents a menu/UI state rather than a filename.""" @@ -217,6 +326,13 @@ def _clean_filename(self, filename): cleaned = filename + # Remove leading release-group style tags (e.g., [SubsPlease], [1/4]) + while True: + updated = re.sub(r'^\[[^\]]+\]\s*', '', cleaned, flags=re.IGNORECASE) + if updated == cleaned: + break + cleaned = updated + cleaned = re.sub(r'\s*\(With subtitles\)$', '', cleaned, flags=re.IGNORECASE) cleaned = re.sub(r'\s*\[Subtitles.*?\]$', '', cleaned, flags=re.IGNORECASE) cleaned = cleaned.strip() diff --git a/simkl_mps/tray_base.py b/simkl_mps/tray_base.py index 517298a..6ee9bc3 100644 --- a/simkl_mps/tray_base.py +++ b/simkl_mps/tray_base.py @@ -12,14 +12,20 @@ import webbrowser import subprocess from pathlib import Path +from typing import Any, Optional, TYPE_CHECKING from PIL import Image, ImageDraw, ImageFont import abc import pystray import tkinter as tk from tkinter import messagebox +if TYPE_CHECKING: + from simkl_mps.main import SimklScrobbler + from simkl_mps.media_scrobbler import MediaScrobbler + from simkl_mps.watch_history_manager import WatchHistoryManager + # Import API and credential functions -from simkl_mps.simkl_api import get_user_settings +from simkl_mps.simkl_api import get_user_settings, pin_auth_flow from simkl_mps.credentials import get_credentials # Import constants only, not the whole module from simkl_mps.main import APP_DATA_DIR, APP_NAME @@ -28,6 +34,8 @@ logger = logging.getLogger(__name__) +DEFAULT_DONATION_URL = "https://github.com/sponsors/itskavin" + def get_simkl_scrobbler(): """Lazy import for SimklScrobbler to avoid circular imports""" from simkl_mps.main import SimklScrobbler @@ -121,8 +129,31 @@ def show_dialog(): return False + def _show_info_dialog(self, title, message): + """Display an informational dialog and wait for the user to dismiss it.""" + try: + + def show_dialog(): + try: + root = tk.Tk() + root.withdraw() + root.attributes('-topmost', True) + root.lift() + root.focus_force() + messagebox.showinfo(title, message, parent=root) + root.destroy() + except Exception as dialog_err: + logger.error(f"Error showing info dialog: {dialog_err}") + + thread = threading.Thread(target=show_dialog) + thread.start() + thread.join() + except Exception as e: + logger.error(f"Error launching info dialog: {e}") + + def __init__(self): - self.scrobbler = None + self.scrobbler: Optional["SimklScrobbler"] = None self.monitoring_active = False self.status = "stopped" self.status_details = "" @@ -134,10 +165,18 @@ def __init__(self): self.is_first_run = False self.check_first_run() + # Track authentication state for menu labeling and actions + self._auth_in_progress = False + self.is_authenticated = False + self._last_known_access_token = None + self._last_known_client_id = None + self._refresh_auth_state(initial=True) + # Improved asset path resolution for frozen applications if getattr(sys, 'frozen', False): # When frozen, look for assets in multiple locations - base_dir = Path(sys._MEIPASS) if hasattr(sys, '_MEIPASS') else Path(sys.executable).parent + meipass_dir = getattr(sys, "_MEIPASS", None) + base_dir = Path(meipass_dir) if meipass_dir else Path(sys.executable).parent possible_asset_paths = [ base_dir / "simkl_mps" / "assets", # Standard location in the frozen app base_dir / "assets", # Alternative location @@ -160,6 +199,134 @@ def __init__(self): module_dir = Path(__file__).parent self.assets_dir = module_dir / "assets" logger.info(f"Using assets directory from source: {self.assets_dir}") + + def _check_auth_state(self): + """Return the current authentication state and cached credentials.""" + try: + creds = get_credentials() + token = creds.get("access_token") + client_id = creds.get("client_id") + return bool(token), token, client_id + except Exception as e: + logger.error(f"Failed to read authentication state: {e}", exc_info=True) + return False, None, None + + def _refresh_auth_state(self, initial: bool = False): + """Refresh cached authentication state; return True if anything changed.""" + authenticated, token, client_id = self._check_auth_state() + changed = ( + authenticated != self.is_authenticated or + token != self._last_known_access_token or + client_id != self._last_known_client_id + ) + self.is_authenticated = authenticated + self._last_known_access_token = token + self._last_known_client_id = client_id + if changed and not initial: + logger.info("Authentication state changed: %s", "authenticated" if authenticated else "not authenticated") + return changed + + def _get_media_scrobbler(self) -> Any: + """Return the active MediaScrobbler instance if available.""" + scrobbler_instance = self.scrobbler + if not scrobbler_instance: + return None + monitor = getattr(scrobbler_instance, "monitor", None) + return getattr(monitor, "scrobbler", None) + + def _get_watch_history_manager(self) -> Any: + """Return the active WatchHistoryManager instance if available.""" + scrobbler_instance = self.scrobbler + if scrobbler_instance and hasattr(scrobbler_instance, "watch_history_manager"): + return scrobbler_instance.watch_history_manager + return None + + def _ensure_threshold_value(self, value: Any) -> int: + """Convert stored threshold value to an int with a safe fallback.""" + try: + return int(value) + except (TypeError, ValueError): + return DEFAULT_THRESHOLD + + def check_updates_thread(self): + """Optional hook for subclasses that implement update checks.""" + logger.debug("Update check not implemented for this platform.") + + def _get_auth_menu_label(self): + if self._auth_in_progress: + return "Authenticating..." + return "Authenticate" if not self.is_authenticated else "Re-authenticate" + + def trigger_auth_flow(self, _=None): + """Start the Simkl authentication flow from the tray menu.""" + if self._auth_in_progress: + self.show_notification("SIMKL Authentication", "Authentication is already in progress.") + return 0 + + authenticated, _, client_id = self._check_auth_state() + if not client_id or "PLACEHOLDER" in str(client_id): + logger.error("Client ID missing; cannot start authentication flow.") + self.show_notification("Authentication Error", "Client ID is not configured. Reinstall or check your build configuration.") + return 0 + + self._auth_in_progress = True + if not authenticated: + logger.info("Starting initial authentication flow from tray.") + else: + logger.info("Starting re-authentication flow from tray.") + + # Refresh menu immediately to show in-progress state + try: + self.update_icon() + except Exception: + logger.debug("Unable to refresh icon before authentication starts", exc_info=True) + + threading.Thread(target=self._run_auth_flow, args=(client_id,), daemon=True).start() + return 0 + + def _run_auth_flow(self, client_id: str): + """Execute the Simkl PIN authentication flow in a background thread.""" + try: + self._show_info_dialog( + "Simkl Authentication", + "A browser window will open so you can authorize Media Player Scrobbler for SIMKL." + " Sign in to Simkl and approve the request, then return here once it is complete." + ) + self.show_notification( + "Simkl Authentication", + "Opening your browser for Simkl authorization. Complete the steps and return to the tray." + ) + + new_token = pin_auth_flow(client_id) + + if new_token: + logger.info("Authentication flow completed successfully from tray.") + self.show_notification("Simkl Authentication", "Authentication completed successfully.") + + try: + # Ensure the latest credentials are cached + self._refresh_auth_state() + if self.scrobbler: + self.scrobbler.access_token = new_token + self.scrobbler.client_id = client_id + if hasattr(self.scrobbler, 'monitor') and self.scrobbler.monitor: + self.scrobbler.monitor.set_credentials(client_id, new_token) + except Exception as update_err: + logger.error(f"Failed to propagate new credentials to running components: {update_err}", exc_info=True) + else: + logger.warning("Authentication flow did not return a token (cancelled or timed out).") + self.show_notification("Simkl Authentication", "Authentication was not completed. You can try again anytime.") + + except Exception as e: + logger.error(f"Authentication flow failed: {e}", exc_info=True) + self.show_notification("Authentication Error", f"Authentication failed: {e}") + finally: + self._refresh_auth_state() + self._auth_in_progress = False + try: + self.update_icon() + except Exception: + logger.debug("Unable to refresh icon after authentication", exc_info=True) def get_status_text(self): """Generate status text for the menu item""" @@ -306,6 +473,12 @@ def open_simkl(self, _=None): webbrowser.open("https://simkl.com") return 0 + def open_donation_page(self, _=None): + """Open the donation/support page.""" + donation_url = DEFAULT_DONATION_URL + webbrowser.open(donation_url) + return 0 + def open_simkl_history(self, _=None): """Open the SIMKL history page""" logger.info("Attempting to open SIMKL history page...") @@ -522,9 +695,18 @@ def stop_monitoring(self, _=None): def process_backlog(self, _=None): """Process the backlog from the tray menu""" + media_scrobbler = self._get_media_scrobbler() + if not media_scrobbler or not hasattr(media_scrobbler, "process_backlog"): + logger.warning("Cannot process backlog: media scrobbler is unavailable.") + self.show_notification( + "simkl-mps Error", + "Backlog processing is unavailable because monitoring is not running." + ) + return 0 + def _process(): try: - result = self.scrobbler.monitor.scrobbler.process_backlog() + result = media_scrobbler.process_backlog() # Handle both the old integer return type and new dictionary return type if isinstance(result, dict): @@ -571,6 +753,106 @@ def _process(): threading.Thread(target=_process, daemon=True).start() return 0 + def clear_logs(self, _=None): + """Clear application and playback log files.""" + logger.info("Clear logs requested from tray menu...") + + if not self._show_confirmation_dialog( + "Clear Logs", + "This will erase the application log and playback logs.\n\n" + "Use this when you need a clean slate before reproducing an issue.\n\n" + "Continue?" + ): + logger.info("Clear logs cancelled by user") + return 0 + + log_targets: list[tuple[str, Path, str]] = [ + ("application log", self.log_path, "truncate"), + ("app data playback log", APP_DATA_DIR / "playback_log.jsonl", "truncate"), + ("workspace playback log", Path("playback_log.jsonl"), "delete"), + ] + + cleared: list[str] = [] + failures: list[str] = [] + + for label, target_path, mode in log_targets: + try: + if not target_path.exists(): + logger.debug(f"Log target '{label}' not found at {target_path}. Skipping.") + continue + + if mode == "truncate": + with open(target_path, "w", encoding="utf-8"): + pass + else: + target_path.unlink() + + cleared.append(label) + logger.info(f"Cleared {label} at {target_path}") + except Exception as exc: # pragma: no cover - defensive + logger.error(f"Failed to clear {label} at {target_path}: {exc}", exc_info=True) + failures.append(label) + + if cleared and not failures: + self.show_notification("simkl-mps", f"Cleared logs: {', '.join(cleared)}") + elif cleared: + self.show_notification( + "simkl-mps", + f"Cleared logs: {', '.join(cleared)}. Failed: {', '.join(failures)}" + ) + else: + self.show_notification("simkl-mps Error", "No log files could be cleared.") + + return 0 + + def clear_watch_history(self, _=None): + """Clear the local watch history cache and viewer data.""" + logger.info("Clear watch history requested from tray menu...") + + if not self._show_confirmation_dialog( + "Clear Watch History", + "This removes the locally stored watch_history.json and viewer data.\n\n" + "Simkl's online history is unaffected.\n\n" + "Continue?" + ): + logger.info("Clear watch history cancelled by user") + return 0 + + try: + history_manager = None + if self.scrobbler and getattr(self.scrobbler, 'watch_history_manager', None): + history_manager = self.scrobbler.watch_history_manager + + if history_manager is None: + from simkl_mps.watch_history_manager import WatchHistoryManager + history_manager = WatchHistoryManager(APP_DATA_DIR) + if self.scrobbler and hasattr(self.scrobbler, 'watch_history_manager'): + self.scrobbler.watch_history_manager = history_manager + + if history_manager is None: + raise RuntimeError("Watch history manager unavailable") + + history_manager.clear() + if hasattr(history_manager, "history"): + history_manager.history = [] + + history_file = APP_DATA_DIR / "watch_history.json" + if history_file.exists(): + history_file.unlink() + + viewer_dir = APP_DATA_DIR / "watch-history-viewer" + data_js = viewer_dir / "data.js" + if data_js.exists(): + data_js.unlink() + + self.show_notification("simkl-mps", "Local watch history cleared.") + logger.info("Local watch history cleared via tray menu") + except Exception as exc: # pragma: no cover - defensive + logger.error(f"Failed to clear watch history: {exc}", exc_info=True) + self.show_notification("simkl-mps Error", f"Failed to clear watch history: {exc}") + + return 0 + def clear_backlog(self, _=None): """Clear the backlog and restart application state to prevent repeated sync notifications""" logger.info("Clear backlog requested from tray menu...") @@ -598,7 +880,7 @@ def clear_backlog(self, _=None): # Reset scrobbler state if running if self.scrobbler: if hasattr(self.scrobbler, 'monitor') and hasattr(self.scrobbler.monitor, 'scrobbler'): - scrobbler = self.scrobbler.monitor.scrobbler + scrobbler: Any = self.scrobbler.monitor.scrobbler # Use the new reset method for comprehensive state clearing if hasattr(scrobbler, 'reset_tracking_state'): @@ -643,7 +925,9 @@ def clear_backlog(self, _=None): def _apply_threshold_change(self, new_threshold: int | None): """Applies the threshold change: saves, updates scrobbler, notifies, updates UI.""" logger.debug(f"TrayBase: _apply_threshold_change called with new_threshold='{new_threshold}' (type: {type(new_threshold)})") - current_threshold = get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + current_threshold = self._ensure_threshold_value( + get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + ) logger.debug(f"TrayBase: Current threshold from settings: {current_threshold}") if new_threshold is not None and new_threshold != current_threshold: @@ -654,11 +938,9 @@ def _apply_threshold_change(self, new_threshold: int | None): self.show_notification("Settings Updated", f"Watch threshold set to {new_threshold}%") # Attempt to update the running scrobbler instance - if self.scrobbler and hasattr(self.scrobbler, 'monitor') and \ - hasattr(self.scrobbler.monitor, 'scrobbler') and \ - hasattr(self.scrobbler.monitor.scrobbler, 'completion_threshold'): - - self.scrobbler.monitor.scrobbler.completion_threshold = new_threshold # Store as percentage + media_scrobbler = self._get_media_scrobbler() + if media_scrobbler and hasattr(media_scrobbler, 'completion_threshold'): + media_scrobbler.completion_threshold = new_threshold # Store as percentage logger.debug(f"Updated running scrobbler instance threshold to {new_threshold}%") else: logger.warning("Could not update running scrobbler instance threshold (not found or not running).") @@ -689,9 +971,11 @@ def _set_preset_threshold(self, threshold_value: int): def set_custom_watch_threshold(self, _=None): """Handles prompting the user for a custom threshold via platform-specific dialog.""" logger.debug("TrayBase: set_custom_watch_threshold called.") - current_threshold = get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + current_threshold = self._ensure_threshold_value( + get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + ) logger.debug(f"TrayBase: Current threshold for custom dialog: {current_threshold}%") - result_queue = queue.Queue() + result_queue: "queue.Queue[int | None]" = queue.Queue() def _ask_in_thread(): """Runs the platform-specific dialog in a separate thread.""" @@ -756,7 +1040,10 @@ def check_first_run(self): def _build_pystray_menu_items(self): """Builds the list of pystray menu items common to multiple platforms.""" # Get current threshold for radio button state - current_threshold = get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + self._refresh_auth_state() + current_threshold = self._ensure_threshold_value( + get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) + ) is_preset = lambda val: current_threshold == val menu_items = [ @@ -766,15 +1053,14 @@ def _build_pystray_menu_items(self): pystray.Menu.SEPARATOR, ] - # Monitoring controls (unchanged) + # Tracking controls if self.status == "running": - menu_items.append(pystray.MenuItem("Pause Monitoring", self.stop_monitoring)) + menu_items.append(pystray.MenuItem("Pause Tracking", self.stop_monitoring)) else: - menu_items.append(pystray.MenuItem("Start Monitoring", self.start_monitoring)) + menu_items.append(pystray.MenuItem("Start Tracking", self.start_monitoring)) menu_items.append(pystray.Menu.SEPARATOR) - menu_items.append(pystray.MenuItem("Watch History", self.open_watch_history)) - # --- Tools submenu --- + # --- Scrobbling submenu --- threshold_submenu = pystray.Menu( pystray.MenuItem('65%', lambda: self._set_preset_threshold(65), checked=lambda item: is_preset(65), radio=True), pystray.MenuItem('80% (Default)', lambda: self._set_preset_threshold(80), checked=lambda item: is_preset(80), radio=True), @@ -782,29 +1068,44 @@ def _build_pystray_menu_items(self): pystray.Menu.SEPARATOR, pystray.MenuItem('Custom...', self.set_custom_watch_threshold) ) - menu_items.append(pystray.MenuItem("Tools", pystray.Menu( + menu_items.append(pystray.MenuItem("Scrobbling", pystray.Menu( + pystray.MenuItem("Retry Last Scrobble", self.try_scrobble_again), + pystray.MenuItem("Sync Backlog Now", self.process_backlog), + pystray.MenuItem("Completion Threshold", threshold_submenu), pystray.Menu.SEPARATOR, - pystray.MenuItem("Try Scrobble Again", self.try_scrobble_again), - pystray.MenuItem("Process Backlog Now", self.process_backlog), - pystray.MenuItem("Watch Threshold (%)", threshold_submenu), + pystray.MenuItem("Open Local Watch History", self.open_watch_history), + ))) + menu_items.append(pystray.Menu.SEPARATOR) + + # --- SIMKL submenu --- + menu_items.append(pystray.MenuItem("SIMKL", pystray.Menu( + pystray.MenuItem( + lambda item: self._get_auth_menu_label(), + self.trigger_auth_flow, + enabled=not self._auth_in_progress + ), pystray.Menu.SEPARATOR, + pystray.MenuItem("Open Website", self.open_simkl), + pystray.MenuItem("Open Watch History", self.open_simkl_history), + ))) + + # --- Maintenance submenu --- + menu_items.append(pystray.MenuItem("Maintenance", pystray.Menu( pystray.MenuItem("Open Logs", self.open_logs), - pystray.MenuItem("Open Config Directory", self.open_config_dir), + pystray.MenuItem("Open Data Folder", self.open_config_dir), pystray.Menu.SEPARATOR, pystray.MenuItem("Clear Backlog", self.clear_backlog), pystray.MenuItem("Clear Cache", self.clear_cache), - pystray.MenuItem("Clear All Data and Logs", self.clear_all_data), - ))) - - - # --- SIMKL submenu --- - menu_items.append(pystray.MenuItem("SIMKL", pystray.Menu( - pystray.MenuItem("SIMKL Website", self.open_simkl), - pystray.MenuItem("SIMKL Watch History", self.open_simkl_history), + pystray.MenuItem("Clear Watch History", self.clear_watch_history), + pystray.MenuItem("Clear Logs", self.clear_logs), + pystray.Menu.SEPARATOR, + pystray.MenuItem("Reset App Data (Danger)", self.clear_all_data), ))) - # --- Support submenu --- - menu_items.append(pystray.MenuItem("Support", pystray.Menu( + # --- More submenu --- + menu_items.append(pystray.MenuItem("More", pystray.Menu( + pystray.MenuItem("Donate ❤️", self.open_donation_page), + pystray.Menu.SEPARATOR, pystray.MenuItem("Check for Updates", lambda: self.check_updates_thread() if hasattr(self, 'check_updates_thread') else None), pystray.MenuItem("Help", self.show_help), pystray.MenuItem("About", self.show_about), @@ -964,15 +1265,17 @@ def clear_all_data(self, _=None): failed_items.append(f"environment file ({env_path.name})") # Clear watch history (via scrobbler if available) - if self.scrobbler and hasattr(self.scrobbler, 'watch_history_manager'): - whm = self.scrobbler.watch_history_manager - if hasattr(whm, 'clear_history'): - try: - whm.clear_history() - cleared_items.append("watch history") - except Exception as e: - logger.warning(f"Could not clear watch history: {e}") - failed_items.append("watch history") + watch_history_manager = self._get_watch_history_manager() + if watch_history_manager: + try: + if hasattr(watch_history_manager, 'clear'): + watch_history_manager.clear() + elif hasattr(watch_history_manager, 'clear_history'): + watch_history_manager.clear_history() + cleared_items.append("watch history") + except Exception as e: + logger.warning(f"Could not clear watch history: {e}") + failed_items.append("watch history") # Clear settings file settings_file = APP_DATA_DIR / "settings.json" @@ -999,6 +1302,9 @@ def clear_all_data(self, _=None): if hasattr(self.scrobbler, attr): setattr(self.scrobbler, attr, None) cleared_items.append("in-memory cache") + + # Reset authentication state after credential files are removed + self._refresh_auth_state() # Prepare notification message if cleared_items and not failed_items: @@ -1029,23 +1335,20 @@ def try_scrobble_again(self, _=None): # Show initial notification that the process is starting try: - # Check if we have a scrobbler and it's currently tracking something - if not self.scrobbler: - self.show_notification("simkl-mps", "No scrobbler instance available.") + media_scrobbler = self._get_media_scrobbler() + if not media_scrobbler: + self.show_notification("simkl-mps", "Monitoring is not active.") return 0 - - # Get the actual scrobbler instance (might be nested in monitor) - actual_scrobbler = self.scrobbler - if hasattr(self.scrobbler, 'monitor') and hasattr(self.scrobbler.monitor, 'scrobbler'): - actual_scrobbler = self.scrobbler.monitor.scrobbler - + + actual_scrobbler: Any = media_scrobbler + # Check if something is currently being tracked - if not actual_scrobbler.currently_tracking: + if not getattr(actual_scrobbler, "currently_tracking", None): self.show_notification("simkl-mps", "No media is currently being tracked.") return 0 current_title = actual_scrobbler.currently_tracking - current_filepath = actual_scrobbler.current_filepath + current_filepath = getattr(actual_scrobbler, "current_filepath", None) logger.info(f"Re-identifying currently playing media: '{current_title}' (filepath: '{current_filepath}')") self.show_notification("simkl-mps", f"Attempting to re-identify '{current_title}'...") @@ -1078,12 +1381,12 @@ def try_scrobble_again(self, _=None): # Store current tracking state was_tracking = actual_scrobbler.currently_tracking - was_filepath = actual_scrobbler.current_filepath - was_start_time = actual_scrobbler.start_time - was_watch_time = actual_scrobbler.watch_time - was_state = actual_scrobbler.state - was_position = actual_scrobbler.current_position_seconds - was_duration = actual_scrobbler.total_duration_seconds + was_filepath = getattr(actual_scrobbler, "current_filepath", None) + was_start_time = getattr(actual_scrobbler, "start_time", None) + was_watch_time = getattr(actual_scrobbler, "watch_time", 0) + was_state = getattr(actual_scrobbler, "state", None) + was_position = getattr(actual_scrobbler, "current_position_seconds", 0) + was_duration = getattr(actual_scrobbler, "total_duration_seconds", None) # Clear identification-related state (but preserve tracking progress) actual_scrobbler.simkl_id = None diff --git a/simkl_mps/tray_linux.py b/simkl_mps/tray_linux.py index 1e21fbc..dcdf839 100644 --- a/simkl_mps/tray_linux.py +++ b/simkl_mps/tray_linux.py @@ -11,14 +11,20 @@ import logging import webbrowser import subprocess +import re from pathlib import Path from PIL import Image -from typing import Optional # For type hinting +from typing import Any, Optional, cast from simkl_mps.tray_base import TrayAppBase, get_simkl_scrobbler, logger from simkl_mps.config_manager import get_setting, DEFAULT_THRESHOLD # Import for menu state and dialog +Gtk: Any = None +AppIndicator3: Any = None +GLib: Any = None +pystray: Any = cast(Any, None) + # Enhance detection for Ubuntu GNOME environment def detect_environment(): """Detect Linux desktop environment and capabilities""" @@ -59,7 +65,7 @@ def detect_environment(): USE_APP_INDICATOR = False env_info = detect_environment() try: - import gi + import gi # type: ignore[import] gi.require_version('Gtk', '3.0') # First check if we have the extension enabled for GNOME @@ -70,14 +76,17 @@ def detect_environment(): # Try to load AppIndicator3 gi.require_version('AppIndicator3', '0.1') - from gi.repository import Gtk, AppIndicator3, GLib + from gi.repository import Gtk as GtkModule, AppIndicator3 as AppIndicatorModule, GLib as GLibModule # type: ignore[import] + Gtk = cast(Any, GtkModule) + AppIndicator3 = cast(Any, AppIndicatorModule) + GLib = cast(Any, GLibModule) USE_APP_INDICATOR = True logger.info(f"Using AppIndicator for Linux system tray ({env_info['desktop']})") except (ImportError, ValueError) as e: logger.warning(f"AppIndicator not available: {e}, falling back to pystray") try: - import pystray - from plyer import notification + import pystray as pystray_module + pystray = cast(Any, pystray_module) logger.info("Successfully loaded pystray as fallback") except ImportError as e2: logger.error(f"Failed to load pystray: {e2}. System tray functionality may be limited.") @@ -95,8 +104,8 @@ class AppIndicatorTray: def __init__(self, app): self.app = app - self.indicator = None - self.menu = None + self.indicator: Any = cast(Any, None) + self.menu: Any = cast(Any, None) self.setup_indicator() def setup_indicator(self): @@ -107,12 +116,14 @@ def setup_indicator(self): # Use a system icon as fallback icon_path = "dialog-information" - self.indicator = AppIndicator3.Indicator.new( + indicator_class = cast(Any, AppIndicator3) + self.indicator = indicator_class.Indicator.new( "simkl-mps", icon_path, - AppIndicator3.IndicatorCategory.APPLICATION_STATUS + indicator_class.IndicatorCategory.APPLICATION_STATUS ) - self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE) + indicator_obj = cast(Any, self.indicator) + indicator_obj.set_status(indicator_class.IndicatorStatus.ACTIVE) # Create the initial menu self.update_menu() @@ -125,47 +136,61 @@ def setup_indicator(self): def update_menu(self): """Update the AppIndicator menu""" try: - menu = Gtk.Menu() + gtk_module = cast(Any, Gtk) + menu = gtk_module.Menu() + self.app._refresh_auth_state() # Add title item (non-clickable) - title_item = Gtk.MenuItem(label="^_^ MPS for SIMKL") + title_item = gtk_module.MenuItem(label="^_^ MPS for SIMKL") title_item.set_sensitive(False) menu.append(title_item) # Add separator - menu.append(Gtk.SeparatorMenuItem()) + menu.append(gtk_module.SeparatorMenuItem()) # Add status item status_text = self.app.get_status_text() - status_item = Gtk.MenuItem(label=f"Status: {status_text}") + status_item = gtk_module.MenuItem(label=f"Status: {status_text}") status_item.set_sensitive(False) menu.append(status_item) # Add separator - menu.append(Gtk.SeparatorMenuItem()) + menu.append(gtk_module.SeparatorMenuItem()) # Add Start/Stop monitoring item if self.app.status == "running": - stop_item = Gtk.MenuItem(label="Stop Monitoring") + stop_item = gtk_module.MenuItem(label="Stop Monitoring") stop_item.connect("activate", self._wrap_callback(self.app.stop_monitoring)) menu.append(stop_item) else: - start_item = Gtk.MenuItem(label="Start Monitoring") + start_item = gtk_module.MenuItem(label="Start Monitoring") start_item.connect("activate", self._wrap_callback(self.app.start_monitoring)) menu.append(start_item) # Add separator - menu.append(Gtk.SeparatorMenuItem()) + menu.append(gtk_module.SeparatorMenuItem()) + + # --- Scrobbling submenu --- + scrobbling_item = gtk_module.MenuItem(label="Scrobbling") + scrobbling_submenu = gtk_module.Menu() + + retry_item = gtk_module.MenuItem(label="Retry Last Scrobble") + retry_item.connect("activate", self._wrap_callback(self.app.try_scrobble_again)) + scrobbling_submenu.append(retry_item) - # --- Threshold Submenu (AppIndicator) --- - threshold_item = Gtk.MenuItem(label="Watch Threshold (%)") - threshold_submenu = Gtk.Menu() + sync_item = gtk_module.MenuItem(label="Sync Backlog Now") + sync_item.connect("activate", self._wrap_callback(self.app.process_backlog)) + scrobbling_submenu.append(sync_item) + + # --- Threshold Submenu (nested under Scrobbling) --- + threshold_item = gtk_module.MenuItem(label="Completion Threshold") + threshold_submenu = gtk_module.Menu() threshold_group = [] # For radio buttons current_threshold = get_setting('watch_completion_threshold', DEFAULT_THRESHOLD) def create_preset_item(value, label): - item = Gtk.CheckMenuItem(label=label, group=threshold_group) + item = gtk_module.CheckMenuItem(label=label, group=threshold_group) threshold_group.append(item) # Add to group for radio behavior item.set_active(current_threshold == value) item.connect("activate", lambda w, v=value: self._wrap_callback(lambda: self.app._set_preset_threshold(v))()) @@ -174,76 +199,122 @@ def create_preset_item(value, label): threshold_submenu.append(create_preset_item(65, "65%")) threshold_submenu.append(create_preset_item(80, "80% (Default)")) threshold_submenu.append(create_preset_item(90, "90%")) - threshold_submenu.append(Gtk.SeparatorMenuItem()) + threshold_submenu.append(gtk_module.SeparatorMenuItem()) - custom_item = Gtk.MenuItem(label="Custom...") + custom_item = gtk_module.MenuItem(label="Custom...") custom_item.connect("activate", self._wrap_callback(self.app.set_custom_watch_threshold)) threshold_submenu.append(custom_item) threshold_item.set_submenu(threshold_submenu) - # --- End Threshold Submenu --- - - # Tools submenu - tools_item = Gtk.MenuItem(label="Tools") - tools_submenu = Gtk.Menu() - - tools_submenu.append(threshold_item) # Add threshold submenu to Tools - - logs_item = Gtk.MenuItem(label="Open Logs") + scrobbling_submenu.append(threshold_item) + + watch_history_item = gtk_module.MenuItem(label="Open Local Watch History") + watch_history_item.connect("activate", self._wrap_callback(self.app.open_watch_history)) + scrobbling_submenu.append(watch_history_item) + + scrobbling_item.set_submenu(scrobbling_submenu) + menu.append(scrobbling_item) + + # --- SIMKL submenu --- + simkl_item = gtk_module.MenuItem(label="SIMKL") + simkl_submenu = gtk_module.Menu() + + auth_label = "Authenticate" if not self.app.is_authenticated else "Re-authenticate" + if self.app._auth_in_progress: + auth_label = "Authenticating..." + auth_item = gtk_module.MenuItem(label=auth_label) + auth_item.set_sensitive(not self.app._auth_in_progress) + auth_item.connect("activate", self._wrap_callback(self.app.trigger_auth_flow)) + simkl_submenu.append(auth_item) + + simkl_submenu.append(gtk_module.SeparatorMenuItem()) + + website_item = gtk_module.MenuItem(label="Open Website") + website_item.connect("activate", self._wrap_callback(self.app.open_simkl)) + simkl_submenu.append(website_item) + + simkl_history_item = gtk_module.MenuItem(label="Open Watch History") + simkl_history_item.connect("activate", self._wrap_callback(self.app.open_simkl_history)) + simkl_submenu.append(simkl_history_item) + + simkl_item.set_submenu(simkl_submenu) + menu.append(simkl_item) + + # --- Maintenance submenu --- + maintenance_item = gtk_module.MenuItem(label="Maintenance") + maintenance_submenu = gtk_module.Menu() + + logs_item = gtk_module.MenuItem(label="Open Logs") logs_item.connect("activate", self._wrap_callback(self.app.open_logs)) - tools_submenu.append(logs_item) + maintenance_submenu.append(logs_item) - config_item = Gtk.MenuItem(label="Open Config Directory") + config_item = gtk_module.MenuItem(label="Open Data Folder") config_item.connect("activate", self._wrap_callback(self.app.open_config_dir)) - tools_submenu.append(config_item) + maintenance_submenu.append(config_item) - backlog_item = Gtk.MenuItem(label="Process Backlog Now") - backlog_item.connect("activate", self._wrap_callback(self.app.process_backlog)) - tools_submenu.append(backlog_item) + maintenance_submenu.append(gtk_module.SeparatorMenuItem()) - tools_item.set_submenu(tools_submenu) - menu.append(tools_item) + clear_backlog_item = gtk_module.MenuItem(label="Clear Backlog") + clear_backlog_item.connect("activate", self._wrap_callback(self.app.clear_backlog)) + maintenance_submenu.append(clear_backlog_item) - # Online Services submenu - services_item = Gtk.MenuItem(label="Online Services") - services_submenu = Gtk.Menu() + clear_cache_item = gtk_module.MenuItem(label="Clear Cache") + clear_cache_item.connect("activate", self._wrap_callback(self.app.clear_cache)) + maintenance_submenu.append(clear_cache_item) - simkl_item = Gtk.MenuItem(label="SIMKL Website") - simkl_item.connect("activate", self._wrap_callback(self.app.open_simkl)) - services_submenu.append(simkl_item) + clear_history_item = gtk_module.MenuItem(label="Clear Watch History") + clear_history_item.connect("activate", self._wrap_callback(self.app.clear_watch_history)) + maintenance_submenu.append(clear_history_item) - history_item = Gtk.MenuItem(label="View Watch History") - history_item.connect("activate", self._wrap_callback(self.app.open_simkl_history)) - services_submenu.append(history_item) + clear_logs_item = gtk_module.MenuItem(label="Clear Logs") + clear_logs_item.connect("activate", self._wrap_callback(self.app.clear_logs)) + maintenance_submenu.append(clear_logs_item) - services_item.set_submenu(services_submenu) - menu.append(services_item) + maintenance_submenu.append(gtk_module.SeparatorMenuItem()) - # Add separator - menu.append(Gtk.SeparatorMenuItem()) + reset_item = gtk_module.MenuItem(label="Reset App Data (Danger)") + reset_item.connect("activate", self._wrap_callback(self.app.clear_all_data)) + maintenance_submenu.append(reset_item) + + maintenance_item.set_submenu(maintenance_submenu) + menu.append(maintenance_item) + + # --- More submenu --- + more_item = gtk_module.MenuItem(label="More") + more_submenu = gtk_module.Menu() + + donate_item = gtk_module.MenuItem(label="Donate ❤️") + donate_item.connect("activate", self._wrap_callback(self.app.open_donation_page)) + more_submenu.append(donate_item) - # Check for updates - update_item = Gtk.MenuItem(label="Check for Updates") + more_submenu.append(gtk_module.SeparatorMenuItem()) + + update_item = gtk_module.MenuItem(label="Check for Updates") update_item.connect("activate", self._wrap_callback(self.app.check_updates_thread)) - menu.append(update_item) + more_submenu.append(update_item) + + help_item = gtk_module.MenuItem(label="Help") + help_item.connect("activate", self._wrap_callback(self.app.show_help)) + more_submenu.append(help_item) - # About - about_item = Gtk.MenuItem(label="About") + about_item = gtk_module.MenuItem(label="About") about_item.connect("activate", self._wrap_callback(self.app.show_about)) - menu.append(about_item) + more_submenu.append(about_item) - # Help - help_item = Gtk.MenuItem(label="Help") - help_item.connect("activate", self._wrap_callback(self.app.show_help)) - menu.append(help_item) + more_item.set_submenu(more_submenu) + menu.append(more_item) + + # Add separator + menu.append(gtk_module.SeparatorMenuItem()) # Exit - exit_item = Gtk.MenuItem(label="Exit") + exit_item = gtk_module.MenuItem(label="Exit") exit_item.connect("activate", self._wrap_callback(self.app.exit_app)) menu.append(exit_item) menu.show_all() - self.indicator.set_menu(menu) + indicator_obj = cast(Any, self.indicator) + indicator_obj.set_menu(menu) self.menu = menu except Exception as e: @@ -299,21 +370,25 @@ def __init__(self): if (USE_APP_INDICATOR): self.indicator_tray = AppIndicatorTray(self) self.using_appindicator = True - self.tray_icon = None + self.tray_icon: Any = cast(Any, None) else: self.using_appindicator = False - self.tray_icon = None + self.tray_icon = cast(Any, None) self.setup_icon() def setup_icon(self): """Setup the system tray icon using pystray""" if self.using_appindicator: return + + if pystray is None: + raise RuntimeError("pystray module not available") try: image = self.load_icon_for_status() - - self.tray_icon = pystray.Icon( + + pystray_module = cast(Any, pystray) + self.tray_icon = pystray_module.Icon( "simkl-mps", image, "MPS for SIMKL", @@ -436,7 +511,7 @@ def show_notification(self, title, message): # If AppIndicator is available, try using GTK notification if self.using_appindicator: try: - from gi.repository import Notify + from gi.repository import Notify # type: ignore[import] if not Notify.is_initted(): Notify.init("simkl-mps") @@ -449,8 +524,9 @@ def show_notification(self, title, message): # Try plyer as a fallback try: - from plyer import notification as plyer_notification - plyer_notification.notify( + from plyer import notification as plyer_notification_module + notifier = cast(Any, plyer_notification_module) + notifier.notify( title=title, message=message, app_name="MPS for SIMKL", @@ -495,14 +571,14 @@ def show_about(self, _=None): '--title=About MPS for SIMKL', f'--text={about_text}' ]) - return 0 + return None except: pass # Try using GTK if AppIndicator is available if self.using_appindicator: try: - from gi.repository import Gtk + from gi.repository import Gtk # type: ignore[import] dialog = Gtk.MessageDialog( None, 0, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, @@ -512,7 +588,7 @@ def show_about(self, _=None): dialog.set_title("About") dialog.run() dialog.destroy() - return 0 + return None except: pass @@ -522,7 +598,7 @@ def show_about(self, _=None): except Exception as e: logger.error(f"Error showing about dialog: {e}") self.show_notification("About", "Media Player Scrobbler for SIMKL") - return 0 + return None def show_help(self, _=None): """Show help information with Linux-specific implementation""" @@ -533,7 +609,7 @@ def show_help(self, _=None): except Exception as e: logger.error(f"Error showing help: {e}") self.show_notification("Help", "Visit https://github.com/ByteTrix/Media-Player-Scrobbler-for-Simkl#readme for help") - return 0 + return None def exit_app(self, _=None): """Exit the application""" @@ -542,10 +618,13 @@ def exit_app(self, _=None): self.stop_monitoring() if self.using_appindicator: - self.indicator_tray.stop() + if self.indicator_tray: + self.indicator_tray.stop() else: - self.tray_icon.stop() - return 0 + tray_icon = cast(Any, self.tray_icon) + if tray_icon: + tray_icon.stop() + return None def run(self): """Run the tray application""" @@ -570,7 +649,11 @@ def run(self): self.indicator_tray.run() else: logger.info("Running with standard system tray (pystray)") - self.tray_icon.run() + tray_icon = cast(Any, self.tray_icon) + if tray_icon: + tray_icon.run() + else: + raise RuntimeError("Tray icon not initialized") except Exception as e: logger.error(f"Error running tray icon: {e}") self.show_notification("Tray Error", f"Error with system tray: {e}") @@ -653,7 +736,6 @@ def _check_updates_logic(self): # Look for specific output patterns from the new script if "UPDATE_AVAILABLE:" in stdout: # Extract version and URL using regex to be more robust - import re version_match = re.search(r"UPDATE_AVAILABLE: ([0-9.]+) (https?://[^\s]+)", stdout) if version_match: version = version_match.group(1)