diff options
| author | Brianna Rainey | 2026-01-13 19:34:55 -0500 |
|---|---|---|
| committer | GitHub | 2026-01-13 19:34:55 -0500 |
| commit | 50f5a76603a3f97f2c6f6a1d3cefea88ed3497aa (patch) | |
| tree | 226fe223b31af6f217b1dd413629ab2cf26964d4 | |
| parent | b8703752ffc7768b0275897b3c2a869ff41504e5 (diff) | |
| parent | f975144f25d34f97329b2d4e52891061573cea08 (diff) | |
Merge pull request #85 from aeliton/add-pyproject
Use pyproject.toml + uv_build
| -rw-r--r-- | AUTHORS | 3 | ||||
| -rw-r--r-- | README.md | 6 | ||||
| -rw-r--r-- | pyproject.toml | 55 | ||||
| -rw-r--r-- | setup.py | 67 | ||||
| -rw-r--r-- | src/avp/__init__.py (renamed from src/__init__.py) | 0 | ||||
| -rw-r--r-- | src/avp/__main__.py | 8 | ||||
| -rw-r--r-- | src/avp/cli.py (renamed from src/__main__.py) | 2 | ||||
| -rw-r--r-- | src/avp/command.py (renamed from src/command.py) | 0 | ||||
| -rw-r--r-- | src/avp/component.py (renamed from src/component.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/__init__.py (renamed from src/components/__init__.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/__template__.ui (renamed from src/components/__template__.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/color.py (renamed from src/components/color.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/color.ui (renamed from src/components/color.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/image.py (renamed from src/components/image.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/image.ui (renamed from src/components/image.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/life.py (renamed from src/components/life.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/life.ui (renamed from src/components/life.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/original.py (renamed from src/components/original.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/original.ui (renamed from src/components/original.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/sound.py (renamed from src/components/sound.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/sound.ui (renamed from src/components/sound.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/spectrum.py (renamed from src/components/spectrum.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/spectrum.ui (renamed from src/components/spectrum.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/text.py (renamed from src/components/text.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/text.ui (renamed from src/components/text.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/video.py (renamed from src/components/video.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/video.ui (renamed from src/components/video.ui) | 0 | ||||
| -rw-r--r-- | src/avp/components/waveform.py (renamed from src/components/waveform.py) | 0 | ||||
| -rw-r--r-- | src/avp/components/waveform.ui (renamed from src/components/waveform.ui) | 0 | ||||
| -rw-r--r-- | src/avp/core.py (renamed from src/core.py) | 0 | ||||
| -rw-r--r-- | src/avp/encoder-options.json (renamed from src/encoder-options.json) | 0 | ||||
| -rw-r--r-- | src/avp/gui/__init__.py (renamed from src/gui/__init__.py) | 0 | ||||
| -rw-r--r-- | src/avp/gui/actions.py (renamed from src/gui/actions.py) | 0 | ||||
| -rw-r--r-- | src/avp/gui/background.png (renamed from src/gui/background.png) | bin | 45367 -> 45367 bytes | |||
| -rw-r--r-- | src/avp/gui/mainwindow.py (renamed from src/gui/mainwindow.py) | 0 | ||||
| -rw-r--r-- | src/avp/gui/mainwindow.ui (renamed from src/gui/mainwindow.ui) | 0 | ||||
| -rw-r--r-- | src/avp/gui/presetmanager.py (renamed from src/gui/presetmanager.py) | 0 | ||||
| -rw-r--r-- | src/avp/gui/presetmanager.ui (renamed from src/gui/presetmanager.ui) | 0 | ||||
| -rw-r--r-- | src/avp/gui/preview_thread.py (renamed from src/gui/preview_thread.py) | 0 | ||||
| -rw-r--r-- | src/avp/gui/preview_win.py (renamed from src/gui/preview_win.py) | 0 | ||||
| -rw-r--r-- | src/avp/toolkit/__init__.py (renamed from src/toolkit/__init__.py) | 0 | ||||
| -rw-r--r-- | src/avp/toolkit/common.py (renamed from src/toolkit/common.py) | 0 | ||||
| -rw-r--r-- | src/avp/toolkit/ffmpeg.py (renamed from src/toolkit/ffmpeg.py) | 0 | ||||
| -rw-r--r-- | src/avp/toolkit/frame.py (renamed from src/toolkit/frame.py) | 0 | ||||
| -rw-r--r-- | src/avp/video_thread.py (renamed from src/video_thread.py) | 0 | ||||
| -rw-r--r-- | tests/__init__.py (renamed from src/tests/__init__.py) | 4 | ||||
| -rw-r--r-- | tests/data/test.jpg (renamed from src/tests/data/test.jpg) | bin | 48766 -> 48766 bytes | |||
| -rw-r--r-- | tests/data/test.ogg (renamed from src/tests/data/test.ogg) | bin | 30043 -> 30043 bytes | |||
| -rw-r--r-- | tests/data/test.png (renamed from src/tests/data/test.png) | bin | 220 -> 220 bytes | |||
| -rw-r--r-- | tests/test_commandline_export.py (renamed from src/tests/test_commandline_export.py) | 2 | ||||
| -rw-r--r-- | tests/test_commandline_parser.py (renamed from src/tests/test_commandline_parser.py) | 2 | ||||
| -rw-r--r-- | tests/test_core_init.py (renamed from src/tests/test_core_init.py) | 2 | ||||
| -rw-r--r-- | uv.lock | 272 |
53 files changed, 347 insertions, 76 deletions
| @@ -2,4 +2,5 @@ Martin Kaistra <djfun>, | |||
| 2 | Brianna Rainey <tassaron>, | 2 | Brianna Rainey <tassaron>, |
| 3 | DH4, | 3 | DH4, |
| 4 | HunterwolfAT, | 4 | HunterwolfAT, |
| 5 | rikai | 5 | rikai, |
| 6 | Aeliton Silva <aeliton@aeliton.com> | ||
| @@ -25,8 +25,10 @@ The program works on **Linux**, **macOS**, and **Windows**. If you encounter pro | |||
| 25 | - Install system dependencies: `sudo apt install ffmpeg` | 25 | - Install system dependencies: `sudo apt install ffmpeg` |
| 26 | - Make a virtual environment: `python -m venv env` | 26 | - Make a virtual environment: `python -m venv env` |
| 27 | - Activate it: `source env/bin/activate` | 27 | - Activate it: `source env/bin/activate` |
| 28 | - Install program: `pip install pyqt6 pillow numpy .` | 28 | - Install Python dependencies: `pip install uv` |
| 29 | - Run the program with `avp` from terminal | 29 | - Install this program: `uv sync` in this directory |
| 30 | - Run the program with `python -m avp` from terminal | ||
| 31 | - Optional: Unit tests can be run with `uv run pytest` | ||
| 30 | 32 | ||
| 31 | ## Installation on Windows | 33 | ## Installation on Windows |
| 32 | 34 | ||
diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..58fb936 --- /dev/null +++ b/pyproject.toml | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | [build-system] | ||
| 2 | requires = ["uv_build>=0.9.23,<0.10.0"] | ||
| 3 | build-backend = "uv_build" | ||
| 4 | |||
| 5 | [project] | ||
| 6 | name = "audio-visualizer-python" | ||
| 7 | description = "Create audio visualization videos from a GUI or commandline" | ||
| 8 | version = "2.1.0" | ||
| 9 | requires-python = ">= 3.13" | ||
| 10 | license = "MIT" | ||
| 11 | classifiers=[ | ||
| 12 | "Development Status :: 4 - Beta", | ||
| 13 | "License :: OSI Approved :: MIT License", | ||
| 14 | "Programming Language :: Python :: 3 :: Only", | ||
| 15 | "Intended Audience :: End Users/Desktop", | ||
| 16 | "Topic :: Multimedia :: Video :: Non-Linear Editor", | ||
| 17 | ] | ||
| 18 | keywords = [ | ||
| 19 | "visualizer", | ||
| 20 | "visualization", | ||
| 21 | "commandline video", | ||
| 22 | "video editor", | ||
| 23 | "ffmpeg", | ||
| 24 | "podcast", | ||
| 25 | ] | ||
| 26 | authors = [ | ||
| 27 | {name = "Martin Kaistra", email = "admin@djfun.de"}, | ||
| 28 | {name = "Brianna Rainey", email = "rutachigal@gmail.com"}, | ||
| 29 | {name = "DH4", email = "wayne@bitstorm.pw"}, | ||
| 30 | {name = "HunterwolfAT", email = "hunterwolf0815@gmail.com"}, | ||
| 31 | {name = "rikai"}, | ||
| 32 | ] | ||
| 33 | dependencies = [ | ||
| 34 | "numpy>=2.4.1", | ||
| 35 | "pillow>=12.1.0", | ||
| 36 | "pyqt6>=6.10.2", | ||
| 37 | ] | ||
| 38 | |||
| 39 | [dependency-groups] | ||
| 40 | dev = [ | ||
| 41 | "pytest", | ||
| 42 | "pytest-qt", | ||
| 43 | ] | ||
| 44 | |||
| 45 | [tool.uv.build-backend] | ||
| 46 | module-name = "avp" | ||
| 47 | |||
| 48 | [external] | ||
| 49 | dependencies = ["pkg:generic/ffmpeg"] | ||
| 50 | |||
| 51 | [project.urls] | ||
| 52 | repository="https://github.com/djfun/audio-visualizer-python" | ||
| 53 | |||
| 54 | [project.scripts] | ||
| 55 | avp = "avp.cli:main" | ||
diff --git a/setup.py b/setup.py deleted file mode 100644 index b62dbad..0000000 --- a/setup.py +++ /dev/null | |||
| @@ -1,67 +0,0 @@ | |||
| 1 | from setuptools import setup, find_packages | ||
| 2 | from importlib import import_module | ||
| 3 | from os import path | ||
| 4 | import re | ||
| 5 | |||
| 6 | |||
| 7 | def getTextFromFile(filename, fallback): | ||
| 8 | try: | ||
| 9 | with open( | ||
| 10 | path.join(path.abspath(path.dirname(__file__)), filename), encoding="utf-8" | ||
| 11 | ) as f: | ||
| 12 | output = f.read() | ||
| 13 | except Exception: | ||
| 14 | output = fallback | ||
| 15 | return output | ||
| 16 | |||
| 17 | |||
| 18 | PACKAGE_NAME = "avp" | ||
| 19 | SOURCE_DIRECTORY = "src" | ||
| 20 | SOURCE_PACKAGE_REGEX = re.compile(rf"^{SOURCE_DIRECTORY}") | ||
| 21 | PACKAGE_DESCRIPTION = "Create audio visualization videos from a GUI or commandline" | ||
| 22 | |||
| 23 | |||
| 24 | avp = import_module(SOURCE_DIRECTORY) | ||
| 25 | source_packages = find_packages(include=[SOURCE_DIRECTORY, f"{SOURCE_DIRECTORY}.*"]) | ||
| 26 | proj_packages = [ | ||
| 27 | SOURCE_PACKAGE_REGEX.sub(PACKAGE_NAME, name) for name in source_packages | ||
| 28 | ] | ||
| 29 | |||
| 30 | |||
| 31 | setup( | ||
| 32 | name="audio_visualizer_python", | ||
| 33 | version=avp.__version__, | ||
| 34 | url="https://github.com/djfun/audio-visualizer-python", | ||
| 35 | license="MIT", | ||
| 36 | description=PACKAGE_DESCRIPTION, | ||
| 37 | author=getTextFromFile("AUTHORS", "djfun, tassaron"), | ||
| 38 | long_description=getTextFromFile("README.md", PACKAGE_DESCRIPTION), | ||
| 39 | classifiers=[ | ||
| 40 | "Development Status :: 4 - Beta", | ||
| 41 | "License :: OSI Approved :: MIT License", | ||
| 42 | "Programming Language :: Python :: 3 :: Only", | ||
| 43 | "Intended Audience :: End Users/Desktop", | ||
| 44 | "Topic :: Multimedia :: Video :: Non-Linear Editor", | ||
| 45 | ], | ||
| 46 | keywords=[ | ||
| 47 | "visualizer", | ||
| 48 | "visualization", | ||
| 49 | "commandline video", | ||
| 50 | "video editor", | ||
| 51 | "ffmpeg", | ||
| 52 | "podcast", | ||
| 53 | ], | ||
| 54 | packages=proj_packages, | ||
| 55 | package_dir={PACKAGE_NAME: SOURCE_DIRECTORY}, | ||
| 56 | include_package_data=True, | ||
| 57 | install_requires=[ | ||
| 58 | "Pillow", | ||
| 59 | "PyQt6", | ||
| 60 | "numpy", | ||
| 61 | "pytest", | ||
| 62 | "pytest-qt", | ||
| 63 | ], | ||
| 64 | entry_points={ | ||
| 65 | "console_scripts": [f"avp = {PACKAGE_NAME}.__main__:main"], | ||
| 66 | }, | ||
| 67 | ) | ||
diff --git a/src/__init__.py b/src/avp/__init__.py index ee9bebb..ee9bebb 100644 --- a/src/__init__.py +++ b/src/avp/__init__.py | |||
diff --git a/src/avp/__main__.py b/src/avp/__main__.py new file mode 100644 index 0000000..a27bb88 --- /dev/null +++ b/src/avp/__main__.py | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | import sys | ||
| 2 | from avp.cli import main | ||
| 3 | if __name__ == "__main__": | ||
| 4 | if sys.argv[0].endswith("-script.pyw"): | ||
| 5 | sys.argv[0] = sys.argv[0][:-11] | ||
| 6 | elif sys.argv[0].endswith(".exe"): | ||
| 7 | sys.argv[0] = sys.argv[0][:-4] | ||
| 8 | sys.exit(main()) | ||
diff --git a/src/__main__.py b/src/avp/cli.py index db48788..02ceee6 100644 --- a/src/__main__.py +++ b/src/avp/cli.py | |||
| @@ -51,7 +51,7 @@ def main() -> int: | |||
| 51 | # Both branches here may occur in one execution: | 51 | # Both branches here may occur in one execution: |
| 52 | # Commandline parsing could change mode back to GUI | 52 | # Commandline parsing could change mode back to GUI |
| 53 | if mode == "GUI": | 53 | if mode == "GUI": |
| 54 | from .gui.mainwindow import MainWindow | 54 | from avp.gui.mainwindow import MainWindow |
| 55 | 55 | ||
| 56 | mainWindow = MainWindow(proj, dpi) | 56 | mainWindow = MainWindow(proj, dpi) |
| 57 | log.debug("Finished creating MainWindow") | 57 | log.debug("Finished creating MainWindow") |
diff --git a/src/command.py b/src/avp/command.py index 783ac26..783ac26 100644 --- a/src/command.py +++ b/src/avp/command.py | |||
diff --git a/src/component.py b/src/avp/component.py index 01d4e44..01d4e44 100644 --- a/src/component.py +++ b/src/avp/component.py | |||
diff --git a/src/components/__init__.py b/src/avp/components/__init__.py index 8b13789..8b13789 100644 --- a/src/components/__init__.py +++ b/src/avp/components/__init__.py | |||
diff --git a/src/components/__template__.ui b/src/avp/components/__template__.ui index 301a2b7..301a2b7 100644 --- a/src/components/__template__.ui +++ b/src/avp/components/__template__.ui | |||
diff --git a/src/components/color.py b/src/avp/components/color.py index 1f32c23..1f32c23 100644 --- a/src/components/color.py +++ b/src/avp/components/color.py | |||
diff --git a/src/components/color.ui b/src/avp/components/color.ui index c1713fb..c1713fb 100644 --- a/src/components/color.ui +++ b/src/avp/components/color.ui | |||
diff --git a/src/components/image.py b/src/avp/components/image.py index 2393611..2393611 100644 --- a/src/components/image.py +++ b/src/avp/components/image.py | |||
diff --git a/src/components/image.ui b/src/avp/components/image.ui index 2dad127..2dad127 100644 --- a/src/components/image.ui +++ b/src/avp/components/image.ui | |||
diff --git a/src/components/life.py b/src/avp/components/life.py index 5b719d1..5b719d1 100644 --- a/src/components/life.py +++ b/src/avp/components/life.py | |||
diff --git a/src/components/life.ui b/src/avp/components/life.ui index 30cf9d0..30cf9d0 100644 --- a/src/components/life.ui +++ b/src/avp/components/life.ui | |||
diff --git a/src/components/original.py b/src/avp/components/original.py index fad797b..fad797b 100644 --- a/src/components/original.py +++ b/src/avp/components/original.py | |||
diff --git a/src/components/original.ui b/src/avp/components/original.ui index c7b7e22..c7b7e22 100644 --- a/src/components/original.ui +++ b/src/avp/components/original.ui | |||
diff --git a/src/components/sound.py b/src/avp/components/sound.py index 2df8e38..2df8e38 100644 --- a/src/components/sound.py +++ b/src/avp/components/sound.py | |||
diff --git a/src/components/sound.ui b/src/avp/components/sound.ui index 4c11332..4c11332 100644 --- a/src/components/sound.ui +++ b/src/avp/components/sound.ui | |||
diff --git a/src/components/spectrum.py b/src/avp/components/spectrum.py index 062ebc7..062ebc7 100644 --- a/src/components/spectrum.py +++ b/src/avp/components/spectrum.py | |||
diff --git a/src/components/spectrum.ui b/src/avp/components/spectrum.ui index c6a8a15..c6a8a15 100644 --- a/src/components/spectrum.ui +++ b/src/avp/components/spectrum.ui | |||
diff --git a/src/components/text.py b/src/avp/components/text.py index 40c981a..40c981a 100644 --- a/src/components/text.py +++ b/src/avp/components/text.py | |||
diff --git a/src/components/text.ui b/src/avp/components/text.ui index b62e0ed..b62e0ed 100644 --- a/src/components/text.ui +++ b/src/avp/components/text.ui | |||
diff --git a/src/components/video.py b/src/avp/components/video.py index 65a05af..65a05af 100644 --- a/src/components/video.py +++ b/src/avp/components/video.py | |||
diff --git a/src/components/video.ui b/src/avp/components/video.ui index 08d15d3..08d15d3 100644 --- a/src/components/video.ui +++ b/src/avp/components/video.ui | |||
diff --git a/src/components/waveform.py b/src/avp/components/waveform.py index 7dc0b99..7dc0b99 100644 --- a/src/components/waveform.py +++ b/src/avp/components/waveform.py | |||
diff --git a/src/components/waveform.ui b/src/avp/components/waveform.ui index 5473f33..5473f33 100644 --- a/src/components/waveform.ui +++ b/src/avp/components/waveform.ui | |||
diff --git a/src/core.py b/src/avp/core.py index df6ff63..df6ff63 100644 --- a/src/core.py +++ b/src/avp/core.py | |||
diff --git a/src/encoder-options.json b/src/avp/encoder-options.json index 78bc940..78bc940 100644 --- a/src/encoder-options.json +++ b/src/avp/encoder-options.json | |||
diff --git a/src/gui/__init__.py b/src/avp/gui/__init__.py index e69de29..e69de29 100644 --- a/src/gui/__init__.py +++ b/src/avp/gui/__init__.py | |||
diff --git a/src/gui/actions.py b/src/avp/gui/actions.py index 654b2a0..654b2a0 100644 --- a/src/gui/actions.py +++ b/src/avp/gui/actions.py | |||
diff --git a/src/gui/background.png b/src/avp/gui/background.png index fb58593..fb58593 100644 --- a/src/gui/background.png +++ b/src/avp/gui/background.png | |||
| Binary files differ | |||
diff --git a/src/gui/mainwindow.py b/src/avp/gui/mainwindow.py index b0a564b..b0a564b 100644 --- a/src/gui/mainwindow.py +++ b/src/avp/gui/mainwindow.py | |||
diff --git a/src/gui/mainwindow.ui b/src/avp/gui/mainwindow.ui index cd8454d..cd8454d 100644 --- a/src/gui/mainwindow.ui +++ b/src/avp/gui/mainwindow.ui | |||
diff --git a/src/gui/presetmanager.py b/src/avp/gui/presetmanager.py index 980a969..980a969 100644 --- a/src/gui/presetmanager.py +++ b/src/avp/gui/presetmanager.py | |||
diff --git a/src/gui/presetmanager.ui b/src/avp/gui/presetmanager.ui index 5257b1c..5257b1c 100644 --- a/src/gui/presetmanager.ui +++ b/src/avp/gui/presetmanager.ui | |||
diff --git a/src/gui/preview_thread.py b/src/avp/gui/preview_thread.py index 1d78516..1d78516 100644 --- a/src/gui/preview_thread.py +++ b/src/avp/gui/preview_thread.py | |||
diff --git a/src/gui/preview_win.py b/src/avp/gui/preview_win.py index f52f8a3..f52f8a3 100644 --- a/src/gui/preview_win.py +++ b/src/avp/gui/preview_win.py | |||
diff --git a/src/toolkit/__init__.py b/src/avp/toolkit/__init__.py index 55e5f84..55e5f84 100644 --- a/src/toolkit/__init__.py +++ b/src/avp/toolkit/__init__.py | |||
diff --git a/src/toolkit/common.py b/src/avp/toolkit/common.py index e35aba2..e35aba2 100644 --- a/src/toolkit/common.py +++ b/src/avp/toolkit/common.py | |||
diff --git a/src/toolkit/ffmpeg.py b/src/avp/toolkit/ffmpeg.py index 5aedff3..5aedff3 100644 --- a/src/toolkit/ffmpeg.py +++ b/src/avp/toolkit/ffmpeg.py | |||
diff --git a/src/toolkit/frame.py b/src/avp/toolkit/frame.py index 94537a6..94537a6 100644 --- a/src/toolkit/frame.py +++ b/src/avp/toolkit/frame.py | |||
diff --git a/src/video_thread.py b/src/avp/video_thread.py index 5d72409..5d72409 100644 --- a/src/video_thread.py +++ b/src/avp/video_thread.py | |||
diff --git a/src/tests/__init__.py b/tests/__init__.py index e2d83e7..d0073ef 100644 --- a/src/tests/__init__.py +++ b/tests/__init__.py | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | import pytest | 1 | import pytest |
| 2 | import os | 2 | import os |
| 3 | import sys | 3 | import sys |
| 4 | from ..core import Core | ||
| 5 | 4 | ||
| 6 | 5 | ||
| 7 | def getTestDataPath(filename): | 6 | def getTestDataPath(filename): |
| 8 | return os.path.join(Core.wd, "tests", "data", filename) | 7 | tests_dir = os.path.dirname(os.path.abspath(__file__)) |
| 8 | return os.path.join(tests_dir, "data", filename) | ||
| 9 | 9 | ||
| 10 | 10 | ||
| 11 | def run(logFile): | 11 | def run(logFile): |
diff --git a/src/tests/data/test.jpg b/tests/data/test.jpg index 86266d9..86266d9 100644 --- a/src/tests/data/test.jpg +++ b/tests/data/test.jpg | |||
| Binary files differ | |||
diff --git a/src/tests/data/test.ogg b/tests/data/test.ogg index 46af76c..46af76c 100644 --- a/src/tests/data/test.ogg +++ b/tests/data/test.ogg | |||
| Binary files differ | |||
diff --git a/src/tests/data/test.png b/tests/data/test.png index f1ffd4a..f1ffd4a 100644 --- a/src/tests/data/test.png +++ b/tests/data/test.png | |||
| Binary files differ | |||
diff --git a/src/tests/test_commandline_export.py b/tests/test_commandline_export.py index 6126da7..05ead77 100644 --- a/src/tests/test_commandline_export.py +++ b/tests/test_commandline_export.py | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | import sys | 1 | import sys |
| 2 | import os | 2 | import os |
| 3 | import tempfile | 3 | import tempfile |
| 4 | from ..command import Command | 4 | from avp.command import Command |
| 5 | from . import getTestDataPath | 5 | from . import getTestDataPath |
| 6 | from pytestqt import qtbot | 6 | from pytestqt import qtbot |
| 7 | 7 | ||
diff --git a/src/tests/test_commandline_parser.py b/tests/test_commandline_parser.py index 5d1232b..5713286 100644 --- a/src/tests/test_commandline_parser.py +++ b/tests/test_commandline_parser.py | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | import sys | 1 | import sys |
| 2 | import pytest | 2 | import pytest |
| 3 | from ..command import Command | 3 | from avp.command import Command |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | def test_commandline_help(): | 6 | def test_commandline_help(): |
diff --git a/src/tests/test_core_init.py b/tests/test_core_init.py index 950dc13..16606fb 100644 --- a/src/tests/test_core_init.py +++ b/tests/test_core_init.py | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | from ..core import Core | 1 | from avp.core import Core |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | def test_component_names(): | 4 | def test_component_names(): |
| @@ -0,0 +1,272 @@ | |||
| 1 | version = 1 | ||
| 2 | revision = 3 | ||
| 3 | requires-python = ">=3.13" | ||
| 4 | |||
| 5 | [[package]] | ||
| 6 | name = "audio-visualizer-python" | ||
| 7 | version = "2.1.0" | ||
| 8 | source = { editable = "." } | ||
| 9 | dependencies = [ | ||
| 10 | { name = "numpy" }, | ||
| 11 | { name = "pillow" }, | ||
| 12 | { name = "pyqt6" }, | ||
| 13 | ] | ||
| 14 | |||
| 15 | [package.dev-dependencies] | ||
| 16 | dev = [ | ||
| 17 | { name = "pytest" }, | ||
| 18 | { name = "pytest-qt" }, | ||
| 19 | ] | ||
| 20 | |||
| 21 | [package.metadata] | ||
| 22 | requires-dist = [ | ||
| 23 | { name = "numpy", specifier = ">=2.4.1" }, | ||
| 24 | { name = "pillow", specifier = ">=12.1.0" }, | ||
| 25 | { name = "pyqt6", specifier = ">=6.10.2" }, | ||
| 26 | ] | ||
| 27 | |||
| 28 | [package.metadata.requires-dev] | ||
| 29 | dev = [ | ||
| 30 | { name = "pytest" }, | ||
| 31 | { name = "pytest-qt" }, | ||
| 32 | ] | ||
| 33 | |||
| 34 | [[package]] | ||
| 35 | name = "colorama" | ||
| 36 | version = "0.4.6" | ||
| 37 | source = { registry = "https://pypi.org/simple" } | ||
| 38 | sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } | ||
| 39 | wheels = [ | ||
| 40 | { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, | ||
| 41 | ] | ||
| 42 | |||
| 43 | [[package]] | ||
| 44 | name = "iniconfig" | ||
| 45 | version = "2.3.0" | ||
| 46 | source = { registry = "https://pypi.org/simple" } | ||
| 47 | sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } | ||
| 48 | wheels = [ | ||
| 49 | { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, | ||
| 50 | ] | ||
| 51 | |||
| 52 | [[package]] | ||
| 53 | name = "numpy" | ||
| 54 | version = "2.4.1" | ||
| 55 | source = { registry = "https://pypi.org/simple" } | ||
| 56 | sdist = { url = "https://files.pythonhosted.org/packages/24/62/ae72ff66c0f1fd959925b4c11f8c2dea61f47f6acaea75a08512cdfe3fed/numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", size = 20721320, upload-time = "2026-01-10T06:44:59.619Z" } | ||
| 57 | wheels = [ | ||
| 58 | { url = "https://files.pythonhosted.org/packages/04/68/732d4b7811c00775f3bd522a21e8dd5a23f77eb11acdeb663e4a4ebf0ef4/numpy-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b", size = 16652495, upload-time = "2026-01-10T06:43:06.283Z" }, | ||
| 59 | { url = "https://files.pythonhosted.org/packages/20/ca/857722353421a27f1465652b2c66813eeeccea9d76d5f7b74b99f298e60e/numpy-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f", size = 12368657, upload-time = "2026-01-10T06:43:09.094Z" }, | ||
| 60 | { url = "https://files.pythonhosted.org/packages/81/0d/2377c917513449cc6240031a79d30eb9a163d32a91e79e0da47c43f2c0c8/numpy-2.4.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9", size = 5197256, upload-time = "2026-01-10T06:43:13.634Z" }, | ||
| 61 | { url = "https://files.pythonhosted.org/packages/17/39/569452228de3f5de9064ac75137082c6214be1f5c532016549a7923ab4b5/numpy-2.4.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e", size = 6545212, upload-time = "2026-01-10T06:43:15.661Z" }, | ||
| 62 | { url = "https://files.pythonhosted.org/packages/8c/a4/77333f4d1e4dac4395385482557aeecf4826e6ff517e32ca48e1dafbe42a/numpy-2.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5", size = 14402871, upload-time = "2026-01-10T06:43:17.324Z" }, | ||
| 63 | { url = "https://files.pythonhosted.org/packages/ba/87/d341e519956273b39d8d47969dd1eaa1af740615394fe67d06f1efa68773/numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8", size = 16359305, upload-time = "2026-01-10T06:43:19.376Z" }, | ||
| 64 | { url = "https://files.pythonhosted.org/packages/32/91/789132c6666288eaa20ae8066bb99eba1939362e8f1a534949a215246e97/numpy-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c", size = 16181909, upload-time = "2026-01-10T06:43:21.808Z" }, | ||
| 65 | { url = "https://files.pythonhosted.org/packages/cf/b8/090b8bd27b82a844bb22ff8fdf7935cb1980b48d6e439ae116f53cdc2143/numpy-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2", size = 18284380, upload-time = "2026-01-10T06:43:23.957Z" }, | ||
| 66 | { url = "https://files.pythonhosted.org/packages/67/78/722b62bd31842ff029412271556a1a27a98f45359dea78b1548a3a9996aa/numpy-2.4.1-cp313-cp313-win32.whl", hash = "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d", size = 5957089, upload-time = "2026-01-10T06:43:27.535Z" }, | ||
| 67 | { url = "https://files.pythonhosted.org/packages/da/a6/cf32198b0b6e18d4fbfa9a21a992a7fca535b9bb2b0cdd217d4a3445b5ca/numpy-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb", size = 12307230, upload-time = "2026-01-10T06:43:29.298Z" }, | ||
| 68 | { url = "https://files.pythonhosted.org/packages/44/6c/534d692bfb7d0afe30611320c5fb713659dcb5104d7cc182aff2aea092f5/numpy-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5", size = 10313125, upload-time = "2026-01-10T06:43:31.782Z" }, | ||
| 69 | { url = "https://files.pythonhosted.org/packages/da/a1/354583ac5c4caa566de6ddfbc42744409b515039e085fab6e0ff942e0df5/numpy-2.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7", size = 12496156, upload-time = "2026-01-10T06:43:34.237Z" }, | ||
| 70 | { url = "https://files.pythonhosted.org/packages/51/b0/42807c6e8cce58c00127b1dc24d365305189991f2a7917aa694a109c8d7d/numpy-2.4.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d", size = 5324663, upload-time = "2026-01-10T06:43:36.211Z" }, | ||
| 71 | { url = "https://files.pythonhosted.org/packages/fe/55/7a621694010d92375ed82f312b2f28017694ed784775269115323e37f5e2/numpy-2.4.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15", size = 6645224, upload-time = "2026-01-10T06:43:37.884Z" }, | ||
| 72 | { url = "https://files.pythonhosted.org/packages/50/96/9fa8635ed9d7c847d87e30c834f7109fac5e88549d79ef3324ab5c20919f/numpy-2.4.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9", size = 14462352, upload-time = "2026-01-10T06:43:39.479Z" }, | ||
| 73 | { url = "https://files.pythonhosted.org/packages/03/d1/8cf62d8bb2062da4fb82dd5d49e47c923f9c0738032f054e0a75342faba7/numpy-2.4.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2", size = 16407279, upload-time = "2026-01-10T06:43:41.93Z" }, | ||
| 74 | { url = "https://files.pythonhosted.org/packages/86/1c/95c86e17c6b0b31ce6ef219da00f71113b220bcb14938c8d9a05cee0ff53/numpy-2.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505", size = 16248316, upload-time = "2026-01-10T06:43:44.121Z" }, | ||
| 75 | { url = "https://files.pythonhosted.org/packages/30/b4/e7f5ff8697274c9d0fa82398b6a372a27e5cef069b37df6355ccb1f1db1a/numpy-2.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2", size = 18329884, upload-time = "2026-01-10T06:43:46.613Z" }, | ||
| 76 | { url = "https://files.pythonhosted.org/packages/37/a4/b073f3e9d77f9aec8debe8ca7f9f6a09e888ad1ba7488f0c3b36a94c03ac/numpy-2.4.1-cp313-cp313t-win32.whl", hash = "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4", size = 6081138, upload-time = "2026-01-10T06:43:48.854Z" }, | ||
| 77 | { url = "https://files.pythonhosted.org/packages/16/16/af42337b53844e67752a092481ab869c0523bc95c4e5c98e4dac4e9581ac/numpy-2.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510", size = 12447478, upload-time = "2026-01-10T06:43:50.476Z" }, | ||
| 78 | { url = "https://files.pythonhosted.org/packages/6c/f8/fa85b2eac68ec631d0b631abc448552cb17d39afd17ec53dcbcc3537681a/numpy-2.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261", size = 10382981, upload-time = "2026-01-10T06:43:52.575Z" }, | ||
| 79 | { url = "https://files.pythonhosted.org/packages/1b/a7/ef08d25698e0e4b4efbad8d55251d20fe2a15f6d9aa7c9b30cd03c165e6f/numpy-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc", size = 16652046, upload-time = "2026-01-10T06:43:54.797Z" }, | ||
| 80 | { url = "https://files.pythonhosted.org/packages/8f/39/e378b3e3ca13477e5ac70293ec027c438d1927f18637e396fe90b1addd72/numpy-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3", size = 12378858, upload-time = "2026-01-10T06:43:57.099Z" }, | ||
| 81 | { url = "https://files.pythonhosted.org/packages/c3/74/7ec6154f0006910ed1fdbb7591cf4432307033102b8a22041599935f8969/numpy-2.4.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220", size = 5207417, upload-time = "2026-01-10T06:43:59.037Z" }, | ||
| 82 | { url = "https://files.pythonhosted.org/packages/f7/b7/053ac11820d84e42f8feea5cb81cc4fcd1091499b45b1ed8c7415b1bf831/numpy-2.4.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee", size = 6542643, upload-time = "2026-01-10T06:44:01.852Z" }, | ||
| 83 | { url = "https://files.pythonhosted.org/packages/c0/c4/2e7908915c0e32ca636b92e4e4a3bdec4cb1e7eb0f8aedf1ed3c68a0d8cd/numpy-2.4.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556", size = 14418963, upload-time = "2026-01-10T06:44:04.047Z" }, | ||
| 84 | { url = "https://files.pythonhosted.org/packages/eb/c0/3ed5083d94e7ffd7c404e54619c088e11f2e1939a9544f5397f4adb1b8ba/numpy-2.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844", size = 16363811, upload-time = "2026-01-10T06:44:06.207Z" }, | ||
| 85 | { url = "https://files.pythonhosted.org/packages/0e/68/42b66f1852bf525050a67315a4fb94586ab7e9eaa541b1bef530fab0c5dd/numpy-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3", size = 16197643, upload-time = "2026-01-10T06:44:08.33Z" }, | ||
| 86 | { url = "https://files.pythonhosted.org/packages/d2/40/e8714fc933d85f82c6bfc7b998a0649ad9769a32f3494ba86598aaf18a48/numpy-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205", size = 18289601, upload-time = "2026-01-10T06:44:10.841Z" }, | ||
| 87 | { url = "https://files.pythonhosted.org/packages/80/9a/0d44b468cad50315127e884802351723daca7cf1c98d102929468c81d439/numpy-2.4.1-cp314-cp314-win32.whl", hash = "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745", size = 6005722, upload-time = "2026-01-10T06:44:13.332Z" }, | ||
| 88 | { url = "https://files.pythonhosted.org/packages/7e/bb/c6513edcce5a831810e2dddc0d3452ce84d208af92405a0c2e58fd8e7881/numpy-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d", size = 12438590, upload-time = "2026-01-10T06:44:15.006Z" }, | ||
| 89 | { url = "https://files.pythonhosted.org/packages/e9/da/a598d5cb260780cf4d255102deba35c1d072dc028c4547832f45dd3323a8/numpy-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df", size = 10596180, upload-time = "2026-01-10T06:44:17.386Z" }, | ||
| 90 | { url = "https://files.pythonhosted.org/packages/de/bc/ea3f2c96fcb382311827231f911723aeff596364eb6e1b6d1d91128aa29b/numpy-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f", size = 12498774, upload-time = "2026-01-10T06:44:19.467Z" }, | ||
| 91 | { url = "https://files.pythonhosted.org/packages/aa/ab/ef9d939fe4a812648c7a712610b2ca6140b0853c5efea361301006c02ae5/numpy-2.4.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0", size = 5327274, upload-time = "2026-01-10T06:44:23.189Z" }, | ||
| 92 | { url = "https://files.pythonhosted.org/packages/bd/31/d381368e2a95c3b08b8cf7faac6004849e960f4a042d920337f71cef0cae/numpy-2.4.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c", size = 6648306, upload-time = "2026-01-10T06:44:25.012Z" }, | ||
| 93 | { url = "https://files.pythonhosted.org/packages/c8/e5/0989b44ade47430be6323d05c23207636d67d7362a1796ccbccac6773dd2/numpy-2.4.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93", size = 14464653, upload-time = "2026-01-10T06:44:26.706Z" }, | ||
| 94 | { url = "https://files.pythonhosted.org/packages/10/a7/cfbe475c35371cae1358e61f20c5f075badc18c4797ab4354140e1d283cf/numpy-2.4.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42", size = 16405144, upload-time = "2026-01-10T06:44:29.378Z" }, | ||
| 95 | { url = "https://files.pythonhosted.org/packages/f8/a3/0c63fe66b534888fa5177cc7cef061541064dbe2b4b60dcc60ffaf0d2157/numpy-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01", size = 16247425, upload-time = "2026-01-10T06:44:31.721Z" }, | ||
| 96 | { url = "https://files.pythonhosted.org/packages/6b/2b/55d980cfa2c93bd40ff4c290bf824d792bd41d2fe3487b07707559071760/numpy-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b", size = 18330053, upload-time = "2026-01-10T06:44:34.617Z" }, | ||
| 97 | { url = "https://files.pythonhosted.org/packages/23/12/8b5fc6b9c487a09a7957188e0943c9ff08432c65e34567cabc1623b03a51/numpy-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a", size = 6152482, upload-time = "2026-01-10T06:44:36.798Z" }, | ||
| 98 | { url = "https://files.pythonhosted.org/packages/00/a5/9f8ca5856b8940492fc24fbe13c1bc34d65ddf4079097cf9e53164d094e1/numpy-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2", size = 12627117, upload-time = "2026-01-10T06:44:38.828Z" }, | ||
| 99 | { url = "https://files.pythonhosted.org/packages/ad/0d/eca3d962f9eef265f01a8e0d20085c6dd1f443cbffc11b6dede81fd82356/numpy-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295", size = 10667121, upload-time = "2026-01-10T06:44:41.644Z" }, | ||
| 100 | ] | ||
| 101 | |||
| 102 | [[package]] | ||
| 103 | name = "packaging" | ||
| 104 | version = "25.0" | ||
| 105 | source = { registry = "https://pypi.org/simple" } | ||
| 106 | sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } | ||
| 107 | wheels = [ | ||
| 108 | { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, | ||
| 109 | ] | ||
| 110 | |||
| 111 | [[package]] | ||
| 112 | name = "pillow" | ||
| 113 | version = "12.1.0" | ||
| 114 | source = { registry = "https://pypi.org/simple" } | ||
| 115 | sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } | ||
| 116 | wheels = [ | ||
| 117 | { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, | ||
| 118 | { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, | ||
| 119 | { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, | ||
| 120 | { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, | ||
| 121 | { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, | ||
| 122 | { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, | ||
| 123 | { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, | ||
| 124 | { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, | ||
| 125 | { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, | ||
| 126 | { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, | ||
| 127 | { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, | ||
| 128 | { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, | ||
| 129 | { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, | ||
| 130 | { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, | ||
| 131 | { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, | ||
| 132 | { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, | ||
| 133 | { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, | ||
| 134 | { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, | ||
| 135 | { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, | ||
| 136 | { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, | ||
| 137 | { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, | ||
| 138 | { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, | ||
| 139 | { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, | ||
| 140 | { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, | ||
| 141 | { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, | ||
| 142 | { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, | ||
| 143 | { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, | ||
| 144 | { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, | ||
| 145 | { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, | ||
| 146 | { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, | ||
| 147 | { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, | ||
| 148 | { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, | ||
| 149 | { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, | ||
| 150 | { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, | ||
| 151 | { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, | ||
| 152 | { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, | ||
| 153 | { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, | ||
| 154 | { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, | ||
| 155 | { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, | ||
| 156 | { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, | ||
| 157 | { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, | ||
| 158 | { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, | ||
| 159 | { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, | ||
| 160 | { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, | ||
| 161 | { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, | ||
| 162 | { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, | ||
| 163 | { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, | ||
| 164 | { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, | ||
| 165 | { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, | ||
| 166 | { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, | ||
| 167 | ] | ||
| 168 | |||
| 169 | [[package]] | ||
| 170 | name = "pluggy" | ||
| 171 | version = "1.6.0" | ||
| 172 | source = { registry = "https://pypi.org/simple" } | ||
| 173 | sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } | ||
| 174 | wheels = [ | ||
| 175 | { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, | ||
| 176 | ] | ||
| 177 | |||
| 178 | [[package]] | ||
| 179 | name = "pygments" | ||
| 180 | version = "2.19.2" | ||
| 181 | source = { registry = "https://pypi.org/simple" } | ||
| 182 | sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } | ||
| 183 | wheels = [ | ||
| 184 | { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, | ||
| 185 | ] | ||
| 186 | |||
| 187 | [[package]] | ||
| 188 | name = "pyqt6" | ||
| 189 | version = "6.10.2" | ||
| 190 | source = { registry = "https://pypi.org/simple" } | ||
| 191 | dependencies = [ | ||
| 192 | { name = "pyqt6-qt6" }, | ||
| 193 | { name = "pyqt6-sip" }, | ||
| 194 | ] | ||
| 195 | sdist = { url = "https://files.pythonhosted.org/packages/96/03/e756f52e8b0d7bb5527baf8c46d59af0746391943bdb8655acba22ee4168/pyqt6-6.10.2.tar.gz", hash = "sha256:6c0db5d8cbb9a3e7e2b5b51d0ff3f283121fa27b864db6d2f35b663c9be5cc83", size = 1085573, upload-time = "2026-01-08T16:40:00.244Z" } | ||
| 196 | wheels = [ | ||
| 197 | { url = "https://files.pythonhosted.org/packages/fb/3f/f073a980969aa485ef288eb2e3b94c223ba9c7ac9941543f19b51659b98d/pyqt6-6.10.2-cp39-abi3-macosx_10_14_universal2.whl", hash = "sha256:37ae7c1183fe4dd0c6aefd2006a35731245de1cb6f817bb9e414a3e4848dfd6d", size = 60244482, upload-time = "2026-01-08T16:38:50.837Z" }, | ||
| 198 | { url = "https://files.pythonhosted.org/packages/ec/3e/9a015651ec71cea2e2f960c37edeb21623ba96a74956c0827def837f7c6b/pyqt6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:78e1b3d5763e4cbc84485aef600e0aba5e1932fd263b716f92cd1a40dfa5e924", size = 37899440, upload-time = "2026-01-08T16:39:09.027Z" }, | ||
| 199 | { url = "https://files.pythonhosted.org/packages/51/74/a88fec2b99700270ca5d7dc7d650236a4990ed6fc88e055ca0fc8a339ee3/pyqt6-6.10.2-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:bbc3af541bbecd27301bfe69fe445aa1611a9b490bd3de77306b12df632f7ec6", size = 40748467, upload-time = "2026-01-08T16:39:29.551Z" }, | ||
| 200 | { url = "https://files.pythonhosted.org/packages/75/34/be7a55529607b21db00a49ca53cb07c3092d2a5a95ea19bb95cfa0346904/pyqt6-6.10.2-cp39-abi3-win_amd64.whl", hash = "sha256:bd328cb70bc382c48861cd5f0a11b2b8ae6f5692d5a2d6679ba52785dced327b", size = 26015391, upload-time = "2026-01-08T16:39:42.946Z" }, | ||
| 201 | { url = "https://files.pythonhosted.org/packages/af/de/d9c88f976602b7884fec4ad54a4575d48e23e4f390e5357ea83917358846/pyqt6-6.10.2-cp39-abi3-win_arm64.whl", hash = "sha256:7901ba1df024b7ee9fdacfb2b7661aeb3749ae8b0bef65428077de3e0450eabb", size = 26208415, upload-time = "2026-01-08T16:39:57.751Z" }, | ||
| 202 | ] | ||
| 203 | |||
| 204 | [[package]] | ||
| 205 | name = "pyqt6-qt6" | ||
| 206 | version = "6.10.1" | ||
| 207 | source = { registry = "https://pypi.org/simple" } | ||
| 208 | wheels = [ | ||
| 209 | { url = "https://files.pythonhosted.org/packages/54/1b/137184632cad83a210e7955226744a77945260ca2e75892fe36299d26ada/pyqt6_qt6-6.10.1-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:4bb2798a95f624b462b70c4f185422235b714b01e55abab32af1740f147948e2", size = 68472463, upload-time = "2025-11-27T14:20:51.694Z" }, | ||
| 210 | { url = "https://files.pythonhosted.org/packages/af/df/ca795ac3d04243ad63499cfedcf92d8b5f6e3585a2a26c09f34cb58c8e44/pyqt6_qt6-6.10.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:0921cc522512cb40dbab673806bc1676924819550e0aec8e3f3fe6907387c5b7", size = 62296168, upload-time = "2025-11-27T14:21:21.232Z" }, | ||
| 211 | { url = "https://files.pythonhosted.org/packages/f4/7e/9867361252e2a4717dba95c64a0f3a793603f4a52cb9a46abbb041e960f5/pyqt6_qt6-6.10.1-py3-none-manylinux_2_34_x86_64.whl", hash = "sha256:04069aea421703b1269c8a1bcf017e36463af284a044239a4ebda3bde0a629fb", size = 83829262, upload-time = "2025-11-27T14:22:00.399Z" }, | ||
| 212 | { url = "https://files.pythonhosted.org/packages/9b/7b/18f4eb2273a92283fe4d87aa740a400eb14a4e41b8f990aaf563e9767db6/pyqt6_qt6-6.10.1-py3-none-manylinux_2_39_aarch64.whl", hash = "sha256:5b9be39e0120e32d0b42cdb844e3ae110ddadd39629c991e511902c06f155aff", size = 82877396, upload-time = "2025-11-27T14:22:36.994Z" }, | ||
| 213 | { url = "https://files.pythonhosted.org/packages/53/5c/648c515d57bc82909d0597befb03bbc2f7a570f323dba3ad38629669efcb/pyqt6_qt6-6.10.1-py3-none-win_amd64.whl", hash = "sha256:df564d3dc2863b1fde22b39bea9f56ceb2a3ed7d6f0b76d3f96c2d3bc5d71516", size = 76670151, upload-time = "2025-11-27T14:23:11.172Z" }, | ||
| 214 | { url = "https://files.pythonhosted.org/packages/0a/13/2d2a9c0559bfa53effea5e2c1ed7aebb430186ce0b64cfba235231a049d9/pyqt6_qt6-6.10.1-py3-none-win_arm64.whl", hash = "sha256:48282e0f99682daf4f1e220cfe9f41255e003af38f7728a30d40c76e55c89816", size = 58276316, upload-time = "2025-11-27T14:23:38.744Z" }, | ||
| 215 | ] | ||
| 216 | |||
| 217 | [[package]] | ||
| 218 | name = "pyqt6-sip" | ||
| 219 | version = "13.10.3" | ||
| 220 | source = { registry = "https://pypi.org/simple" } | ||
| 221 | sdist = { url = "https://files.pythonhosted.org/packages/0d/e9/d1b97154cec1d6c8a3d93fb6565d1463bc528fa5103491d626d07a451c7c/pyqt6_sip-13.10.3.tar.gz", hash = "sha256:630895b3827e2c3b4e072089157985691fe4210d64340e71141f93775ea4ae51", size = 92621, upload-time = "2025-12-06T13:19:44.569Z" } | ||
| 222 | wheels = [ | ||
| 223 | { url = "https://files.pythonhosted.org/packages/0c/a9/25a07fb16308e9405ac01369013943ae58bef72c8700d8a6100182b8d937/pyqt6_sip-13.10.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a8b5532398c0e6d0064d4dce4c096ff20bf710507dafefb036eff61c3f59cda8", size = 112348, upload-time = "2025-12-06T13:19:33.323Z" }, | ||
| 224 | { url = "https://files.pythonhosted.org/packages/4a/f1/38b625b0638681659bc3c7eaa548b65862a305d26b48835b67cdd6add720/pyqt6_sip-13.10.3-cp313-cp313-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d02c138c6eacb13ef668bfe6becfb6ab40bb40135f34a36ef31b7dc860976493", size = 301470, upload-time = "2025-12-06T13:19:35.824Z" }, | ||
| 225 | { url = "https://files.pythonhosted.org/packages/cd/8d/a2eaccc88cc53e6370e3728593ea80d10a132f87078ce7cbcfc8c33d9b3f/pyqt6_sip-13.10.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e234a3af9539f71bb566e7136317b92f189a89553970284d833cd63cca4dafdd", size = 323466, upload-time = "2025-12-06T13:19:34.445Z" }, | ||
| 226 | { url = "https://files.pythonhosted.org/packages/47/f8/55a93c3eda94c94fc10c2537f55ca98d9bb1982bf65c03ee2302c250b6aa/pyqt6_sip-13.10.3-cp313-cp313-win_amd64.whl", hash = "sha256:a856b9b2a4700c8dded1c870811d5ba26722238d57c9098904a99570429d112b", size = 53468, upload-time = "2025-12-06T13:19:36.877Z" }, | ||
| 227 | { url = "https://files.pythonhosted.org/packages/41/a3/ee0633507350442580a2cd893e4edb7170d87fef1c790365e7bc4999ce40/pyqt6_sip-13.10.3-cp313-cp313-win_arm64.whl", hash = "sha256:9e48e5d6ac9e1a61d5abdfb2191a0ffb19948eefd5adacdd0c1dedbed06222aa", size = 48645, upload-time = "2025-12-06T13:19:38.216Z" }, | ||
| 228 | { url = "https://files.pythonhosted.org/packages/a1/70/a22362c2632d07d8e29431418e0485f12a41b3c4844f15b60ca5a969e01c/pyqt6_sip-13.10.3-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:eb7afe41329ce2eca99118f01776a047a2a150c550258dff1746505af223f997", size = 112432, upload-time = "2025-12-06T13:19:39.153Z" }, | ||
| 229 | { url = "https://files.pythonhosted.org/packages/25/72/e0a7e4489ea5b948aef707a7d76baf6722a65aabd7e4d3c253583eb6b268/pyqt6_sip-13.10.3-cp314-cp314-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6122fe4ccba5a5023581c2c3c57deab6eab56d8e931beec20b05666a46a38e6a", size = 301341, upload-time = "2025-12-06T13:19:41.642Z" }, | ||
| 230 | { url = "https://files.pythonhosted.org/packages/1f/43/0a648469a7e4f07df1c4ad6443f892e55631f24f7af30c7c946e458a82d1/pyqt6_sip-13.10.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3286a98e93608d51048e9046f557117424c8366be266b33ff852ee54ffa7b9bf", size = 324062, upload-time = "2025-12-06T13:19:40.308Z" }, | ||
| 231 | { url = "https://files.pythonhosted.org/packages/f3/0d/67d2095a932c007210437318c31fbc8376deb4e4491907861c4b9ac4ad9e/pyqt6_sip-13.10.3-cp314-cp314-win_amd64.whl", hash = "sha256:4fc6229ba7276266e3805b5517e7413cba79538f0c3ce7d2042a2027a90f99cf", size = 55076, upload-time = "2025-12-06T13:19:42.61Z" }, | ||
| 232 | { url = "https://files.pythonhosted.org/packages/f8/cd/f121be0271dc73d54f3580584103c046a8d2c06a2686b594b77fd677a5ef/pyqt6_sip-13.10.3-cp314-cp314-win_arm64.whl", hash = "sha256:efef47667ca009557d7ecf985b15f0bf440584fd634ee0eab19ec296effc7cca", size = 49464, upload-time = "2025-12-06T13:19:43.638Z" }, | ||
| 233 | ] | ||
| 234 | |||
| 235 | [[package]] | ||
| 236 | name = "pytest" | ||
| 237 | version = "9.0.2" | ||
| 238 | source = { registry = "https://pypi.org/simple" } | ||
| 239 | dependencies = [ | ||
| 240 | { name = "colorama", marker = "sys_platform == 'win32'" }, | ||
| 241 | { name = "iniconfig" }, | ||
| 242 | { name = "packaging" }, | ||
| 243 | { name = "pluggy" }, | ||
| 244 | { name = "pygments" }, | ||
| 245 | ] | ||
| 246 | sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } | ||
| 247 | wheels = [ | ||
| 248 | { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, | ||
| 249 | ] | ||
| 250 | |||
| 251 | [[package]] | ||
| 252 | name = "pytest-qt" | ||
| 253 | version = "4.5.0" | ||
| 254 | source = { registry = "https://pypi.org/simple" } | ||
| 255 | dependencies = [ | ||
| 256 | { name = "pluggy" }, | ||
| 257 | { name = "pytest" }, | ||
| 258 | { name = "typing-extensions" }, | ||
| 259 | ] | ||
| 260 | sdist = { url = "https://files.pythonhosted.org/packages/d3/61/8bdec02663c18bf5016709b909411dce04a868710477dc9b9844ffcf8dd2/pytest_qt-4.5.0.tar.gz", hash = "sha256:51620e01c488f065d2036425cbc1cbcf8a6972295105fd285321eb47e66a319f", size = 128702, upload-time = "2025-07-01T17:24:39.889Z" } | ||
| 261 | wheels = [ | ||
| 262 | { url = "https://files.pythonhosted.org/packages/cc/d0/8339b888ad64a3d4e508fed8245a402b503846e1972c10ad60955883dcbb/pytest_qt-4.5.0-py3-none-any.whl", hash = "sha256:ed21ea9b861247f7d18090a26bfbda8fb51d7a8a7b6f776157426ff2ccf26eff", size = 37214, upload-time = "2025-07-01T17:24:38.226Z" }, | ||
| 263 | ] | ||
| 264 | |||
| 265 | [[package]] | ||
| 266 | name = "typing-extensions" | ||
| 267 | version = "4.15.0" | ||
| 268 | source = { registry = "https://pypi.org/simple" } | ||
| 269 | sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } | ||
| 270 | wheels = [ | ||
| 271 | { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, | ||
| 272 | ] | ||
