mirror of
https://github.com/ankitects/anki.git
synced 2026-01-13 22:13:58 -05:00
Merge branch 'main' into include-decay-in-ComputeMemoryStateResponse
This commit is contained in:
commit
35361f4feb
82 changed files with 641 additions and 1232 deletions
2
.version
2
.version
|
|
@ -1 +1 @@
|
||||||
25.06
|
25.06b4
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ pub fn build_and_check_aqt(build: &mut Build) -> Result<()> {
|
||||||
build_forms(build)?;
|
build_forms(build)?;
|
||||||
build_generated_sources(build)?;
|
build_generated_sources(build)?;
|
||||||
build_data_folder(build)?;
|
build_data_folder(build)?;
|
||||||
build_macos_helper(build)?;
|
|
||||||
build_wheel(build)?;
|
build_wheel(build)?;
|
||||||
check_python(build)?;
|
check_python(build)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -39,7 +38,6 @@ fn build_forms(build: &mut Build) -> Result<()> {
|
||||||
let mut py_files = vec![];
|
let mut py_files = vec![];
|
||||||
for path in ui_files.resolve() {
|
for path in ui_files.resolve() {
|
||||||
let outpath = outdir.join(path.file_name().unwrap()).into_string();
|
let outpath = outdir.join(path.file_name().unwrap()).into_string();
|
||||||
py_files.push(outpath.replace(".ui", "_qt5.py"));
|
|
||||||
py_files.push(outpath.replace(".ui", "_qt6.py"));
|
py_files.push(outpath.replace(".ui", "_qt6.py"));
|
||||||
}
|
}
|
||||||
build.add_action(
|
build.add_action(
|
||||||
|
|
@ -337,27 +335,6 @@ impl BuildAction for BuildThemedIcon<'_> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build_macos_helper(build: &mut Build) -> Result<()> {
|
|
||||||
if cfg!(target_os = "macos") {
|
|
||||||
build.add_action(
|
|
||||||
"qt:aqt:data:lib:libankihelper",
|
|
||||||
RunCommand {
|
|
||||||
command: ":pyenv:bin",
|
|
||||||
args: "$script $out $in",
|
|
||||||
inputs: hashmap! {
|
|
||||||
"script" => inputs!["qt/mac/helper_build.py"],
|
|
||||||
"in" => inputs![glob!["qt/mac/*.swift"]],
|
|
||||||
"" => inputs!["out/env"],
|
|
||||||
},
|
|
||||||
outputs: hashmap! {
|
|
||||||
"out" => vec!["qt/_aqt/data/lib/libankihelper.dylib"],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)?;
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn build_wheel(build: &mut Build) -> Result<()> {
|
fn build_wheel(build: &mut Build) -> Result<()> {
|
||||||
build.add_action(
|
build.add_action(
|
||||||
"wheels:aqt",
|
"wheels:aqt",
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,45 @@ use ninja_gen::python::PythonTypecheck;
|
||||||
use ninja_gen::rsync::RsyncFiles;
|
use ninja_gen::rsync::RsyncFiles;
|
||||||
use ninja_gen::Build;
|
use ninja_gen::Build;
|
||||||
|
|
||||||
|
/// Normalize version string by removing leading zeros from numeric parts
|
||||||
|
/// while preserving pre-release markers (b1, rc2, a3, etc.)
|
||||||
|
fn normalize_version(version: &str) -> String {
|
||||||
|
version
|
||||||
|
.split('.')
|
||||||
|
.map(|part| {
|
||||||
|
// Check if the part contains only digits
|
||||||
|
if part.chars().all(|c| c.is_ascii_digit()) {
|
||||||
|
// Numeric part: remove leading zeros
|
||||||
|
part.parse::<u32>().unwrap_or(0).to_string()
|
||||||
|
} else {
|
||||||
|
// Mixed part (contains both numbers and pre-release markers)
|
||||||
|
// Split on first non-digit character and normalize the numeric prefix
|
||||||
|
let chars = part.chars();
|
||||||
|
let mut numeric_prefix = String::new();
|
||||||
|
let mut rest = String::new();
|
||||||
|
let mut found_non_digit = false;
|
||||||
|
|
||||||
|
for ch in chars {
|
||||||
|
if ch.is_ascii_digit() && !found_non_digit {
|
||||||
|
numeric_prefix.push(ch);
|
||||||
|
} else {
|
||||||
|
found_non_digit = true;
|
||||||
|
rest.push(ch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if numeric_prefix.is_empty() {
|
||||||
|
part.to_string()
|
||||||
|
} else {
|
||||||
|
let normalized_prefix = numeric_prefix.parse::<u32>().unwrap_or(0).to_string();
|
||||||
|
format!("{}{}", normalized_prefix, rest)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(".")
|
||||||
|
}
|
||||||
|
|
||||||
pub fn setup_venv(build: &mut Build) -> Result<()> {
|
pub fn setup_venv(build: &mut Build) -> Result<()> {
|
||||||
let extra_binary_exports = &[
|
let extra_binary_exports = &[
|
||||||
"mypy",
|
"mypy",
|
||||||
|
|
@ -131,14 +170,7 @@ impl BuildAction for BuildWheel {
|
||||||
|
|
||||||
let name = self.name;
|
let name = self.name;
|
||||||
|
|
||||||
// Normalize version like hatchling does: remove leading zeros from version
|
let normalized_version = normalize_version(&self.version);
|
||||||
// parts
|
|
||||||
let normalized_version = self
|
|
||||||
.version
|
|
||||||
.split('.')
|
|
||||||
.map(|part| part.parse::<u32>().unwrap_or(0).to_string())
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
.join(".");
|
|
||||||
|
|
||||||
let wheel_path = format!("wheels/{name}-{normalized_version}-{tag}.whl");
|
let wheel_path = format!("wheels/{name}-{normalized_version}-{tag}.whl");
|
||||||
build.add_outputs("out", vec![wheel_path]);
|
build.add_outputs("out", vec![wheel_path]);
|
||||||
|
|
@ -279,3 +311,25 @@ pub(crate) fn setup_sphinx(build: &mut Build) -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_normalize_version_basic() {
|
||||||
|
assert_eq!(normalize_version("1.2.3"), "1.2.3");
|
||||||
|
assert_eq!(normalize_version("01.02.03"), "1.2.3");
|
||||||
|
assert_eq!(normalize_version("1.0.0"), "1.0.0");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_normalize_version_with_prerelease() {
|
||||||
|
assert_eq!(normalize_version("1.2.3b1"), "1.2.3b1");
|
||||||
|
assert_eq!(normalize_version("01.02.03b1"), "1.2.3b1");
|
||||||
|
assert_eq!(normalize_version("1.0.0rc2"), "1.0.0rc2");
|
||||||
|
assert_eq!(normalize_version("2.1.0a3"), "2.1.0a3");
|
||||||
|
assert_eq!(normalize_version("1.2.3beta1"), "1.2.3beta1");
|
||||||
|
assert_eq!(normalize_version("1.2.3alpha1"), "1.2.3alpha1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@ impl BuildAction for CargoTest {
|
||||||
"cargo-nextest",
|
"cargo-nextest",
|
||||||
CargoInstall {
|
CargoInstall {
|
||||||
binary_name: "cargo-nextest",
|
binary_name: "cargo-nextest",
|
||||||
args: "cargo-nextest --version 0.9.57 --locked",
|
args: "cargo-nextest --version 0.9.99 --locked --no-default-features --features default-no-update",
|
||||||
},
|
},
|
||||||
)?;
|
)?;
|
||||||
setup_flags(build)
|
setup_flags(build)
|
||||||
|
|
|
||||||
|
|
@ -51,13 +51,8 @@ Anki requires a recent glibc.
|
||||||
|
|
||||||
If you are using a distro that uses musl, Anki will not work.
|
If you are using a distro that uses musl, Anki will not work.
|
||||||
|
|
||||||
If your glibc version is 2.35+ on AMD64 or 2.39+ on ARM64, you can skip the rest of this section.
|
You can use your system's Qt libraries if they are Qt 6.2 or later, if
|
||||||
|
you wish. After installing the system libraries (eg:
|
||||||
If your system has an older glibc, you won't be able to use the PyQt wheels that are
|
|
||||||
available in pip/PyPy, and will need to use your system-installed PyQt instead.
|
|
||||||
Your distro will also need to have Python 3.9 or later.
|
|
||||||
|
|
||||||
After installing the system libraries (eg:
|
|
||||||
'sudo apt install python3-pyqt6.qt{quick,webengine} python3-venv pyqt6-dev-tools'),
|
'sudo apt install python3-pyqt6.qt{quick,webengine} python3-venv pyqt6-dev-tools'),
|
||||||
find the place they are installed (eg '/usr/lib/python3/dist-packages'). On modern Ubuntu, you'll
|
find the place they are installed (eg '/usr/lib/python3/dist-packages'). On modern Ubuntu, you'll
|
||||||
also need 'sudo apt remove python3-protobuf'. Then before running any commands like './run', tell Anki where
|
also need 'sudo apt remove python3-protobuf'. Then before running any commands like './run', tell Anki where
|
||||||
|
|
@ -68,12 +63,6 @@ export PYTHONPATH=/usr/lib/python3/dist-packages
|
||||||
export PYTHON_BINARY=/usr/bin/python3
|
export PYTHON_BINARY=/usr/bin/python3
|
||||||
```
|
```
|
||||||
|
|
||||||
There are a few things to be aware of:
|
|
||||||
|
|
||||||
- You should use ./run and not tools/run-qt5\*, even if your system libraries are Qt5.
|
|
||||||
- If your system libraries are Qt5, when creating an aqt wheel, the wheel will not work
|
|
||||||
on Qt6 environments.
|
|
||||||
|
|
||||||
## Packaging considerations
|
## Packaging considerations
|
||||||
|
|
||||||
Python, node and protoc are downloaded as part of the build. You can optionally define
|
Python, node and protoc are downloaded as part of the build. You can optionally define
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ qt-misc-second =
|
||||||
qt-misc-layout-auto-enabled = Responsive layout enabled
|
qt-misc-layout-auto-enabled = Responsive layout enabled
|
||||||
qt-misc-layout-vertical-enabled = Vertical layout enabled
|
qt-misc-layout-vertical-enabled = Vertical layout enabled
|
||||||
qt-misc-layout-horizontal-enabled = Horizontal layout enabled
|
qt-misc-layout-horizontal-enabled = Horizontal layout enabled
|
||||||
|
qt-misc-please-restart-to-update-anki = Please restart Anki to update to the latest version.
|
||||||
|
|
||||||
## deprecated- these strings will be removed in the future, and do not need
|
## deprecated- these strings will be removed in the future, and do not need
|
||||||
## to be translated
|
## to be translated
|
||||||
|
|
|
||||||
|
|
@ -309,12 +309,17 @@ def int_version() -> int:
|
||||||
"""Anki's version as an integer in the form YYMMPP, e.g. 230900.
|
"""Anki's version as an integer in the form YYMMPP, e.g. 230900.
|
||||||
(year, month, patch).
|
(year, month, patch).
|
||||||
In 2.1.x releases, this was just the last number."""
|
In 2.1.x releases, this was just the last number."""
|
||||||
|
import re
|
||||||
|
|
||||||
from anki.buildinfo import version
|
from anki.buildinfo import version
|
||||||
|
|
||||||
|
# Strip non-numeric characters (handles beta/rc suffixes like '25.02b1' or 'rc3')
|
||||||
|
numeric_version = re.sub(r"[^0-9.]", "", version)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
[year, month, patch] = version.split(".")
|
[year, month, patch] = numeric_version.split(".")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
[year, month] = version.split(".")
|
[year, month] = numeric_version.split(".")
|
||||||
patch = "0"
|
patch = "0"
|
||||||
|
|
||||||
year_num = int(year)
|
year_num = int(year)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "anki"
|
name = "anki"
|
||||||
# dynamic = ["version"]
|
dynamic = ["version"]
|
||||||
version = "0.1.2"
|
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ description = "Anki's Rust library code Python bindings"
|
||||||
name = "rsbridge"
|
name = "rsbridge"
|
||||||
crate-type = ["cdylib"]
|
crate-type = ["cdylib"]
|
||||||
path = "lib.rs"
|
path = "lib.rs"
|
||||||
|
test = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anki.workspace = true
|
anki.workspace = true
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,7 @@ def setupLangAndBackend(
|
||||||
class NativeEventFilter(QAbstractNativeEventFilter):
|
class NativeEventFilter(QAbstractNativeEventFilter):
|
||||||
def nativeEventFilter(
|
def nativeEventFilter(
|
||||||
self, eventType: Any, message: Any
|
self, eventType: Any, message: Any
|
||||||
) -> tuple[bool, sip.voidptr | None]:
|
) -> tuple[bool, Any | None]:
|
||||||
|
|
||||||
if eventType == "windows_generic_MSG":
|
if eventType == "windows_generic_MSG":
|
||||||
import ctypes.wintypes
|
import ctypes.wintypes
|
||||||
|
|
@ -376,6 +376,8 @@ class AnkiApp(QApplication):
|
||||||
|
|
||||||
def onRecv(self) -> None:
|
def onRecv(self) -> None:
|
||||||
sock = self._srv.nextPendingConnection()
|
sock = self._srv.nextPendingConnection()
|
||||||
|
if sock is None:
|
||||||
|
return
|
||||||
if not sock.waitForReadyRead(self.TMOUT):
|
if not sock.waitForReadyRead(self.TMOUT):
|
||||||
sys.stderr.write(sock.errorString())
|
sys.stderr.write(sock.errorString())
|
||||||
return
|
return
|
||||||
|
|
@ -406,14 +408,12 @@ class AnkiApp(QApplication):
|
||||||
QRadioButton,
|
QRadioButton,
|
||||||
QMenu,
|
QMenu,
|
||||||
QSlider,
|
QSlider,
|
||||||
# classes with PyQt5 compatibility proxy
|
QToolButton,
|
||||||
without_qt5_compat_wrapper(QToolButton),
|
QTabBar,
|
||||||
without_qt5_compat_wrapper(QTabBar),
|
|
||||||
)
|
)
|
||||||
if evt.type() in [QEvent.Type.Enter, QEvent.Type.HoverEnter]:
|
if evt.type() in [QEvent.Type.Enter, QEvent.Type.HoverEnter]:
|
||||||
if (isinstance(src, pointer_classes) and src.isEnabled()) or (
|
if (isinstance(src, pointer_classes) and src.isEnabled()) or (
|
||||||
isinstance(src, without_qt5_compat_wrapper(QComboBox))
|
isinstance(src, QComboBox) and not src.isEditable()
|
||||||
and not src.isEditable()
|
|
||||||
):
|
):
|
||||||
self.setOverrideCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
self.setOverrideCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
||||||
else:
|
else:
|
||||||
|
|
@ -525,15 +525,12 @@ def setupGL(pm: aqt.profiles.ProfileManager) -> None:
|
||||||
QQuickWindow.setGraphicsApi(QSGRendererInterface.GraphicsApi.OpenGL)
|
QQuickWindow.setGraphicsApi(QSGRendererInterface.GraphicsApi.OpenGL)
|
||||||
elif driver in (VideoDriver.Software, VideoDriver.ANGLE):
|
elif driver in (VideoDriver.Software, VideoDriver.ANGLE):
|
||||||
if is_win:
|
if is_win:
|
||||||
# on Windows, this appears to be sufficient on Qt5/Qt6.
|
# on Windows, this appears to be sufficient
|
||||||
# On Qt6, ANGLE is excluded by the enum.
|
# On Qt6, ANGLE is excluded by the enum.
|
||||||
os.environ["QT_OPENGL"] = driver.value
|
os.environ["QT_OPENGL"] = driver.value
|
||||||
elif is_mac:
|
elif is_mac:
|
||||||
QCoreApplication.setAttribute(Qt.ApplicationAttribute.AA_UseSoftwareOpenGL)
|
QCoreApplication.setAttribute(Qt.ApplicationAttribute.AA_UseSoftwareOpenGL)
|
||||||
elif is_lin:
|
elif is_lin:
|
||||||
# Qt5 only
|
|
||||||
os.environ["QT_XCB_FORCE_SOFTWARE_OPENGL"] = "1"
|
|
||||||
# Required on Qt6
|
|
||||||
if "QTWEBENGINE_CHROMIUM_FLAGS" not in os.environ:
|
if "QTWEBENGINE_CHROMIUM_FLAGS" not in os.environ:
|
||||||
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--disable-gpu"
|
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--disable-gpu"
|
||||||
if qtmajor > 5:
|
if qtmajor > 5:
|
||||||
|
|
@ -663,12 +660,6 @@ def _run(argv: list[str] | None = None, exec: bool = True) -> AnkiApp | None:
|
||||||
if is_win and "QT_QPA_PLATFORM" not in os.environ:
|
if is_win and "QT_QPA_PLATFORM" not in os.environ:
|
||||||
os.environ["QT_QPA_PLATFORM"] = "windows:altgr"
|
os.environ["QT_QPA_PLATFORM"] = "windows:altgr"
|
||||||
|
|
||||||
# Disable sandbox on Qt5 PyPi/packaged builds, as it causes blank screens on modern
|
|
||||||
# glibc versions. We check for specific patch versions, because distros may have
|
|
||||||
# fixed the issue in their own Qt builds.
|
|
||||||
if is_lin and qtfullversion in ([5, 15, 2], [5, 14, 1]):
|
|
||||||
os.environ["QTWEBENGINE_DISABLE_SANDBOX"] = "1"
|
|
||||||
|
|
||||||
# create the app
|
# create the app
|
||||||
QCoreApplication.setApplicationName("Anki")
|
QCoreApplication.setApplicationName("Anki")
|
||||||
QGuiApplication.setDesktopFileName("anki")
|
QGuiApplication.setDesktopFileName("anki")
|
||||||
|
|
|
||||||
|
|
@ -3,50 +3,11 @@
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
from collections.abc import Callable
|
|
||||||
from ctypes import CDLL, CFUNCTYPE, c_bool, c_char_p
|
|
||||||
|
|
||||||
import aqt
|
|
||||||
import aqt.utils
|
|
||||||
|
|
||||||
|
|
||||||
class _MacOSHelper:
|
|
||||||
def __init__(self) -> None:
|
|
||||||
path = os.path.join(aqt.utils.aqt_data_folder(), "lib", "libankihelper.dylib")
|
|
||||||
|
|
||||||
self._dll = CDLL(path)
|
|
||||||
self._dll.system_is_dark.restype = c_bool
|
|
||||||
|
|
||||||
def system_is_dark(self) -> bool:
|
|
||||||
return self._dll.system_is_dark()
|
|
||||||
|
|
||||||
def set_darkmode_enabled(self, enabled: bool) -> bool:
|
|
||||||
return self._dll.set_darkmode_enabled(enabled)
|
|
||||||
|
|
||||||
def start_wav_record(self, path: str, on_error: Callable[[str], None]) -> None:
|
|
||||||
global _on_audio_error
|
|
||||||
_on_audio_error = on_error
|
|
||||||
self._dll.start_wav_record(path.encode("utf8"), _audio_error_callback)
|
|
||||||
|
|
||||||
def end_wav_record(self) -> None:
|
|
||||||
"On completion, file should be saved if no error has arrived."
|
|
||||||
self._dll.end_wav_record()
|
|
||||||
|
|
||||||
|
|
||||||
# this must not be overwritten or deallocated
|
|
||||||
@CFUNCTYPE(None, c_char_p) # type: ignore
|
|
||||||
def _audio_error_callback(msg: str) -> None:
|
|
||||||
if handler := _on_audio_error:
|
|
||||||
handler(msg)
|
|
||||||
|
|
||||||
|
|
||||||
_on_audio_error: Callable[[str], None] | None = None
|
|
||||||
|
|
||||||
macos_helper: _MacOSHelper | None = None
|
|
||||||
if sys.platform == "darwin":
|
if sys.platform == "darwin":
|
||||||
try:
|
from anki_mac_helper import ( # pylint:disable=unused-import,import-error
|
||||||
macos_helper = _MacOSHelper()
|
macos_helper,
|
||||||
except Exception as e:
|
)
|
||||||
print("macos_helper:", e)
|
else:
|
||||||
|
macos_helper = None
|
||||||
|
|
|
||||||
|
|
@ -325,15 +325,13 @@ class DataModel(QAbstractTableModel):
|
||||||
return 0
|
return 0
|
||||||
return self.len_columns()
|
return self.len_columns()
|
||||||
|
|
||||||
_QFont = without_qt5_compat_wrapper(QFont)
|
|
||||||
|
|
||||||
def data(self, index: QModelIndex = QModelIndex(), role: int = 0) -> Any:
|
def data(self, index: QModelIndex = QModelIndex(), role: int = 0) -> Any:
|
||||||
if not index.isValid():
|
if not index.isValid():
|
||||||
return QVariant()
|
return QVariant()
|
||||||
if role == Qt.ItemDataRole.FontRole:
|
if role == Qt.ItemDataRole.FontRole:
|
||||||
if not self.column_at(index).uses_cell_font:
|
if not self.column_at(index).uses_cell_font:
|
||||||
return QVariant()
|
return QVariant()
|
||||||
qfont = self._QFont()
|
qfont = QFont()
|
||||||
row = self.get_row(index)
|
row = self.get_row(index)
|
||||||
qfont.setFamily(row.font_name)
|
qfont.setFamily(row.font_name)
|
||||||
qfont.setPixelSize(row.font_size)
|
qfont.setPixelSize(row.font_size)
|
||||||
|
|
|
||||||
|
|
@ -382,10 +382,7 @@ class Table:
|
||||||
hh.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
hh.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
||||||
self._restore_header()
|
self._restore_header()
|
||||||
qconnect(hh.customContextMenuRequested, self._on_header_context)
|
qconnect(hh.customContextMenuRequested, self._on_header_context)
|
||||||
if qtmajor == 5:
|
qconnect(hh.sortIndicatorChanged, self._on_sort_column_changed)
|
||||||
qconnect(hh.sortIndicatorChanged, self._on_sort_column_changed_qt5)
|
|
||||||
else:
|
|
||||||
qconnect(hh.sortIndicatorChanged, self._on_sort_column_changed)
|
|
||||||
qconnect(hh.sectionMoved, self._on_column_moved)
|
qconnect(hh.sectionMoved, self._on_column_moved)
|
||||||
|
|
||||||
# Slots
|
# Slots
|
||||||
|
|
@ -495,12 +492,6 @@ class Table:
|
||||||
if checked:
|
if checked:
|
||||||
self._scroll_to_column(self._model.len_columns() - 1)
|
self._scroll_to_column(self._model.len_columns() - 1)
|
||||||
|
|
||||||
def _on_sort_column_changed_qt5(self, section: int, order: int) -> None:
|
|
||||||
self._on_sort_column_changed(
|
|
||||||
section,
|
|
||||||
Qt.SortOrder.AscendingOrder if not order else Qt.SortOrder.DescendingOrder,
|
|
||||||
)
|
|
||||||
|
|
||||||
def _on_sort_column_changed(self, section: int, order: Qt.SortOrder) -> None:
|
def _on_sort_column_changed(self, section: int, order: Qt.SortOrder) -> None:
|
||||||
column = self._model.column_at_section(section)
|
column = self._model.column_at_section(section)
|
||||||
sorting = column.sorting_notes if self.is_notes_mode() else column.sorting_cards
|
sorting = column.sorting_notes if self.is_notes_mode() else column.sorting_cards
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.about_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.about_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.about_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.addcards_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.addcards_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.addcards_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.addfield_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.addfield_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.addfield_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.addmodel_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.addmodel_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.addmodel_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.addonconf_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.addonconf_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.addonconf_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.addons_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.addons_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.addons_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.browser_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.browser_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.browser_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.browserdisp_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.browserdisp_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.browserdisp_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.browseropts_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.browseropts_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.browseropts_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.changemap_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.changemap_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.changemap_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.changemodel_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.changemodel_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.changemodel_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.clayout_top_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.clayout_top_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.clayout_top_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.customstudy_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.customstudy_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.customstudy_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.dconf_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.dconf_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.dconf_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.debug_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.debug_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.debug_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.editcurrent_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.editcurrent_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.editcurrent_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.edithtml_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.edithtml_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.edithtml_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.emptycards_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.emptycards_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.emptycards_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.exporting_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.exporting_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.exporting_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.fields_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.fields_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.fields_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.filtered_deck_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.filtered_deck_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.filtered_deck_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.finddupes_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.finddupes_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.finddupes_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.findreplace_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.findreplace_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.findreplace_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.forget_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.forget_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.forget_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.getaddons_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.getaddons_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.getaddons_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.importing_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.importing_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.importing_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.main_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.main_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.main_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.modelopts_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.modelopts_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.modelopts_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.models_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.models_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.models_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.preferences_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.preferences_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.preferences_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.preview_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.preview_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.preview_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.profiles_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.profiles_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.profiles_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.progress_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.progress_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.progress_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.reposition_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.reposition_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.reposition_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.setgroup_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.setgroup_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.setgroup_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.setlang_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.setlang_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.setlang_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.stats_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.stats_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.stats_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.studydeck_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.studydeck_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.studydeck_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.synclog_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.synclog_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.synclog_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.taglimit_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.taglimit_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.taglimit_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.template_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.template_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.template_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from typing import TYPE_CHECKING
|
from _aqt.forms.widgets_qt6 import *
|
||||||
|
|
||||||
from aqt.qt import qtmajor
|
|
||||||
|
|
||||||
if qtmajor > 5 or TYPE_CHECKING:
|
|
||||||
from _aqt.forms.widgets_qt6 import *
|
|
||||||
else:
|
|
||||||
from _aqt.forms.widgets_qt5 import * # type: ignore
|
|
||||||
|
|
|
||||||
|
|
@ -189,11 +189,8 @@ class ProfileManager:
|
||||||
# return the bytes directly
|
# return the bytes directly
|
||||||
return args[0]
|
return args[0]
|
||||||
elif name == "_unpickle_enum":
|
elif name == "_unpickle_enum":
|
||||||
if qtmajor == 5:
|
# old style enums can't be unpickled
|
||||||
return sip._unpickle_enum(module, klass, args) # type: ignore
|
return None
|
||||||
else:
|
|
||||||
# old style enums can't be unpickled
|
|
||||||
return None
|
|
||||||
else:
|
else:
|
||||||
return sip._unpickle_type(module, klass, args) # type: ignore
|
return sip._unpickle_type(module, klass, args) # type: ignore
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -300,8 +300,7 @@ class ProgressManager:
|
||||||
def _closeWin(self) -> None:
|
def _closeWin(self) -> None:
|
||||||
# if the parent window has been deleted, the progress dialog may have
|
# if the parent window has been deleted, the progress dialog may have
|
||||||
# already been dropped; delete it if it hasn't been
|
# already been dropped; delete it if it hasn't been
|
||||||
if not sip.isdeleted(self._win):
|
if self._win and not sip.isdeleted(self._win):
|
||||||
assert self._win is not None
|
|
||||||
self._win.cancel()
|
self._win.cancel()
|
||||||
self._win = None
|
self._win = None
|
||||||
self._shown = 0
|
self._shown = 0
|
||||||
|
|
|
||||||
|
|
@ -11,20 +11,12 @@ import traceback
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from typing import TypeVar, Union
|
from typing import TypeVar, Union
|
||||||
|
|
||||||
try:
|
from anki._legacy import deprecated
|
||||||
import PyQt6
|
|
||||||
except Exception:
|
|
||||||
from .qt5 import * # type: ignore
|
|
||||||
else:
|
|
||||||
if os.getenv("ENABLE_QT5_COMPAT"):
|
|
||||||
print("Running with temporary Qt5 compatibility shims.")
|
|
||||||
from . import qt5_compat # needs to be imported first
|
|
||||||
from .qt6 import *
|
|
||||||
|
|
||||||
|
# legacy code depends on these re-exports
|
||||||
from anki.utils import is_mac, is_win
|
from anki.utils import is_mac, is_win
|
||||||
|
|
||||||
# fix buggy ubuntu12.04 display of language selector
|
from .qt6 import *
|
||||||
os.environ["LIBOVERLAY_SCROLLBAR"] = "0"
|
|
||||||
|
|
||||||
|
|
||||||
def debug() -> None:
|
def debug() -> None:
|
||||||
|
|
@ -52,7 +44,7 @@ qtminor = _version.minorVersion()
|
||||||
qtpoint = _version.microVersion()
|
qtpoint = _version.microVersion()
|
||||||
qtfullversion = _version.segments()
|
qtfullversion = _version.segments()
|
||||||
|
|
||||||
if qtmajor < 5 or (qtmajor == 5 and qtminor < 14):
|
if qtmajor == 6 and qtminor < 2:
|
||||||
raise Exception("Anki does not support your Qt version.")
|
raise Exception("Anki does not support your Qt version.")
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -64,11 +56,6 @@ def qconnect(signal: Callable | pyqtSignal | pyqtBoundSignal, func: Callable) ->
|
||||||
_T = TypeVar("_T")
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
|
|
||||||
|
@deprecated(info="no longer required, and now a no-op")
|
||||||
def without_qt5_compat_wrapper(cls: _T) -> _T:
|
def without_qt5_compat_wrapper(cls: _T) -> _T:
|
||||||
"""Remove Qt5 compat wrapper from Qt class, if active.
|
return cls
|
||||||
|
|
||||||
Only needed for a few Qt APIs that deal with QVariants."""
|
|
||||||
if fn := getattr(cls, "_without_compat_wrapper", None):
|
|
||||||
return fn()
|
|
||||||
else:
|
|
||||||
return cls
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
||||||
|
|
||||||
# make sure not to optimize imports on this file
|
|
||||||
# pylint: skip-file
|
|
||||||
|
|
||||||
"""
|
|
||||||
PyQt5 imports
|
|
||||||
"""
|
|
||||||
|
|
||||||
from PyQt5.QtCore import * # type: ignore
|
|
||||||
from PyQt5.QtGui import * # type: ignore
|
|
||||||
from PyQt5.QtNetwork import QLocalServer, QLocalSocket, QNetworkProxy # type: ignore
|
|
||||||
from PyQt5.QtWebChannel import QWebChannel # type: ignore
|
|
||||||
from PyQt5.QtWebEngineCore import * # type: ignore
|
|
||||||
from PyQt5.QtWebEngineWidgets import * # type: ignore
|
|
||||||
from PyQt5.QtWidgets import * # type: ignore
|
|
||||||
|
|
||||||
try:
|
|
||||||
from PyQt5 import sip # type: ignore
|
|
||||||
except ImportError:
|
|
||||||
import sip # type: ignore
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
||||||
|
|
||||||
# pylint: skip-file
|
|
||||||
|
|
||||||
"""
|
|
||||||
PyQt5-only audio code
|
|
||||||
"""
|
|
||||||
|
|
||||||
import wave
|
|
||||||
from collections.abc import Callable
|
|
||||||
from concurrent.futures import Future
|
|
||||||
from typing import cast
|
|
||||||
|
|
||||||
import aqt
|
|
||||||
|
|
||||||
from . import * # isort:skip
|
|
||||||
from ..sound import Recorder # isort:skip
|
|
||||||
from ..utils import showWarning # isort:skip
|
|
||||||
|
|
||||||
|
|
||||||
class QtAudioInputRecorder(Recorder):
|
|
||||||
def __init__(self, output_path: str, mw: aqt.AnkiQt, parent: QWidget) -> None:
|
|
||||||
super().__init__(output_path)
|
|
||||||
|
|
||||||
self.mw = mw
|
|
||||||
self._parent = parent
|
|
||||||
|
|
||||||
from PyQt5.QtMultimedia import ( # type: ignore
|
|
||||||
QAudioDeviceInfo,
|
|
||||||
QAudioFormat,
|
|
||||||
QAudioInput,
|
|
||||||
)
|
|
||||||
|
|
||||||
format = QAudioFormat()
|
|
||||||
format.setChannelCount(1)
|
|
||||||
format.setSampleRate(44100)
|
|
||||||
format.setSampleSize(16)
|
|
||||||
format.setCodec("audio/pcm")
|
|
||||||
format.setByteOrder(QAudioFormat.LittleEndian)
|
|
||||||
format.setSampleType(QAudioFormat.SignedInt)
|
|
||||||
|
|
||||||
device = QAudioDeviceInfo.defaultInputDevice()
|
|
||||||
if not device.isFormatSupported(format):
|
|
||||||
format = device.nearestFormat(format)
|
|
||||||
print("format changed")
|
|
||||||
print("channels", format.channelCount())
|
|
||||||
print("rate", format.sampleRate())
|
|
||||||
print("size", format.sampleSize())
|
|
||||||
self._format = format
|
|
||||||
|
|
||||||
self._audio_input = QAudioInput(device, format, parent)
|
|
||||||
|
|
||||||
def start(self, on_done: Callable[[], None]) -> None:
|
|
||||||
self._iodevice = self._audio_input.start()
|
|
||||||
self._buffer = bytearray()
|
|
||||||
qconnect(self._iodevice.readyRead, self._on_read_ready)
|
|
||||||
super().start(on_done)
|
|
||||||
|
|
||||||
def _on_read_ready(self) -> None:
|
|
||||||
self._buffer.extend(cast(bytes, self._iodevice.readAll()))
|
|
||||||
|
|
||||||
def stop(self, on_done: Callable[[str], None]) -> None:
|
|
||||||
def on_stop_timer() -> None:
|
|
||||||
# read anything remaining in buffer & stop
|
|
||||||
self._on_read_ready()
|
|
||||||
self._audio_input.stop()
|
|
||||||
|
|
||||||
if err := self._audio_input.error():
|
|
||||||
showWarning(f"recording failed: {err}")
|
|
||||||
return
|
|
||||||
|
|
||||||
def write_file() -> None:
|
|
||||||
# swallow the first 300ms to allow audio device to quiesce
|
|
||||||
wait = int(44100 * self.STARTUP_DELAY)
|
|
||||||
if len(self._buffer) <= wait:
|
|
||||||
return
|
|
||||||
self._buffer = self._buffer[wait:]
|
|
||||||
|
|
||||||
# write out the wave file
|
|
||||||
wf = wave.open(self.output_path, "wb")
|
|
||||||
wf.setnchannels(self._format.channelCount())
|
|
||||||
wf.setsampwidth(self._format.sampleSize() // 8)
|
|
||||||
wf.setframerate(self._format.sampleRate())
|
|
||||||
wf.writeframes(self._buffer)
|
|
||||||
wf.close()
|
|
||||||
|
|
||||||
def and_then(fut: Future) -> None:
|
|
||||||
fut.result()
|
|
||||||
Recorder.stop(self, on_done)
|
|
||||||
|
|
||||||
self.mw.taskman.run_in_background(write_file, and_then)
|
|
||||||
|
|
||||||
# schedule the stop for half a second in the future,
|
|
||||||
# to avoid truncating the end of the recording
|
|
||||||
self._stop_timer = t = QTimer(self._parent)
|
|
||||||
t.timeout.connect(on_stop_timer) # type: ignore
|
|
||||||
t.setSingleShot(True)
|
|
||||||
t.start(500)
|
|
||||||
|
|
@ -1,411 +0,0 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
||||||
|
|
||||||
# type: ignore
|
|
||||||
# pylint: disable=unused-import
|
|
||||||
|
|
||||||
"""
|
|
||||||
Patches and aliases that provide a PyQt5 → PyQt6 compatibility shim for add-ons
|
|
||||||
"""
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import types
|
|
||||||
import typing
|
|
||||||
|
|
||||||
import PyQt6.QtCore
|
|
||||||
import PyQt6.QtDBus
|
|
||||||
import PyQt6.QtGui
|
|
||||||
import PyQt6.QtNetwork
|
|
||||||
import PyQt6.QtPrintSupport
|
|
||||||
import PyQt6.QtWebChannel
|
|
||||||
import PyQt6.QtWebEngineCore
|
|
||||||
import PyQt6.QtWebEngineWidgets
|
|
||||||
import PyQt6.QtWidgets
|
|
||||||
|
|
||||||
from anki._legacy import print_deprecation_warning
|
|
||||||
|
|
||||||
# Globally alias PyQt5 to PyQt6
|
|
||||||
# #########################################################################
|
|
||||||
|
|
||||||
sys.modules["PyQt5"] = PyQt6
|
|
||||||
# Need to alias QtCore explicitly as sip otherwise complains about repeat registration
|
|
||||||
sys.modules["PyQt5.QtCore"] = PyQt6.QtCore
|
|
||||||
# Need to alias QtWidgets and QtGui explicitly to facilitate patches
|
|
||||||
sys.modules["PyQt5.QtGui"] = PyQt6.QtGui
|
|
||||||
sys.modules["PyQt5.QtWidgets"] = PyQt6.QtWidgets
|
|
||||||
# Needed to maintain import order between QtWebEngineWidgets and QCoreApplication:
|
|
||||||
sys.modules["PyQt5.QtWebEngineWidgets"] = PyQt6.QtWebEngineWidgets
|
|
||||||
# Register other aliased top-level Qt modules just to be safe:
|
|
||||||
sys.modules["PyQt5.QtWebEngineCore"] = PyQt6.QtWebEngineCore
|
|
||||||
sys.modules["PyQt5.QtWebChannel"] = PyQt6.QtWebChannel
|
|
||||||
sys.modules["PyQt5.QtNetwork"] = PyQt6.QtNetwork
|
|
||||||
# Alias sip
|
|
||||||
sys.modules["sip"] = PyQt6.sip
|
|
||||||
|
|
||||||
# Restore QWebEnginePage.view()
|
|
||||||
# ########################################################################
|
|
||||||
|
|
||||||
from PyQt6.QtWebEngineCore import QWebEnginePage
|
|
||||||
from PyQt6.QtWebEngineWidgets import QWebEngineView
|
|
||||||
|
|
||||||
|
|
||||||
def qwebenginepage_view(page: QWebEnginePage) -> QWebEnginePage:
|
|
||||||
print_deprecation_warning(
|
|
||||||
"'QWebEnginePage.view()' is deprecated. "
|
|
||||||
"Please use 'QWebEngineView.forPage(page)'"
|
|
||||||
)
|
|
||||||
return QWebEngineView.forPage(page)
|
|
||||||
|
|
||||||
|
|
||||||
PyQt6.QtWebEngineCore.QWebEnginePage.view = qwebenginepage_view
|
|
||||||
|
|
||||||
# Alias removed exec_ methods to exec
|
|
||||||
# ########################################################################
|
|
||||||
|
|
||||||
from PyQt6.QtCore import QCoreApplication, QEventLoop, QThread
|
|
||||||
from PyQt6.QtGui import QDrag, QGuiApplication
|
|
||||||
from PyQt6.QtWidgets import QApplication, QDialog, QMenu
|
|
||||||
|
|
||||||
|
|
||||||
# This helper function is needed as aliasing exec_ to exec directly will cause
|
|
||||||
# an unbound method error, even when wrapped with types.MethodType
|
|
||||||
def qt_exec_(object, *args, **kwargs):
|
|
||||||
class_name = object.__class__.__name__
|
|
||||||
print_deprecation_warning(
|
|
||||||
f"'{class_name}.exec_()' is deprecated. Please use '{class_name}.exec()'"
|
|
||||||
)
|
|
||||||
return object.exec(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
QCoreApplication.exec_ = qt_exec_
|
|
||||||
QEventLoop.exec_ = qt_exec_
|
|
||||||
QThread.exec_ = qt_exec_
|
|
||||||
QDrag.exec_ = qt_exec_
|
|
||||||
QGuiApplication.exec_ = qt_exec_
|
|
||||||
QApplication.exec_ = qt_exec_
|
|
||||||
QDialog.exec_ = qt_exec_
|
|
||||||
QMenu.exec_ = qt_exec_
|
|
||||||
|
|
||||||
# Graciously handle removed Qt resource system
|
|
||||||
# ########################################################################
|
|
||||||
|
|
||||||
# Given that add-ons mostly use the Qt resource system to equip UI elements with
|
|
||||||
# icons – which oftentimes are not essential to the core UX –, printing a warning
|
|
||||||
# instead of preventing the add-on from loading seems appropriate.
|
|
||||||
|
|
||||||
|
|
||||||
def qt_resource_system_call(*args, **kwargs):
|
|
||||||
print_deprecation_warning(
|
|
||||||
"The Qt resource system no longer works on PyQt6. "
|
|
||||||
"Use QDir.addSearchPath() or mw.addonManager.setWebExports() instead."
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
PyQt6.QtCore.qRegisterResourceData = qt_resource_system_call
|
|
||||||
PyQt6.QtCore.qUnregisterResourceData = qt_resource_system_call
|
|
||||||
|
|
||||||
# Patch unscoped enums back in, aliasing them to scoped enums
|
|
||||||
# ########################################################################
|
|
||||||
|
|
||||||
PyQt6.QtWidgets.QDockWidget.AllDockWidgetFeatures = (
|
|
||||||
PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable
|
|
||||||
| PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable
|
|
||||||
| PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable
|
|
||||||
)
|
|
||||||
|
|
||||||
# when we subclass QIcon, icons fail to show when returned by getData()
|
|
||||||
# in a tableview/treeview, so we need to manually alias these
|
|
||||||
PyQt6.QtGui.QIcon.Active = PyQt6.QtGui.QIcon.Mode.Active
|
|
||||||
PyQt6.QtGui.QIcon.Disabled = PyQt6.QtGui.QIcon.Mode.Disabled
|
|
||||||
PyQt6.QtGui.QIcon.Normal = PyQt6.QtGui.QIcon.Mode.Normal
|
|
||||||
PyQt6.QtGui.QIcon.Selected = PyQt6.QtGui.QIcon.Mode.Selected
|
|
||||||
PyQt6.QtGui.QIcon.Off = PyQt6.QtGui.QIcon.State.Off
|
|
||||||
PyQt6.QtGui.QIcon.On = PyQt6.QtGui.QIcon.State.On
|
|
||||||
|
|
||||||
# This is the subset of enums used in all public Anki add-ons as of 2021-10-19.
|
|
||||||
# Please note that this list is likely to be incomplete as the process used to
|
|
||||||
# find them probably missed dynamically constructed enums.
|
|
||||||
# Also, as mostly only public Anki add-ons were taken into consideration,
|
|
||||||
# some enums in other add-ons might not be included. In those cases please
|
|
||||||
# consider filing a PR to extend the assignments below.
|
|
||||||
|
|
||||||
# Important: These patches are not meant to provide compatibility for all
|
|
||||||
# add-ons going forward, but simply to maintain support with already
|
|
||||||
# existing add-ons. Add-on authors should take heed to use scoped enums
|
|
||||||
# in any future code changes.
|
|
||||||
|
|
||||||
# (module, [(type_name, enums)])
|
|
||||||
_enum_map = (
|
|
||||||
(
|
|
||||||
PyQt6.QtCore,
|
|
||||||
[
|
|
||||||
("QEvent", ("Type",)),
|
|
||||||
("QEventLoop", ("ProcessEventsFlag",)),
|
|
||||||
("QIODevice", ("OpenModeFlag",)),
|
|
||||||
("QItemSelectionModel", ("SelectionFlag",)),
|
|
||||||
("QLocale", ("Country", "Language")),
|
|
||||||
("QMetaType", ("Type",)),
|
|
||||||
("QProcess", ("ProcessState", "ProcessChannel")),
|
|
||||||
("QStandardPaths", ("StandardLocation",)),
|
|
||||||
(
|
|
||||||
"Qt",
|
|
||||||
(
|
|
||||||
"AlignmentFlag",
|
|
||||||
"ApplicationAttribute",
|
|
||||||
"ArrowType",
|
|
||||||
"AspectRatioMode",
|
|
||||||
"BrushStyle",
|
|
||||||
"CaseSensitivity",
|
|
||||||
"CheckState",
|
|
||||||
"ConnectionType",
|
|
||||||
"ContextMenuPolicy",
|
|
||||||
"CursorShape",
|
|
||||||
"DateFormat",
|
|
||||||
"DayOfWeek",
|
|
||||||
"DockWidgetArea",
|
|
||||||
"FindChildOption",
|
|
||||||
"FocusPolicy",
|
|
||||||
"FocusReason",
|
|
||||||
"GlobalColor",
|
|
||||||
"HighDpiScaleFactorRoundingPolicy",
|
|
||||||
"ImageConversionFlag",
|
|
||||||
"InputMethodHint",
|
|
||||||
"ItemDataRole",
|
|
||||||
"ItemFlag",
|
|
||||||
"KeyboardModifier",
|
|
||||||
"LayoutDirection",
|
|
||||||
"MatchFlag",
|
|
||||||
"Modifier",
|
|
||||||
"MouseButton",
|
|
||||||
"Orientation",
|
|
||||||
"PenCapStyle",
|
|
||||||
"PenJoinStyle",
|
|
||||||
"PenStyle",
|
|
||||||
"ScrollBarPolicy",
|
|
||||||
"ShortcutContext",
|
|
||||||
"SortOrder",
|
|
||||||
"TextElideMode",
|
|
||||||
"TextFlag",
|
|
||||||
"TextFormat",
|
|
||||||
"TextInteractionFlag",
|
|
||||||
"ToolBarArea",
|
|
||||||
"ToolButtonStyle",
|
|
||||||
"TransformationMode",
|
|
||||||
"WidgetAttribute",
|
|
||||||
"WindowModality",
|
|
||||||
"WindowState",
|
|
||||||
"WindowType",
|
|
||||||
"Key",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
("QThread", ("Priority",)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
(PyQt6.QtDBus, [("QDBus", ("CallMode",))]),
|
|
||||||
(
|
|
||||||
PyQt6.QtGui,
|
|
||||||
[
|
|
||||||
("QAction", ("MenuRole", "ActionEvent")),
|
|
||||||
("QClipboard", ("Mode",)),
|
|
||||||
("QColor", ("NameFormat",)),
|
|
||||||
("QFont", ("Style", "Weight", "StyleHint")),
|
|
||||||
("QFontDatabase", ("WritingSystem", "SystemFont")),
|
|
||||||
("QImage", ("Format",)),
|
|
||||||
("QKeySequence", ("SequenceFormat", "StandardKey")),
|
|
||||||
("QMovie", ("CacheMode",)),
|
|
||||||
("QPageLayout", ("Orientation",)),
|
|
||||||
("QPageSize", ("PageSizeId",)),
|
|
||||||
("QPainter", ("RenderHint",)),
|
|
||||||
("QPalette", ("ColorRole", "ColorGroup")),
|
|
||||||
("QTextCharFormat", ("UnderlineStyle",)),
|
|
||||||
("QTextCursor", ("MoveOperation", "MoveMode", "SelectionType")),
|
|
||||||
("QTextFormat", ("Property",)),
|
|
||||||
("QTextOption", ("WrapMode",)),
|
|
||||||
("QValidator", ("State",)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
(PyQt6.QtNetwork, [("QHostAddress", ("SpecialAddress",))]),
|
|
||||||
(PyQt6.QtPrintSupport, [("QPrinter", ("Unit",))]),
|
|
||||||
(
|
|
||||||
PyQt6.QtWebEngineCore,
|
|
||||||
[
|
|
||||||
("QWebEnginePage", ("WebWindowType", "FindFlag", "WebAction")),
|
|
||||||
("QWebEngineProfile", ("PersistentCookiesPolicy", "HttpCacheType")),
|
|
||||||
("QWebEngineScript", ("ScriptWorldId", "InjectionPoint")),
|
|
||||||
("QWebEngineSettings", ("FontSize", "WebAttribute")),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
(
|
|
||||||
PyQt6.QtWidgets,
|
|
||||||
[
|
|
||||||
(
|
|
||||||
"QAbstractItemView",
|
|
||||||
(
|
|
||||||
"CursorAction",
|
|
||||||
"DropIndicatorPosition",
|
|
||||||
"ScrollMode",
|
|
||||||
"EditTrigger",
|
|
||||||
"SelectionMode",
|
|
||||||
"SelectionBehavior",
|
|
||||||
"DragDropMode",
|
|
||||||
"ScrollHint",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
("QAbstractScrollArea", ("SizeAdjustPolicy",)),
|
|
||||||
("QAbstractSpinBox", ("ButtonSymbols",)),
|
|
||||||
("QBoxLayout", ("Direction",)),
|
|
||||||
("QColorDialog", ("ColorDialogOption",)),
|
|
||||||
("QComboBox", ("SizeAdjustPolicy", "InsertPolicy")),
|
|
||||||
("QCompleter", ("CompletionMode",)),
|
|
||||||
("QDateTimeEdit", ("Section",)),
|
|
||||||
("QDialog", ("DialogCode",)),
|
|
||||||
("QDialogButtonBox", ("StandardButton", "ButtonRole")),
|
|
||||||
("QDockWidget", ("DockWidgetFeature",)),
|
|
||||||
("QFileDialog", ("Option", "FileMode", "AcceptMode", "DialogLabel")),
|
|
||||||
("QFormLayout", ("FieldGrowthPolicy", "ItemRole")),
|
|
||||||
("QFrame", ("Shape", "Shadow")),
|
|
||||||
("QGraphicsItem", ("GraphicsItemFlag",)),
|
|
||||||
("QGraphicsPixmapItem", ("ShapeMode",)),
|
|
||||||
("QGraphicsView", ("ViewportAnchor", "DragMode")),
|
|
||||||
("QHeaderView", ("ResizeMode",)),
|
|
||||||
("QLayout", ("SizeConstraint",)),
|
|
||||||
("QLineEdit", ("EchoMode",)),
|
|
||||||
(
|
|
||||||
"QListView",
|
|
||||||
("Flow", "BrowserLayout", "ResizeMode", "Movement", "ViewMode"),
|
|
||||||
),
|
|
||||||
("QListWidgetItem", ("ItemType",)),
|
|
||||||
("QMessageBox", ("StandardButton", "Icon", "ButtonRole")),
|
|
||||||
("QPlainTextEdit", ("LineWrapMode",)),
|
|
||||||
("QProgressBar", ("Direction",)),
|
|
||||||
("QRubberBand", ("Shape",)),
|
|
||||||
("QSizePolicy", ("ControlType", "Policy")),
|
|
||||||
("QSlider", ("TickPosition",)),
|
|
||||||
(
|
|
||||||
"QStyle",
|
|
||||||
(
|
|
||||||
"SubElement",
|
|
||||||
"ComplexControl",
|
|
||||||
"StandardPixmap",
|
|
||||||
"ControlElement",
|
|
||||||
"PixelMetric",
|
|
||||||
"StateFlag",
|
|
||||||
"SubControl",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
("QSystemTrayIcon", ("MessageIcon", "ActivationReason")),
|
|
||||||
("QTabBar", ("ButtonPosition",)),
|
|
||||||
("QTabWidget", ("TabShape", "TabPosition")),
|
|
||||||
("QTextEdit", ("LineWrapMode",)),
|
|
||||||
("QToolButton", ("ToolButtonPopupMode",)),
|
|
||||||
("QWizard", ("WizardStyle", "WizardOption")),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
_renamed_enum_cases = {
|
|
||||||
"QComboBox": {
|
|
||||||
"AdjustToMinimumContentsLength": "AdjustToMinimumContentsLengthWithIcon"
|
|
||||||
},
|
|
||||||
"QDialogButtonBox": {"No": "NoButton"},
|
|
||||||
"QPainter": {"HighQualityAntialiasing": "Antialiasing"},
|
|
||||||
"QPalette": {"Background": "Window", "Foreground": "WindowText"},
|
|
||||||
"Qt": {"MatchRegExp": "MatchRegularExpression", "MidButton": "MiddleButton"},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# This works by wrapping each enum-containing Qt class (eg QAction) in a proxy.
|
|
||||||
# When an attribute is missing from the underlying Qt class, __getattr__ is
|
|
||||||
# called, and we try fetching the attribute from each of the declared enums
|
|
||||||
# for that module. If a match is found, a deprecation warning is printed.
|
|
||||||
#
|
|
||||||
# Looping through enumerations is not particularly efficient on a large type like
|
|
||||||
# Qt, but we only pay the cost when an attribute is not found. In the worst case,
|
|
||||||
# it's about 50ms per 1000 failed lookups on the Qt module.
|
|
||||||
|
|
||||||
|
|
||||||
def _instrument_type(
|
|
||||||
module: types.ModuleType, type_name: str, enums: list[str]
|
|
||||||
) -> None:
|
|
||||||
type = getattr(module, type_name)
|
|
||||||
renamed_attrs = _renamed_enum_cases.get(type_name, {})
|
|
||||||
|
|
||||||
class QtClassProxyType(type.__class__):
|
|
||||||
def __getattr__(cls, provided_name): # pylint: disable=no-self-argument
|
|
||||||
# we know this is not an enum
|
|
||||||
if provided_name == "__pyqtSignature__":
|
|
||||||
raise AttributeError
|
|
||||||
|
|
||||||
name = renamed_attrs.get(provided_name) or provided_name
|
|
||||||
|
|
||||||
for enum_name in enums:
|
|
||||||
enum = getattr(type, enum_name)
|
|
||||||
try:
|
|
||||||
val = getattr(enum, name)
|
|
||||||
except AttributeError:
|
|
||||||
continue
|
|
||||||
|
|
||||||
print_deprecation_warning(
|
|
||||||
f"'{type_name}.{provided_name}' will stop working. Please use '{type_name}.{enum_name}.{name}' instead."
|
|
||||||
)
|
|
||||||
return val
|
|
||||||
|
|
||||||
return getattr(type, name)
|
|
||||||
|
|
||||||
class QtClassProxy(
|
|
||||||
type, metaclass=QtClassProxyType
|
|
||||||
): # pylint: disable=invalid-metaclass
|
|
||||||
@staticmethod
|
|
||||||
def _without_compat_wrapper():
|
|
||||||
return type
|
|
||||||
|
|
||||||
setattr(module, type_name, QtClassProxy)
|
|
||||||
|
|
||||||
|
|
||||||
for module, type_to_enum_list in _enum_map:
|
|
||||||
for type_name, enums in type_to_enum_list:
|
|
||||||
_instrument_type(module, type_name, enums)
|
|
||||||
|
|
||||||
# Alias classes shifted between QtWidgets and QtGui
|
|
||||||
##########################################################################
|
|
||||||
|
|
||||||
PyQt6.QtWidgets.QAction = PyQt6.QtGui.QAction
|
|
||||||
PyQt6.QtWidgets.QActionGroup = PyQt6.QtGui.QActionGroup
|
|
||||||
PyQt6.QtWidgets.QShortcut = PyQt6.QtGui.QShortcut
|
|
||||||
|
|
||||||
# Alias classes shifted between QtWebEngineWidgets and QtWebEngineCore
|
|
||||||
##########################################################################
|
|
||||||
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEnginePage = PyQt6.QtWebEngineCore.QWebEnginePage
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineHistory = PyQt6.QtWebEngineCore.QWebEngineHistory
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineProfile = PyQt6.QtWebEngineCore.QWebEngineProfile
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineScript = PyQt6.QtWebEngineCore.QWebEngineScript
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineScriptCollection = (
|
|
||||||
PyQt6.QtWebEngineCore.QWebEngineScriptCollection
|
|
||||||
)
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineClientCertificateSelection = (
|
|
||||||
PyQt6.QtWebEngineCore.QWebEngineClientCertificateSelection
|
|
||||||
)
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineSettings = PyQt6.QtWebEngineCore.QWebEngineSettings
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineFullScreenRequest = (
|
|
||||||
PyQt6.QtWebEngineCore.QWebEngineFullScreenRequest
|
|
||||||
)
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineContextMenuData = (
|
|
||||||
PyQt6.QtWebEngineCore.QWebEngineContextMenuRequest
|
|
||||||
)
|
|
||||||
PyQt6.QtWebEngineWidgets.QWebEngineDownloadItem = (
|
|
||||||
PyQt6.QtWebEngineCore.QWebEngineDownloadRequest
|
|
||||||
)
|
|
||||||
|
|
||||||
# Aliases for other miscellaneous class changes
|
|
||||||
##########################################################################
|
|
||||||
|
|
||||||
PyQt6.QtCore.QRegExp = PyQt6.QtCore.QRegularExpression
|
|
||||||
|
|
||||||
|
|
||||||
# Mock the removed PyQt5.Qt module
|
|
||||||
##########################################################################
|
|
||||||
|
|
||||||
sys.modules["PyQt5.Qt"] = sys.modules["aqt.qt"]
|
|
||||||
# support 'from PyQt5 import Qt', as it's an alias to PyQt6
|
|
||||||
PyQt6.Qt = sys.modules["aqt.qt"]
|
|
||||||
|
|
@ -772,19 +772,14 @@ class RecordDialog(QDialog):
|
||||||
saveGeom(self, "audioRecorder2")
|
saveGeom(self, "audioRecorder2")
|
||||||
|
|
||||||
def _start_recording(self) -> None:
|
def _start_recording(self) -> None:
|
||||||
if qtmajor > 5:
|
if macos_helper and platform.machine() == "arm64":
|
||||||
if macos_helper and platform.machine() == "arm64":
|
self._recorder = NativeMacRecorder(
|
||||||
self._recorder = NativeMacRecorder(
|
namedtmp("rec.wav"),
|
||||||
namedtmp("rec.wav"),
|
)
|
||||||
)
|
|
||||||
else:
|
|
||||||
self._recorder = QtAudioInputRecorder(
|
|
||||||
namedtmp("rec.wav"), self.mw, self._parent
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
from aqt.qt.qt5_audio import QtAudioInputRecorder as Qt5Recorder
|
self._recorder = QtAudioInputRecorder(
|
||||||
|
namedtmp("rec.wav"), self.mw, self._parent
|
||||||
self._recorder = Qt5Recorder(namedtmp("rec.wav"), self.mw, self._parent)
|
)
|
||||||
self._recorder.start(self._start_timer)
|
self._recorder.start(self._start_timer)
|
||||||
|
|
||||||
def _start_timer(self) -> None:
|
def _start_timer(self) -> None:
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
# Copyright: Ankitects Pty Ltd and contributors
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
from anki.buildinfo import buildhash
|
from anki.buildinfo import buildhash
|
||||||
from anki.collection import CheckForUpdateResponse, Collection
|
from anki.collection import CheckForUpdateResponse, Collection
|
||||||
from anki.utils import dev_mode, int_time, int_version, plat_desc
|
from anki.utils import dev_mode, int_time, int_version, is_mac, is_win, plat_desc
|
||||||
from aqt.operations import QueryOp
|
from aqt.operations import QueryOp
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import openLink, show_warning, showText, tr
|
from aqt.utils import show_info, show_warning, showText, tr
|
||||||
|
|
||||||
|
|
||||||
def check_for_update() -> None:
|
def check_for_update() -> None:
|
||||||
|
|
@ -77,4 +80,33 @@ def prompt_to_update(mw: aqt.AnkiQt, ver: str) -> None:
|
||||||
# ignore this update
|
# ignore this update
|
||||||
mw.pm.meta["suppressUpdate"] = ver
|
mw.pm.meta["suppressUpdate"] = ver
|
||||||
elif ret == QMessageBox.StandardButton.Yes:
|
elif ret == QMessageBox.StandardButton.Yes:
|
||||||
openLink(aqt.appWebsiteDownloadSection)
|
update_and_restart()
|
||||||
|
|
||||||
|
|
||||||
|
def update_and_restart() -> None:
|
||||||
|
"""Download and install the update, then restart Anki."""
|
||||||
|
update_on_next_run()
|
||||||
|
# todo: do this automatically in the future
|
||||||
|
show_info(tr.qt_misc_please_restart_to_update_anki())
|
||||||
|
|
||||||
|
|
||||||
|
def update_on_next_run() -> None:
|
||||||
|
"""Bump the mtime on pyproject.toml in the local data directory to trigger an update on next run."""
|
||||||
|
try:
|
||||||
|
# Get the local data directory equivalent to Rust's dirs::data_local_dir()
|
||||||
|
if is_win:
|
||||||
|
data_dir = Path(os.environ.get("LOCALAPPDATA", ""))
|
||||||
|
elif is_mac:
|
||||||
|
data_dir = Path.home() / "Library" / "Application Support"
|
||||||
|
else: # Linux
|
||||||
|
data_dir = Path(
|
||||||
|
os.environ.get("XDG_DATA_HOME", Path.home() / ".local" / "share")
|
||||||
|
)
|
||||||
|
|
||||||
|
pyproject_path = data_dir / "AnkiProgramFiles" / "pyproject.toml"
|
||||||
|
|
||||||
|
if pyproject_path.exists():
|
||||||
|
# Touch the file to update its mtime
|
||||||
|
pyproject_path.touch()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,9 @@ class CustomBuildHook(BuildHookInterface):
|
||||||
"""Initialize the build hook."""
|
"""Initialize the build hook."""
|
||||||
force_include = build_data.setdefault("force_include", {})
|
force_include = build_data.setdefault("force_include", {})
|
||||||
|
|
||||||
|
# Pin anki==<our version>
|
||||||
|
self._set_anki_dependency(version, build_data)
|
||||||
|
|
||||||
# Look for generated files in out/qt/_aqt
|
# Look for generated files in out/qt/_aqt
|
||||||
project_root = Path(self.root).parent
|
project_root = Path(self.root).parent
|
||||||
generated_root = project_root / "out" / "qt" / "_aqt"
|
generated_root = project_root / "out" / "qt" / "_aqt"
|
||||||
|
|
@ -30,6 +33,29 @@ class CustomBuildHook(BuildHookInterface):
|
||||||
assert generated_root.exists(), "you should build with --wheel"
|
assert generated_root.exists(), "you should build with --wheel"
|
||||||
self._add_aqt_files(force_include, generated_root)
|
self._add_aqt_files(force_include, generated_root)
|
||||||
|
|
||||||
|
def _set_anki_dependency(self, version: str, build_data: Dict[str, Any]) -> None:
|
||||||
|
# Get current dependencies and replace 'anki' with exact version
|
||||||
|
dependencies = build_data.setdefault("dependencies", [])
|
||||||
|
|
||||||
|
# Remove any existing anki dependency
|
||||||
|
dependencies[:] = [dep for dep in dependencies if not dep.startswith("anki")]
|
||||||
|
|
||||||
|
# Handle version detection
|
||||||
|
actual_version = version
|
||||||
|
if version == "standard":
|
||||||
|
# Read actual version from .version file
|
||||||
|
project_root = Path(self.root).parent
|
||||||
|
version_file = project_root / ".version"
|
||||||
|
if version_file.exists():
|
||||||
|
actual_version = version_file.read_text().strip()
|
||||||
|
|
||||||
|
# Only add exact version for real releases, not editable installs
|
||||||
|
if actual_version != "editable":
|
||||||
|
dependencies.append(f"anki=={actual_version}")
|
||||||
|
else:
|
||||||
|
# For editable installs, just add anki without version constraint
|
||||||
|
dependencies.append("anki")
|
||||||
|
|
||||||
def _add_aqt_files(self, force_include: Dict[str, str], aqt_root: Path) -> None:
|
def _add_aqt_files(self, force_include: Dict[str, str], aqt_root: Path) -> None:
|
||||||
"""Add _aqt files to the build."""
|
"""Add _aqt files to the build."""
|
||||||
for path in aqt_root.rglob("*"):
|
for path in aqt_root.rglob("*"):
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ APP_LAUNCHER="$OUTPUT_DIR/Anki.app"
|
||||||
rm -rf "$APP_LAUNCHER"
|
rm -rf "$APP_LAUNCHER"
|
||||||
|
|
||||||
# Build binaries for both architectures
|
# Build binaries for both architectures
|
||||||
|
rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
||||||
cargo build -p launcher --release --target aarch64-apple-darwin
|
cargo build -p launcher --release --target aarch64-apple-darwin
|
||||||
cargo build -p launcher --release --target x86_64-apple-darwin
|
cargo build -p launcher --release --target x86_64-apple-darwin
|
||||||
(cd ../../.. && ./ninja launcher:uv_universal)
|
(cd ../../.. && ./ninja launcher:uv_universal)
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,4 @@ description = "UV-based launcher for Anki."
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anki-release",
|
"anki-release",
|
||||||
# so we can use testpypi
|
|
||||||
"anki",
|
|
||||||
"aqt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.uv.sources]
|
|
||||||
anki-release = { index = "testpypi" }
|
|
||||||
anki = { index = "testpypi" }
|
|
||||||
aqt = { index = "testpypi" }
|
|
||||||
|
|
||||||
[[tool.uv.index]]
|
|
||||||
name = "testpypi"
|
|
||||||
url = "https://test.pypi.org/simple/"
|
|
||||||
publish-url = "https://test.pypi.org/legacy/"
|
|
||||||
explicit = true
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@
|
||||||
use std::io::stdin;
|
use std::io::stdin;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
|
||||||
use anki_io::copy_file;
|
use anki_io::copy_if_newer;
|
||||||
use anki_io::create_dir_all;
|
use anki_io::create_dir_all;
|
||||||
use anki_io::metadata;
|
use anki_io::modified_time;
|
||||||
use anki_io::remove_file;
|
use anki_io::remove_file;
|
||||||
use anki_io::write_file;
|
use anki_io::write_file;
|
||||||
use anki_process::CommandExt;
|
use anki_process::CommandExt;
|
||||||
|
|
@ -51,6 +51,7 @@ fn run() -> Result<()> {
|
||||||
.join("AnkiProgramFiles");
|
.join("AnkiProgramFiles");
|
||||||
|
|
||||||
let sync_complete_marker = uv_install_root.join(".sync_complete");
|
let sync_complete_marker = uv_install_root.join(".sync_complete");
|
||||||
|
let prerelease_marker = uv_install_root.join("prerelease");
|
||||||
let (exe_dir, resources_dir) = get_exe_and_resources_dirs()?;
|
let (exe_dir, resources_dir) = get_exe_and_resources_dirs()?;
|
||||||
let dist_pyproject_path = resources_dir.join("pyproject.toml");
|
let dist_pyproject_path = resources_dir.join("pyproject.toml");
|
||||||
let user_pyproject_path = uv_install_root.join("pyproject.toml");
|
let user_pyproject_path = uv_install_root.join("pyproject.toml");
|
||||||
|
|
@ -59,14 +60,15 @@ fn run() -> Result<()> {
|
||||||
let uv_lock_path = uv_install_root.join("uv.lock");
|
let uv_lock_path = uv_install_root.join("uv.lock");
|
||||||
let uv_path: std::path::PathBuf = exe_dir.join(get_uv_binary_name());
|
let uv_path: std::path::PathBuf = exe_dir.join(get_uv_binary_name());
|
||||||
|
|
||||||
|
// Create install directory and copy project files in
|
||||||
|
create_dir_all(&uv_install_root)?;
|
||||||
|
copy_if_newer(&dist_pyproject_path, &user_pyproject_path)?;
|
||||||
|
copy_if_newer(&dist_python_version_path, &user_python_version_path)?;
|
||||||
|
|
||||||
let pyproject_has_changed =
|
let pyproject_has_changed =
|
||||||
!user_pyproject_path.exists() || !sync_complete_marker.exists() || {
|
!user_pyproject_path.exists() || !sync_complete_marker.exists() || {
|
||||||
let pyproject_toml_time = metadata(&user_pyproject_path)?
|
let pyproject_toml_time = modified_time(&user_pyproject_path)?;
|
||||||
.modified()
|
let sync_complete_time = modified_time(&sync_complete_marker)?;
|
||||||
.context("Failed to get pyproject.toml modified time")?;
|
|
||||||
let sync_complete_time = metadata(&sync_complete_marker)?
|
|
||||||
.modified()
|
|
||||||
.context("Failed to get sync marker modified time")?;
|
|
||||||
Ok::<bool, anyhow::Error>(pyproject_toml_time > sync_complete_time)
|
Ok::<bool, anyhow::Error>(pyproject_toml_time > sync_complete_time)
|
||||||
}
|
}
|
||||||
.unwrap_or(true);
|
.unwrap_or(true);
|
||||||
|
|
@ -81,22 +83,24 @@ fn run() -> Result<()> {
|
||||||
// we'll need to launch uv; reinvoke ourselves in a terminal so the user can see
|
// we'll need to launch uv; reinvoke ourselves in a terminal so the user can see
|
||||||
handle_terminal_launch()?;
|
handle_terminal_launch()?;
|
||||||
|
|
||||||
// Create install directory and copy project files in
|
|
||||||
create_dir_all(&uv_install_root)?;
|
|
||||||
if !user_pyproject_path.exists() {
|
|
||||||
copy_file(&dist_pyproject_path, &user_pyproject_path)?;
|
|
||||||
copy_file(&dist_python_version_path, &user_python_version_path)?;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove sync marker before attempting sync
|
// Remove sync marker before attempting sync
|
||||||
let _ = remove_file(&sync_complete_marker);
|
let _ = remove_file(&sync_complete_marker);
|
||||||
|
|
||||||
// Sync the venv
|
// Sync the venv
|
||||||
if let Err(e) = Command::new(&uv_path)
|
let mut command = Command::new(&uv_path);
|
||||||
|
command
|
||||||
.current_dir(&uv_install_root)
|
.current_dir(&uv_install_root)
|
||||||
.args(["sync", "--refresh"])
|
.args(["sync", "--upgrade", "--managed-python"]);
|
||||||
.ensure_success()
|
|
||||||
{
|
// Set UV_PRERELEASE=allow if prerelease file exists
|
||||||
|
if prerelease_marker.exists() {
|
||||||
|
command.env("UV_PRERELEASE", "allow");
|
||||||
|
}
|
||||||
|
|
||||||
|
// temporarily force it on during initial beta testing
|
||||||
|
command.env("UV_PRERELEASE", "allow");
|
||||||
|
|
||||||
|
if let Err(e) = command.ensure_success() {
|
||||||
// If sync fails due to things like a missing wheel on pypi,
|
// If sync fails due to things like a missing wheel on pypi,
|
||||||
// we need to remove the lockfile or uv will cache the bad result.
|
// we need to remove the lockfile or uv will cache the bad result.
|
||||||
let _ = remove_file(&uv_lock_path);
|
let _ = remove_file(&uv_lock_path);
|
||||||
|
|
|
||||||
51
qt/mac/anki_mac_helper/__init__.py
Normal file
51
qt/mac/anki_mac_helper/__init__.py
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
# Copyright: Ankitects Pty Ltd and contributors
|
||||||
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from collections.abc import Callable
|
||||||
|
from ctypes import CDLL, CFUNCTYPE, c_bool, c_char_p
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
class _MacOSHelper:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
# Look for the dylib in the same directory as this module
|
||||||
|
module_dir = Path(__file__).parent
|
||||||
|
path = module_dir / "libankihelper.dylib"
|
||||||
|
|
||||||
|
self._dll = CDLL(str(path))
|
||||||
|
self._dll.system_is_dark.restype = c_bool
|
||||||
|
|
||||||
|
def system_is_dark(self) -> bool:
|
||||||
|
return self._dll.system_is_dark()
|
||||||
|
|
||||||
|
def set_darkmode_enabled(self, enabled: bool) -> bool:
|
||||||
|
return self._dll.set_darkmode_enabled(enabled)
|
||||||
|
|
||||||
|
def start_wav_record(self, path: str, on_error: Callable[[str], None]) -> None:
|
||||||
|
global _on_audio_error
|
||||||
|
_on_audio_error = on_error
|
||||||
|
self._dll.start_wav_record(path.encode("utf8"), _audio_error_callback)
|
||||||
|
|
||||||
|
def end_wav_record(self) -> None:
|
||||||
|
"On completion, file should be saved if no error has arrived."
|
||||||
|
self._dll.end_wav_record()
|
||||||
|
|
||||||
|
|
||||||
|
# this must not be overwritten or deallocated
|
||||||
|
@CFUNCTYPE(None, c_char_p) # type: ignore
|
||||||
|
def _audio_error_callback(msg: str) -> None:
|
||||||
|
if handler := _on_audio_error:
|
||||||
|
handler(msg)
|
||||||
|
|
||||||
|
|
||||||
|
_on_audio_error: Callable[[str], None] | None = None
|
||||||
|
|
||||||
|
macos_helper: _MacOSHelper | None = None
|
||||||
|
if sys.platform == "darwin":
|
||||||
|
try:
|
||||||
|
macos_helper = _MacOSHelper()
|
||||||
|
except Exception as e:
|
||||||
|
print("macos_helper:", e)
|
||||||
0
qt/mac/anki_mac_helper/py.typed
Normal file
0
qt/mac/anki_mac_helper/py.typed
Normal file
20
qt/mac/build.sh
Executable file
20
qt/mac/build.sh
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright: Ankitects Pty Ltd and contributors
|
||||||
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Get the project root directory
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PROJ_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
|
||||||
|
# Build the dylib first
|
||||||
|
echo "Building macOS helper dylib..."
|
||||||
|
"$PROJ_ROOT/out/pyenv/bin/python" "$SCRIPT_DIR/helper_build.py"
|
||||||
|
|
||||||
|
# Create the wheel using uv
|
||||||
|
echo "Creating wheel..."
|
||||||
|
cd "$SCRIPT_DIR"
|
||||||
|
"$PROJ_ROOT/out/extracted/uv/uv" build --wheel
|
||||||
|
|
||||||
|
echo "Build complete!"
|
||||||
|
|
@ -7,8 +7,16 @@ import subprocess
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
out_dylib, *src_files = sys.argv[1:]
|
# If no arguments provided, build for the anki_mac_helper package
|
||||||
out_dir = Path(out_dylib).parent.resolve()
|
if len(sys.argv) == 1:
|
||||||
|
script_dir = Path(__file__).parent
|
||||||
|
out_dylib = script_dir / "anki_mac_helper" / "libankihelper.dylib"
|
||||||
|
src_files = list(script_dir.glob("*.swift"))
|
||||||
|
else:
|
||||||
|
out_dylib, *src_files = sys.argv[1:]
|
||||||
|
|
||||||
|
out_dylib = Path(out_dylib)
|
||||||
|
out_dir = out_dylib.parent.resolve()
|
||||||
src_dir = Path(src_files[0]).parent.resolve()
|
src_dir = Path(src_files[0]).parent.resolve()
|
||||||
|
|
||||||
# Build for both architectures
|
# Build for both architectures
|
||||||
|
|
@ -29,12 +37,20 @@ for arch in architectures:
|
||||||
"ankihelper",
|
"ankihelper",
|
||||||
"-O",
|
"-O",
|
||||||
]
|
]
|
||||||
args.extend(src_dir / Path(file).name for file in src_files)
|
if isinstance(src_files[0], Path):
|
||||||
|
args.extend(src_files)
|
||||||
|
else:
|
||||||
|
args.extend(src_dir / Path(file).name for file in src_files)
|
||||||
args.extend(["-o", str(temp_out)])
|
args.extend(["-o", str(temp_out)])
|
||||||
subprocess.run(args, check=True, cwd=out_dir)
|
subprocess.run(args, check=True, cwd=out_dir)
|
||||||
|
|
||||||
|
# Ensure output directory exists
|
||||||
|
out_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
# Create universal binary
|
# Create universal binary
|
||||||
lipo_args = ["lipo", "-create", "-output", out_dylib] + [str(f) for f in temp_files]
|
lipo_args = ["lipo", "-create", "-output", str(out_dylib)] + [
|
||||||
|
str(f) for f in temp_files
|
||||||
|
]
|
||||||
subprocess.run(lipo_args, check=True)
|
subprocess.run(lipo_args, check=True)
|
||||||
|
|
||||||
# Clean up temporary files
|
# Clean up temporary files
|
||||||
|
|
|
||||||
17
qt/mac/pyproject.toml
Normal file
17
qt/mac/pyproject.toml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
[build-system]
|
||||||
|
requires = ["hatchling"]
|
||||||
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "anki-mac-helper"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "Small support library for Anki on Macs"
|
||||||
|
requires-python = ">=3.9"
|
||||||
|
license = { text = "AGPL-3.0-or-later" }
|
||||||
|
authors = [
|
||||||
|
{ name = "Anki Team" },
|
||||||
|
]
|
||||||
|
urls = { Homepage = "https://github.com/ankitects/anki" }
|
||||||
|
|
||||||
|
[tool.hatch.build.targets.wheel]
|
||||||
|
packages = ["anki_mac_helper"]
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "aqt"
|
name = "aqt"
|
||||||
# dynamic = ["version"]
|
dynamic = ["version"]
|
||||||
version = "0.1.2"
|
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|
@ -14,6 +13,7 @@ dependencies = [
|
||||||
"waitress>=2.0.0",
|
"waitress>=2.0.0",
|
||||||
"psutil; sys.platform == 'win32'",
|
"psutil; sys.platform == 'win32'",
|
||||||
"pywin32; sys.platform == 'win32'",
|
"pywin32; sys.platform == 'win32'",
|
||||||
|
"anki-mac-helper; sys.platform == 'darwin'",
|
||||||
"pip-system-certs!=5.1",
|
"pip-system-certs!=5.1",
|
||||||
"mock",
|
"mock",
|
||||||
"types-decorator",
|
"types-decorator",
|
||||||
|
|
@ -24,6 +24,7 @@ dependencies = [
|
||||||
"types-pywin32",
|
"types-pywin32",
|
||||||
"pyqt6>=6.2",
|
"pyqt6>=6.2",
|
||||||
"pyqt6-webengine>=6.2",
|
"pyqt6-webengine>=6.2",
|
||||||
|
# anki dependency is added dynamically in hatch_build.py with exact version
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|
@ -44,6 +45,13 @@ qt67 = [
|
||||||
"pyqt6-webengine-qt6==6.7.3",
|
"pyqt6-webengine-qt6==6.7.3",
|
||||||
"pyqt6_sip==13.10.2",
|
"pyqt6_sip==13.10.2",
|
||||||
]
|
]
|
||||||
|
qt69 = [
|
||||||
|
"pyqt6==6.9.1",
|
||||||
|
"pyqt6-qt6==6.9.1",
|
||||||
|
"pyqt6-webengine==6.9.0",
|
||||||
|
"pyqt6-webengine-qt6==6.9.1",
|
||||||
|
"pyqt6_sip==13.10.2",
|
||||||
|
]
|
||||||
qt = [
|
qt = [
|
||||||
"pyqt6==6.8.0",
|
"pyqt6==6.8.0",
|
||||||
"pyqt6-qt6==6.8.1",
|
"pyqt6-qt6==6.8.1",
|
||||||
|
|
@ -58,9 +66,13 @@ conflicts = [
|
||||||
{ extra = "qt" },
|
{ extra = "qt" },
|
||||||
{ extra = "qt66" },
|
{ extra = "qt66" },
|
||||||
{ extra = "qt67" },
|
{ extra = "qt67" },
|
||||||
|
{ extra = "qt69" },
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[tool.uv.sources]
|
||||||
|
anki = { workspace = true }
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["hatchling"]
|
requires = ["hatchling"]
|
||||||
build-backend = "hatchling.build"
|
build-backend = "hatchling.build"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export UV_PUBLISH_TOKEN=$(pass show w/pypi-api-test)
|
|
||||||
|
|
||||||
# Get the project root (two levels up from qt/release)
|
# Get the project root (two levels up from qt/release)
|
||||||
PROJ_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
PROJ_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||||
|
|
||||||
|
|
@ -10,4 +8,6 @@ UV="$PROJ_ROOT/out/extracted/uv/uv"
|
||||||
|
|
||||||
rm -rf dist
|
rm -rf dist
|
||||||
"$UV" build --wheel
|
"$UV" build --wheel
|
||||||
"$UV" publish --index testpypi
|
|
||||||
|
#UV_PUBLISH_TOKEN=$(pass show w/pypi-api-test) "$UV" publish --index testpypi
|
||||||
|
UV_PUBLISH_TOKEN=$(pass show w/pypi-api) "$UV" publish
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ PROJ_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||||
# Use extracted uv binary
|
# Use extracted uv binary
|
||||||
UV="$PROJ_ROOT/out/extracted/uv/uv"
|
UV="$PROJ_ROOT/out/extracted/uv/uv"
|
||||||
|
|
||||||
# Prompt for wheel version
|
# Read version from .version file
|
||||||
read -p "Wheel version: " VERSION
|
VERSION=$(cat "$PROJ_ROOT/.version" | tr -d '[:space:]')
|
||||||
|
|
||||||
# Copy existing pyproject.toml to .old if it exists
|
# Copy existing pyproject.toml to .old if it exists
|
||||||
if [ -f pyproject.toml ]; then
|
if [ -f pyproject.toml ]; then
|
||||||
|
|
@ -24,7 +24,7 @@ fi
|
||||||
# Export dependencies using uv
|
# Export dependencies using uv
|
||||||
echo "Exporting dependencies..."
|
echo "Exporting dependencies..."
|
||||||
rm -f pyproject.toml
|
rm -f pyproject.toml
|
||||||
DEPS=$("$UV" export --no-hashes --no-annotate --no-header --extra audio --extra qt --all-packages --no-dev --no-emit-workspace)
|
DEPS=$(cd "$PROJ_ROOT" && "$UV" export --no-hashes --no-annotate --no-header --extra audio --extra qt --all-packages --no-dev --no-emit-workspace)
|
||||||
|
|
||||||
# Generate the pyproject.toml file
|
# Generate the pyproject.toml file
|
||||||
cat > pyproject.toml << EOF
|
cat > pyproject.toml << EOF
|
||||||
|
|
@ -49,12 +49,6 @@ done
|
||||||
cat >> pyproject.toml << 'EOF'
|
cat >> pyproject.toml << 'EOF'
|
||||||
]
|
]
|
||||||
|
|
||||||
[[tool.uv.index]]
|
|
||||||
name = "testpypi"
|
|
||||||
url = "https://test.pypi.org/simple/"
|
|
||||||
publish-url = "https://test.pypi.org/legacy/"
|
|
||||||
explicit = true
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["hatchling"]
|
requires = ["hatchling"]
|
||||||
build-backend = "hatchling.build"
|
build-backend = "hatchling.build"
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,10 @@ from __future__ import annotations
|
||||||
import io
|
import io
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
from dataclasses import dataclass
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
try:
|
from PyQt6.uic import compileUi
|
||||||
from PyQt6.uic import compileUi
|
|
||||||
except ImportError:
|
|
||||||
# ARM64 Linux builds may not have access to PyQt6, and may have aliased
|
|
||||||
# it to PyQt5. We allow fallback, but the _qt6.py files will not be valid.
|
|
||||||
from PyQt5.uic import compileUi # type: ignore
|
|
||||||
|
|
||||||
from dataclasses import dataclass
|
|
||||||
|
|
||||||
|
|
||||||
def compile(ui_file: str | Path) -> str:
|
def compile(ui_file: str | Path) -> str:
|
||||||
|
|
@ -53,21 +47,9 @@ def with_fixes_for_qt6(code: str) -> str:
|
||||||
return "\n".join(outlines)
|
return "\n".join(outlines)
|
||||||
|
|
||||||
|
|
||||||
def with_fixes_for_qt5(code: str) -> str:
|
|
||||||
code = code.replace(
|
|
||||||
"from PyQt5 import QtCore, QtGui, QtWidgets",
|
|
||||||
"from PyQt5 import QtCore, QtGui, QtWidgets\nfrom aqt.utils import tr\n",
|
|
||||||
)
|
|
||||||
code = code.replace("Qt6", "Qt5")
|
|
||||||
code = code.replace("QtGui.QAction", "QtWidgets.QAction")
|
|
||||||
code = code.replace("import icons_rc", "")
|
|
||||||
return code
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UiFileAndOutputs:
|
class UiFileAndOutputs:
|
||||||
ui_file: Path
|
ui_file: Path
|
||||||
qt5_file: str
|
|
||||||
qt6_file: str
|
qt6_file: str
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -82,7 +64,6 @@ def get_files() -> list[UiFileAndOutputs]:
|
||||||
out.append(
|
out.append(
|
||||||
UiFileAndOutputs(
|
UiFileAndOutputs(
|
||||||
ui_file=path,
|
ui_file=path,
|
||||||
qt5_file=outpath.replace(".ui", "_qt5.py"),
|
|
||||||
qt6_file=outpath.replace(".ui", "_qt6.py"),
|
qt6_file=outpath.replace(".ui", "_qt6.py"),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -93,8 +74,5 @@ if __name__ == "__main__":
|
||||||
for entry in get_files():
|
for entry in get_files():
|
||||||
stock = compile(entry.ui_file)
|
stock = compile(entry.ui_file)
|
||||||
for_qt6 = with_fixes_for_qt6(stock)
|
for_qt6 = with_fixes_for_qt6(stock)
|
||||||
for_qt5 = with_fixes_for_qt5(for_qt6)
|
|
||||||
with open(entry.qt5_file, "w") as file:
|
|
||||||
file.write(for_qt5)
|
|
||||||
with open(entry.qt6_file, "w") as file:
|
with open(entry.qt6_file, "w") as file:
|
||||||
file.write(for_qt6)
|
file.write(for_qt6)
|
||||||
|
|
|
||||||
|
|
@ -152,6 +152,34 @@ pub fn copy_file(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> Result<u64> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Copy a file from src to dst if dst doesn't exist or if src is newer than
|
||||||
|
/// dst. Preserves the modification time from the source file.
|
||||||
|
pub fn copy_if_newer(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> Result<bool> {
|
||||||
|
let src = src.as_ref();
|
||||||
|
let dst = dst.as_ref();
|
||||||
|
|
||||||
|
let should_copy = if !dst.exists() {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
let src_time = modified_time(src)?;
|
||||||
|
let dst_time = modified_time(dst)?;
|
||||||
|
src_time > dst_time
|
||||||
|
};
|
||||||
|
|
||||||
|
if should_copy {
|
||||||
|
copy_file(src, dst)?;
|
||||||
|
|
||||||
|
// Preserve the modification time from the source file
|
||||||
|
let src_mtime = modified_time(src)?;
|
||||||
|
let times = FileTimes::new().set_modified(src_mtime);
|
||||||
|
set_file_times(dst, times)?;
|
||||||
|
|
||||||
|
Ok(true)
|
||||||
|
} else {
|
||||||
|
Ok(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Like [read_file], but skips the section that is potentially locked by
|
/// Like [read_file], but skips the section that is potentially locked by
|
||||||
/// SQLite.
|
/// SQLite.
|
||||||
pub fn read_locked_db_file(path: impl AsRef<Path>) -> Result<Vec<u8>> {
|
pub fn read_locked_db_file(path: impl AsRef<Path>) -> Result<Vec<u8>> {
|
||||||
|
|
@ -188,6 +216,14 @@ pub fn metadata(path: impl AsRef<Path>) -> Result<std::fs::Metadata> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the modification time of a file.
|
||||||
|
pub fn modified_time(path: impl AsRef<Path>) -> Result<std::time::SystemTime> {
|
||||||
|
metadata(&path)?.modified().context(FileIoSnafu {
|
||||||
|
path: path.as_ref(),
|
||||||
|
op: FileOp::Metadata,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
pub fn new_tempfile() -> Result<NamedTempFile> {
|
pub fn new_tempfile() -> Result<NamedTempFile> {
|
||||||
NamedTempFile::new().context(FileIoSnafu {
|
NamedTempFile::new().context(FileIoSnafu {
|
||||||
path: std::env::temp_dir(),
|
path: std::env::temp_dir(),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
@echo off
|
@echo off
|
||||||
set CARGO_TARGET_DIR=%~dp0\..\out\rust
|
set CARGO_TARGET_DIR=%~dp0..\out\rust
|
||||||
REM separate build+run steps so build env doesn't leak into subprocesses
|
REM separate build+run steps so build env doesn't leak into subprocesses
|
||||||
cargo build -p runner --release || exit /b 1
|
cargo build -p runner --release || exit /b 1
|
||||||
out\rust\release\runner build %* || exit /b 1
|
out\rust\release\runner build %* || exit /b 1
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export UV_PUBLISH_TOKEN=$(pass show w/pypi-api-test)
|
#export UV_PUBLISH_TOKEN=$(pass show w/pypi-api-test)
|
||||||
out/extracted/uv/uv publish --index testpypi out/wheels/*
|
#out/extracted/uv/uv publish --index testpypi out/wheels/*
|
||||||
|
|
||||||
|
export UV_PUBLISH_TOKEN=$(pass show w/pypi-api)
|
||||||
|
out/extracted/uv/uv publish out/wheels/*
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ set -e
|
||||||
|
|
||||||
./ninja extract:uv
|
./ninja extract:uv
|
||||||
|
|
||||||
export PYENV=./out/pyenv68
|
export PYENV=./out/pyenv67
|
||||||
UV_PROJECT_ENVIRONMENT=$PYENV ./out/extracted/uv/uv sync --all-packages --extra qt68
|
UV_PROJECT_ENVIRONMENT=$PYENV ./out/extracted/uv/uv sync --all-packages --extra qt67
|
||||||
./run $*
|
./run $*
|
||||||
9
tools/run-qt6.9
Executable file
9
tools/run-qt6.9
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
./ninja extract:uv
|
||||||
|
|
||||||
|
export PYENV=./out/pyenv69
|
||||||
|
UV_PROJECT_ENVIRONMENT=$PYENV ./out/extracted/uv/uv sync --all-packages --extra qt69
|
||||||
|
./run $*
|
||||||
346
uv.lock
346
uv.lock
|
|
@ -11,6 +11,7 @@ conflicts = [[
|
||||||
{ package = "aqt", extra = "qt" },
|
{ package = "aqt", extra = "qt" },
|
||||||
{ package = "aqt", extra = "qt66" },
|
{ package = "aqt", extra = "qt66" },
|
||||||
{ package = "aqt", extra = "qt67" },
|
{ package = "aqt", extra = "qt67" },
|
||||||
|
{ package = "aqt", extra = "qt69" },
|
||||||
]]
|
]]
|
||||||
|
|
||||||
[manifest]
|
[manifest]
|
||||||
|
|
@ -48,16 +49,15 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anki"
|
name = "anki"
|
||||||
version = "0.1.2"
|
|
||||||
source = { editable = "pylib" }
|
source = { editable = "pylib" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "beautifulsoup4" },
|
{ name = "beautifulsoup4" },
|
||||||
{ name = "decorator" },
|
{ name = "decorator" },
|
||||||
{ name = "distro", marker = "(sys_platform != 'darwin' and sys_platform != 'win32') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "distro", marker = "(sys_platform != 'darwin' and sys_platform != 'win32') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform == 'darwin' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform == 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "markdown" },
|
{ name = "markdown" },
|
||||||
{ name = "orjson" },
|
{ name = "orjson" },
|
||||||
{ name = "protobuf" },
|
{ name = "protobuf" },
|
||||||
{ name = "psutil", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "psutil", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "requests", extra = ["socks"] },
|
{ name = "requests", extra = ["socks"] },
|
||||||
{ name = "types-orjson" },
|
{ name = "types-orjson" },
|
||||||
{ name = "types-protobuf" },
|
{ name = "types-protobuf" },
|
||||||
|
|
@ -98,9 +98,9 @@ source = { virtual = "." }
|
||||||
|
|
||||||
[package.optional-dependencies]
|
[package.optional-dependencies]
|
||||||
sphinx = [
|
sphinx = [
|
||||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx-autoapi" },
|
{ name = "sphinx-autoapi" },
|
||||||
{ name = "sphinx-rtd-theme" },
|
{ name = "sphinx-rtd-theme" },
|
||||||
]
|
]
|
||||||
|
|
@ -141,26 +141,36 @@ dev = [
|
||||||
{ name = "wheel" },
|
{ name = "wheel" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anki-mac-helper"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/b3/9f/c4d3e635ddbd2c6c24ff5454e96900fd2061b9abbb0198b9283446780d08/anki_mac_helper-0.1.0-py3-none-any.whl", hash = "sha256:ed449aba27ea3bc7999054afa10dacf08ef856ed7af46526d9c8599d8179a618", size = 40637, upload-time = "2025-06-19T14:38:07.672Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aqt"
|
name = "aqt"
|
||||||
version = "0.1.2"
|
|
||||||
source = { editable = "qt" }
|
source = { editable = "qt" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
{ name = "anki-mac-helper", marker = "sys_platform == 'darwin' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "beautifulsoup4" },
|
{ name = "beautifulsoup4" },
|
||||||
{ name = "flask" },
|
{ name = "flask" },
|
||||||
{ name = "flask-cors" },
|
{ name = "flask-cors" },
|
||||||
{ name = "jsonschema" },
|
{ name = "jsonschema" },
|
||||||
{ name = "mock" },
|
{ name = "mock" },
|
||||||
{ name = "pip-system-certs", version = "4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pip-system-certs", version = "4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pip-system-certs", version = "5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pip-system-certs", version = "5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "psutil", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "psutil", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6", version = "6.6.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.6.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6", version = "6.7.1", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.7.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt66' and extra != 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-webengine", version = "6.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt69' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt66' and extra != 'extra-3-aqt-qt67')" },
|
||||||
{ name = "pyqt6-webengine", version = "6.7.0", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webengine", version = "6.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-webengine", version = "6.8.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt66' and extra != 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webengine", version = "6.7.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pywin32", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webengine", version = "6.8.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
|
{ name = "pyqt6-webengine", version = "6.9.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt69' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt66' and extra != 'extra-3-aqt-qt67')" },
|
||||||
|
{ name = "pywin32", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "requests" },
|
{ name = "requests" },
|
||||||
{ name = "send2trash" },
|
{ name = "send2trash" },
|
||||||
{ name = "types-decorator" },
|
{ name = "types-decorator" },
|
||||||
|
|
@ -174,7 +184,7 @@ dependencies = [
|
||||||
|
|
||||||
[package.optional-dependencies]
|
[package.optional-dependencies]
|
||||||
audio = [
|
audio = [
|
||||||
{ name = "anki-audio", marker = "sys_platform == 'darwin' or sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "anki-audio", marker = "sys_platform == 'darwin' or sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
qt = [
|
qt = [
|
||||||
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
|
@ -197,10 +207,18 @@ qt67 = [
|
||||||
{ name = "pyqt6-webengine", version = "6.7.0", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-webengine", version = "6.7.0", source = { registry = "https://pypi.org/simple" } },
|
||||||
{ name = "pyqt6-webengine-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-webengine-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" } },
|
||||||
]
|
]
|
||||||
|
qt69 = [
|
||||||
|
{ name = "pyqt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-qt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-webengine", version = "6.9.0", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-webengine-qt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
]
|
||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "anki-audio", marker = "(sys_platform == 'darwin' and extra == 'audio') or (sys_platform == 'win32' and extra == 'audio')", specifier = "==0.1.0" },
|
{ name = "anki-audio", marker = "(sys_platform == 'darwin' and extra == 'audio') or (sys_platform == 'win32' and extra == 'audio')", specifier = "==0.1.0" },
|
||||||
|
{ name = "anki-mac-helper", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "beautifulsoup4" },
|
{ name = "beautifulsoup4" },
|
||||||
{ name = "flask" },
|
{ name = "flask" },
|
||||||
{ name = "flask-cors" },
|
{ name = "flask-cors" },
|
||||||
|
|
@ -212,19 +230,24 @@ requires-dist = [
|
||||||
{ name = "pyqt6", marker = "extra == 'qt'", specifier = "==6.8.0" },
|
{ name = "pyqt6", marker = "extra == 'qt'", specifier = "==6.8.0" },
|
||||||
{ name = "pyqt6", marker = "extra == 'qt66'", specifier = "==6.6.1" },
|
{ name = "pyqt6", marker = "extra == 'qt66'", specifier = "==6.6.1" },
|
||||||
{ name = "pyqt6", marker = "extra == 'qt67'", specifier = "==6.7.1" },
|
{ name = "pyqt6", marker = "extra == 'qt67'", specifier = "==6.7.1" },
|
||||||
|
{ name = "pyqt6", marker = "extra == 'qt69'", specifier = "==6.9.1" },
|
||||||
{ name = "pyqt6-qt6", marker = "extra == 'qt'", specifier = "==6.8.1" },
|
{ name = "pyqt6-qt6", marker = "extra == 'qt'", specifier = "==6.8.1" },
|
||||||
{ name = "pyqt6-qt6", marker = "extra == 'qt66'", specifier = "==6.6.2" },
|
{ name = "pyqt6-qt6", marker = "extra == 'qt66'", specifier = "==6.6.2" },
|
||||||
{ name = "pyqt6-qt6", marker = "extra == 'qt67'", specifier = "==6.7.3" },
|
{ name = "pyqt6-qt6", marker = "extra == 'qt67'", specifier = "==6.7.3" },
|
||||||
|
{ name = "pyqt6-qt6", marker = "extra == 'qt69'", specifier = "==6.9.1" },
|
||||||
{ name = "pyqt6-sip", marker = "extra == 'qt'", specifier = "==13.10.2" },
|
{ name = "pyqt6-sip", marker = "extra == 'qt'", specifier = "==13.10.2" },
|
||||||
{ name = "pyqt6-sip", marker = "extra == 'qt66'", specifier = "==13.6.0" },
|
{ name = "pyqt6-sip", marker = "extra == 'qt66'", specifier = "==13.6.0" },
|
||||||
{ name = "pyqt6-sip", marker = "extra == 'qt67'", specifier = "==13.10.2" },
|
{ name = "pyqt6-sip", marker = "extra == 'qt67'", specifier = "==13.10.2" },
|
||||||
|
{ name = "pyqt6-sip", marker = "extra == 'qt69'", specifier = "==13.10.2" },
|
||||||
{ name = "pyqt6-webengine", specifier = ">=6.2" },
|
{ name = "pyqt6-webengine", specifier = ">=6.2" },
|
||||||
{ name = "pyqt6-webengine", marker = "extra == 'qt'", specifier = "==6.8.0" },
|
{ name = "pyqt6-webengine", marker = "extra == 'qt'", specifier = "==6.8.0" },
|
||||||
{ name = "pyqt6-webengine", marker = "extra == 'qt66'", specifier = "==6.6.0" },
|
{ name = "pyqt6-webengine", marker = "extra == 'qt66'", specifier = "==6.6.0" },
|
||||||
{ name = "pyqt6-webengine", marker = "extra == 'qt67'", specifier = "==6.7.0" },
|
{ name = "pyqt6-webengine", marker = "extra == 'qt67'", specifier = "==6.7.0" },
|
||||||
|
{ name = "pyqt6-webengine", marker = "extra == 'qt69'", specifier = "==6.9.0" },
|
||||||
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt'", specifier = "==6.8.1" },
|
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt'", specifier = "==6.8.1" },
|
||||||
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt66'", specifier = "==6.6.2" },
|
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt66'", specifier = "==6.6.2" },
|
||||||
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt67'", specifier = "==6.7.3" },
|
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt67'", specifier = "==6.7.3" },
|
||||||
|
{ name = "pyqt6-webengine-qt6", marker = "extra == 'qt69'", specifier = "==6.9.1" },
|
||||||
{ name = "pywin32", marker = "sys_platform == 'win32'" },
|
{ name = "pywin32", marker = "sys_platform == 'win32'" },
|
||||||
{ name = "requests" },
|
{ name = "requests" },
|
||||||
{ name = "send2trash" },
|
{ name = "send2trash" },
|
||||||
|
|
@ -236,14 +259,14 @@ requires-dist = [
|
||||||
{ name = "types-waitress" },
|
{ name = "types-waitress" },
|
||||||
{ name = "waitress", specifier = ">=2.0.0" },
|
{ name = "waitress", specifier = ">=2.0.0" },
|
||||||
]
|
]
|
||||||
provides-extras = ["audio", "qt66", "qt67", "qt"]
|
provides-extras = ["audio", "qt", "qt66", "qt67", "qt69"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "astroid"
|
name = "astroid"
|
||||||
version = "3.3.10"
|
version = "3.3.10"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/00/c2/9b2de9ed027f9fe5734a6c0c0a601289d796b3caaf1e372e23fa88a73047/astroid-3.3.10.tar.gz", hash = "sha256:c332157953060c6deb9caa57303ae0d20b0fbdb2e59b4a4f2a6ba49d0a7961ce", size = 398941, upload-time = "2025-05-10T13:33:10.405Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/00/c2/9b2de9ed027f9fe5734a6c0c0a601289d796b3caaf1e372e23fa88a73047/astroid-3.3.10.tar.gz", hash = "sha256:c332157953060c6deb9caa57303ae0d20b0fbdb2e59b4a4f2a6ba49d0a7961ce", size = 398941, upload-time = "2025-05-10T13:33:10.405Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -286,14 +309,14 @@ name = "black"
|
||||||
version = "25.1.0"
|
version = "25.1.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "mypy-extensions" },
|
{ name = "mypy-extensions" },
|
||||||
{ name = "packaging" },
|
{ name = "packaging" },
|
||||||
{ name = "pathspec" },
|
{ name = "pathspec" },
|
||||||
{ name = "platformdirs" },
|
{ name = "platformdirs" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -420,7 +443,7 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "colorama", marker = "(python_full_version < '3.10' and sys_platform == 'win32') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "(python_full_version < '3.10' and sys_platform == 'win32') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -437,7 +460,7 @@ resolution-markers = [
|
||||||
"python_full_version == '3.10.*'",
|
"python_full_version == '3.10.*'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "colorama", marker = "(python_full_version >= '3.10' and sys_platform == 'win32') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "(python_full_version >= '3.10' and sys_platform == 'win32') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (python_full_version < '3.10' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -494,7 +517,7 @@ name = "exceptiongroup"
|
||||||
version = "1.3.0"
|
version = "1.3.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -507,9 +530,9 @@ version = "3.1.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "blinker" },
|
{ name = "blinker" },
|
||||||
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "itsdangerous" },
|
{ name = "itsdangerous" },
|
||||||
{ name = "jinja2" },
|
{ name = "jinja2" },
|
||||||
{ name = "markupsafe" },
|
{ name = "markupsafe" },
|
||||||
|
|
@ -541,7 +564,7 @@ dependencies = [
|
||||||
{ name = "packaging" },
|
{ name = "packaging" },
|
||||||
{ name = "pathspec" },
|
{ name = "pathspec" },
|
||||||
{ name = "pluggy" },
|
{ name = "pluggy" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "trove-classifiers" },
|
{ name = "trove-classifiers" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/8f/8a/cc1debe3514da292094f1c3a700e4ca25442489731ef7c0814358816bb03/hatchling-1.27.0.tar.gz", hash = "sha256:971c296d9819abb3811112fc52c7a9751c8d381898f36533bb16f9791e941fd6", size = 54983, upload-time = "2024-12-15T17:08:11.894Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/8f/8a/cc1debe3514da292094f1c3a700e4ca25442489731ef7c0814358816bb03/hatchling-1.27.0.tar.gz", hash = "sha256:971c296d9819abb3811112fc52c7a9751c8d381898f36533bb16f9791e941fd6", size = 54983, upload-time = "2024-12-15T17:08:11.894Z" }
|
||||||
|
|
@ -650,7 +673,7 @@ name = "markdown"
|
||||||
version = "3.8.1"
|
version = "3.8.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/db/7c/0738e5ff0adccd0b4e02c66d0446c03a3c557e02bb49b7c263d7ab56c57d/markdown-3.8.1.tar.gz", hash = "sha256:a2e2f01cead4828ee74ecca9623045f62216aef2212a7685d6eb9163f590b8c1", size = 361280, upload-time = "2025-06-18T14:50:49.618Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/db/7c/0738e5ff0adccd0b4e02c66d0446c03a3c557e02bb49b7c263d7ab56c57d/markdown-3.8.1.tar.gz", hash = "sha256:a2e2f01cead4828ee74ecca9623045f62216aef2212a7685d6eb9163f590b8c1", size = 361280, upload-time = "2025-06-18T14:50:49.618Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -750,7 +773,7 @@ source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "mypy-extensions" },
|
{ name = "mypy-extensions" },
|
||||||
{ name = "pathspec" },
|
{ name = "pathspec" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747, upload-time = "2025-06-16T16:51:35.145Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747, upload-time = "2025-06-16T16:51:35.145Z" }
|
||||||
|
|
@ -924,7 +947,7 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "wrapt", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "wrapt", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/27/9a/4e949d0a281c5dd45c8d5b02b03fe32044936234675e967de49317a1daee/pip_system_certs-4.0.tar.gz", hash = "sha256:db8e6a31388d9795ec9139957df1a89fa5274fb66164456fd091a5d3e94c350c", size = 5622, upload-time = "2022-11-04T11:01:12.537Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/27/9a/4e949d0a281c5dd45c8d5b02b03fe32044936234675e967de49317a1daee/pip_system_certs-4.0.tar.gz", hash = "sha256:db8e6a31388d9795ec9139957df1a89fa5274fb66164456fd091a5d3e94c350c", size = 5622, upload-time = "2022-11-04T11:01:12.537Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -941,7 +964,7 @@ resolution-markers = [
|
||||||
"python_full_version == '3.10.*'",
|
"python_full_version == '3.10.*'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pip", marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pip", marker = "python_full_version >= '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/3d/0c/a338ae5d49192861cf54da4d5c2af0efe47edbaa0827995b284005366ca5/pip_system_certs-5.2.tar.gz", hash = "sha256:80b776b5cf17191bf99d313699b7fce2fdb84eb7bbb225fd134109a82706406f", size = 5408, upload-time = "2025-06-17T23:33:15.322Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/3d/0c/a338ae5d49192861cf54da4d5c2af0efe47edbaa0827995b284005366ca5/pip_system_certs-5.2.tar.gz", hash = "sha256:80b776b5cf17191bf99d313699b7fce2fdb84eb7bbb225fd134109a82706406f", size = 5408, upload-time = "2025-06-17T23:33:15.322Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1022,14 +1045,14 @@ version = "3.3.7"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "astroid" },
|
{ name = "astroid" },
|
||||||
{ name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "dill" },
|
{ name = "dill" },
|
||||||
{ name = "isort" },
|
{ name = "isort" },
|
||||||
{ name = "mccabe" },
|
{ name = "mccabe" },
|
||||||
{ name = "platformdirs" },
|
{ name = "platformdirs" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "tomlkit" },
|
{ name = "tomlkit" },
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3/pylint-3.3.7.tar.gz", hash = "sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559", size = 1520709, upload-time = "2025-05-04T17:07:51.089Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3/pylint-3.3.7.tar.gz", hash = "sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559", size = 1520709, upload-time = "2025-05-04T17:07:51.089Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1047,8 +1070,8 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6-qt6", version = "6.6.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-qt6", version = "6.6.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-sip", version = "13.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/8c/2b/6fe0409501798abc780a70cab48c39599742ab5a8168e682107eaab78fca/PyQt6-6.6.1.tar.gz", hash = "sha256:9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379", size = 1043203, upload-time = "2023-12-04T10:37:27.406Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/8c/2b/6fe0409501798abc780a70cab48c39599742ab5a8168e682107eaab78fca/PyQt6-6.6.1.tar.gz", hash = "sha256:9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379", size = 1043203, upload-time = "2023-12-04T10:37:27.406Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1068,8 +1091,8 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/d1/f9/b0c2ba758b14a7219e076138ea1e738c068bf388e64eee68f3df4fc96f5a/PyQt6-6.7.1.tar.gz", hash = "sha256:3672a82ccd3a62e99ab200a13903421e2928e399fda25ced98d140313ad59cb9", size = 1051212, upload-time = "2024-07-19T08:49:58.247Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/d1/f9/b0c2ba758b14a7219e076138ea1e738c068bf388e64eee68f3df4fc96f5a/PyQt6-6.7.1.tar.gz", hash = "sha256:3672a82ccd3a62e99ab200a13903421e2928e399fda25ced98d140313ad59cb9", size = 1051212, upload-time = "2024-07-19T08:49:58.247Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1092,8 +1115,8 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6-qt6", version = "6.8.1", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-qt6", version = "6.8.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e9/0a/accbebed526158ab2aedd5c84d238159754bd99f481082b3fe7f374c6a3b/PyQt6-6.8.0.tar.gz", hash = "sha256:6d8628de4c2a050f0b74462e4c9cb97f839bf6ffabbca91711722ffb281570d9", size = 1061357, upload-time = "2024-12-12T15:30:42.021Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/e9/0a/accbebed526158ab2aedd5c84d238159754bd99f481082b3fe7f374c6a3b/PyQt6-6.8.0.tar.gz", hash = "sha256:6d8628de4c2a050f0b74462e4c9cb97f839bf6ffabbca91711722ffb281570d9", size = 1061357, upload-time = "2024-12-12T15:30:42.021Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1105,6 +1128,29 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/23/a0/f564279285ed92b4fe38ed7b2a8fcddab414512391088b6a0f67a1107f24/PyQt6-6.8.0-cp39-abi3-win_arm64.whl", hash = "sha256:48bace7b87676bba5e6114482f3a20ca20be90c7f261b5d340464313f5f2bf5e", size = 5409032, upload-time = "2024-12-12T15:30:38.859Z" },
|
{ url = "https://files.pythonhosted.org/packages/23/a0/f564279285ed92b4fe38ed7b2a8fcddab414512391088b6a0f67a1107f24/PyQt6-6.8.0-cp39-abi3-win_arm64.whl", hash = "sha256:48bace7b87676bba5e6114482f3a20ca20be90c7f261b5d340464313f5f2bf5e", size = 5409032, upload-time = "2024-12-12T15:30:38.859Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyqt6"
|
||||||
|
version = "6.9.1"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12'",
|
||||||
|
"python_full_version == '3.11.*'",
|
||||||
|
"python_full_version == '3.10.*'",
|
||||||
|
"python_full_version < '3.10'",
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
{ name = "pyqt6-qt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/32/1b/567f46eb43ca961efd38d7a0b73efb70d7342854f075fd919179fdb2a571/pyqt6-6.9.1.tar.gz", hash = "sha256:50642be03fb40f1c2111a09a1f5a0f79813e039c15e78267e6faaf8a96c1c3a6", size = 1067230, upload-time = "2025-06-06T08:49:30.307Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/18/c4/fc2a69cf3df09b213185ef5a677c3940cd20e7855d29e40061a685b9c6ee/pyqt6-6.9.1-cp39-abi3-macosx_10_14_universal2.whl", hash = "sha256:33c23d28f6608747ecc8bfd04c8795f61631af9db4fb1e6c2a7523ec4cc916d9", size = 59770566, upload-time = "2025-06-06T08:48:20.331Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/d5/78/92f3c46440a83ebe22ae614bd6792e7b052bcb58ff128f677f5662015184/pyqt6-6.9.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:37884df27f774e2e1c0c96fa41e817a222329b80ffc6241725b0dc8c110acb35", size = 37804959, upload-time = "2025-06-06T08:48:39.587Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/5a/5e/e77fa2761d809cd08d724f44af01a4b6ceb0ff9648e43173187b0e4fac4e/pyqt6-6.9.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:055870b703c1a49ca621f8a89e2ec4d848e6c739d39367eb9687af3b056d9aa3", size = 40414608, upload-time = "2025-06-06T08:49:00.26Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/c4/09/69cf80456b6a985e06dd24ed0c2d3451e43567bf2807a5f3a86ef7a74a2e/pyqt6-6.9.1-cp39-abi3-win_amd64.whl", hash = "sha256:15b95bd273bb6288b070ed7a9503d5ff377aa4882dd6d175f07cad28cdb21da0", size = 25717996, upload-time = "2025-06-06T08:49:13.208Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/52/b3/0839d8fd18b86362a4de384740f2f6b6885b5d06fda7720f8a335425e316/pyqt6-6.9.1-cp39-abi3-win_arm64.whl", hash = "sha256:08792c72d130a02e3248a120f0b9bbb4bf4319095f92865bc5b365b00518f53d", size = 25212132, upload-time = "2025-06-06T08:49:27.41Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyqt6-qt6"
|
name = "pyqt6-qt6"
|
||||||
version = "6.6.2"
|
version = "6.6.2"
|
||||||
|
|
@ -1162,6 +1208,25 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/c9/0d/b86b64f0ac5e08b1bd18edac9e949897a4626196725e9a86af4e9f628c80/PyQt6_Qt6-6.8.1-py3-none-win_arm64.whl", hash = "sha256:a8bc2ed4ee5e7c6ff4dd1c7db0b27705d151fee5dc232bbd1bf17618f937f515", size = 47836492, upload-time = "2024-12-06T13:52:29.511Z" },
|
{ url = "https://files.pythonhosted.org/packages/c9/0d/b86b64f0ac5e08b1bd18edac9e949897a4626196725e9a86af4e9f628c80/PyQt6_Qt6-6.8.1-py3-none-win_arm64.whl", hash = "sha256:a8bc2ed4ee5e7c6ff4dd1c7db0b27705d151fee5dc232bbd1bf17618f937f515", size = 47836492, upload-time = "2024-12-06T13:52:29.511Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyqt6-qt6"
|
||||||
|
version = "6.9.1"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12'",
|
||||||
|
"python_full_version == '3.11.*'",
|
||||||
|
"python_full_version == '3.10.*'",
|
||||||
|
"python_full_version < '3.10'",
|
||||||
|
]
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/51/40/04f652e714f85ba6b0c24f4ead860f2c5769f9e64737f415524d792d5914/pyqt6_qt6-6.9.1-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:3854c7f83ee4e8c2d91e23ab88b77f90e2ca7ace34fe72f634a446959f2b4d4a", size = 66236777, upload-time = "2025-06-03T14:53:17.684Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/57/31/e4fa40568a59953ce5cf9a5adfbd1be4a806dafd94e39072d3cc0bed5468/pyqt6_qt6-6.9.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:123e4aeb037c099bb4696a3ea8edcb1d9d62cedd0b2b950556b26024c97f3293", size = 60551574, upload-time = "2025-06-03T14:53:48.42Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/aa/8d/7c8073cbbefe9c103ec8add70f29ffee1db95a3755b429b9f47cd6afa41b/pyqt6_qt6-6.9.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:cc5bd193ebd2d1a3ec66e1eee65bf532d762c239459bce1ecebf56177243e89b", size = 82000130, upload-time = "2025-06-03T14:54:26.585Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/1e/60/a4ab932028b0c15c0501cb52eb1e7f24f4ce2e4c78d46c7cce58a375a88c/pyqt6_qt6-6.9.1-py3-none-manylinux_2_39_aarch64.whl", hash = "sha256:b065af7243d1d450a49470a8185301196a18b1d41085d3ef476eb55bbb225083", size = 80463127, upload-time = "2025-06-03T14:55:03.272Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/e7/85/552710819019a96d39d924071324a474aec54b31c410d7de8ebb398adcc1/pyqt6_qt6-6.9.1-py3-none-win_amd64.whl", hash = "sha256:f9e54c424bc921ecb76792a75d123e4ecfc26b00b0c57dae526f41f1d57951d3", size = 73778423, upload-time = "2025-06-03T14:55:39.756Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/16/b4/70f6b18a4913f2326dcf7acb15c12cc0b91cb3932c2ba3b5728811f22acd/pyqt6_qt6-6.9.1-py3-none-win_arm64.whl", hash = "sha256:432caaedf5570bc8a9b7c75bc6af6a26bf88589536472eca73417ac019f59d41", size = 49617924, upload-time = "2025-06-03T14:57:13.038Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyqt6-sip"
|
name = "pyqt6-sip"
|
||||||
version = "13.6.0"
|
version = "13.6.0"
|
||||||
|
|
@ -1240,9 +1305,9 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6", version = "6.6.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.6.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-sip", version = "13.6.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-webengine-qt6", version = "6.6.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webengine-qt6", version = "6.6.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt66' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/49/9a/69db3a2ab1ba43f762144a66f0375540e195e107a1049d7263ab48ebc9cc/PyQt6_WebEngine-6.6.0.tar.gz", hash = "sha256:d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487", size = 31817, upload-time = "2023-10-30T10:57:13.211Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/49/9a/69db3a2ab1ba43f762144a66f0375540e195e107a1049d7263ab48ebc9cc/PyQt6_WebEngine-6.6.0.tar.gz", hash = "sha256:d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487", size = 31817, upload-time = "2023-10-30T10:57:13.211Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1262,9 +1327,9 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6", version = "6.7.1", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6", version = "6.7.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-webengine-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webengine-qt6", version = "6.7.3", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/87/88/230ec599944edf941f4cca8d1439e3a9c8c546715434eee05dce7ff032ed/PyQt6_WebEngine-6.7.0.tar.gz", hash = "sha256:68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001", size = 32593, upload-time = "2024-04-26T08:37:08.355Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/87/88/230ec599944edf941f4cca8d1439e3a9c8c546715434eee05dce7ff032ed/PyQt6_WebEngine-6.7.0.tar.gz", hash = "sha256:68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001", size = 32593, upload-time = "2024-04-26T08:37:08.355Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1285,9 +1350,9 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6", version = "6.8.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pyqt6-webengine-qt6", version = "6.8.1", source = { registry = "https://pypi.org/simple" } },
|
{ name = "pyqt6-webengine-qt6", version = "6.8.1", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'extra-3-aqt-qt' or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/cd/c8/cadaa950eaf97f29e48c435e274ea5a81c051e745a3e2f5d9d994b7a6cda/PyQt6_WebEngine-6.8.0.tar.gz", hash = "sha256:64045ea622b6a41882c2b18f55ae9714b8660acff06a54e910eb72822c2f3ff2", size = 34203, upload-time = "2024-12-12T15:34:35.573Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/cd/c8/cadaa950eaf97f29e48c435e274ea5a81c051e745a3e2f5d9d994b7a6cda/PyQt6_WebEngine-6.8.0.tar.gz", hash = "sha256:64045ea622b6a41882c2b18f55ae9714b8660acff06a54e910eb72822c2f3ff2", size = 34203, upload-time = "2024-12-12T15:34:35.573Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1298,6 +1363,29 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/1e/74/9b20e505737ceefe2ffb47355633c84b7d5d7d592f32165425b3e0ce7dd9/PyQt6_WebEngine-6.8.0-cp39-abi3-win_amd64.whl", hash = "sha256:d7366809d681bcc096fa565f2a81d0ab040f7da5bb4f12f78e834a2b173c87d1", size = 234566, upload-time = "2024-12-12T15:34:33.59Z" },
|
{ url = "https://files.pythonhosted.org/packages/1e/74/9b20e505737ceefe2ffb47355633c84b7d5d7d592f32165425b3e0ce7dd9/PyQt6_WebEngine-6.8.0-cp39-abi3-win_amd64.whl", hash = "sha256:d7366809d681bcc096fa565f2a81d0ab040f7da5bb4f12f78e834a2b173c87d1", size = 234566, upload-time = "2024-12-12T15:34:33.59Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyqt6-webengine"
|
||||||
|
version = "6.9.0"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12'",
|
||||||
|
"python_full_version == '3.11.*'",
|
||||||
|
"python_full_version == '3.10.*'",
|
||||||
|
"python_full_version < '3.10'",
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
{ name = "pyqt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-sip", version = "13.10.2", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
{ name = "pyqt6-webengine-qt6", version = "6.9.1", source = { registry = "https://pypi.org/simple" } },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/8f/1a/9971af004a7e859347702f816fb71ecd67c3e32b2f0ae8daf1c1ded99f62/pyqt6_webengine-6.9.0.tar.gz", hash = "sha256:6ae537e3bbda06b8e06535e4852297e0bc3b00543c47929541fcc9b11981aa25", size = 34616, upload-time = "2025-04-08T08:57:35.402Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/c8/e1/964ee1c464a0e1f07f8be54ce9316dc76e431d1bc99c9e5c1437bf548d92/PyQt6_WebEngine-6.9.0-cp39-abi3-macosx_10_14_universal2.whl", hash = "sha256:3ea5bdd48d109f35bf726f59d85b250e430ddd50175fe79a386b7f14d3e34d2d", size = 438004, upload-time = "2025-04-08T08:57:29.475Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/cc/9d/8674bb27e2497fdad7ae5bc000831b42dbfb546aacd11ae7a8cca4493190/PyQt6_WebEngine-6.9.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c15012245036604c82abcd865e0b808e75bcfd0b477454298b7a70d9e6c4958b", size = 299003, upload-time = "2025-04-08T08:57:31.334Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/dc/9c/b6a1ce7026260d518a103c467a4795c719dd1e4d7f8dc00416d3ec292d3a/PyQt6_WebEngine-6.9.0-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:e4404899290f86d4652a07471262a2f41397c64ecb091229b5bbbd8b82af35ce", size = 297424, upload-time = "2025-04-08T08:57:32.664Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/0e/e8/444487c86472c522d6ab28686b9f3c4d6fe2febde81b40561d42c11b5cd7/PyQt6_WebEngine-6.9.0-cp39-abi3-win_amd64.whl", hash = "sha256:541cf838facadfc38243baaecfeeaf07c8eff030cf27341c85c245d00e571489", size = 237847, upload-time = "2025-04-08T08:57:34.174Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyqt6-webengine-qt6"
|
name = "pyqt6-webengine-qt6"
|
||||||
version = "6.6.2"
|
version = "6.6.2"
|
||||||
|
|
@ -1326,7 +1414,7 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyqt6-webenginesubwheel-qt6", marker = "(extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra != 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra != 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pyqt6-webenginesubwheel-qt6", marker = "extra == 'extra-3-aqt-qt67' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt' and extra != 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/06/35/570d072bec7c114b5d155d990e2b8339223e230e9276bdf806a20f71e50d/PyQt6_WebEngine_Qt6-6.7.3-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:68812b2a5d0d417ce32dc4d11a304e7838e02c51013712e7533faf03448672d9", size = 26214456, upload-time = "2024-09-29T16:27:20.257Z" },
|
{ url = "https://files.pythonhosted.org/packages/06/35/570d072bec7c114b5d155d990e2b8339223e230e9276bdf806a20f71e50d/PyQt6_WebEngine_Qt6-6.7.3-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:68812b2a5d0d417ce32dc4d11a304e7838e02c51013712e7533faf03448672d9", size = 26214456, upload-time = "2024-09-29T16:27:20.257Z" },
|
||||||
|
|
@ -1355,6 +1443,24 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/b0/b5/a641ebe3e5113bee23d911c58fdd2e65061a6e3786a26b068468b988e5d2/PyQt6_WebEngine_Qt6-6.8.1-py3-none-win_amd64.whl", hash = "sha256:0ced2a10433da2571cfa29ed882698e0e164184d54068d17ba73799c45af5f0f", size = 95657750, upload-time = "2024-12-06T13:47:43.048Z" },
|
{ url = "https://files.pythonhosted.org/packages/b0/b5/a641ebe3e5113bee23d911c58fdd2e65061a6e3786a26b068468b988e5d2/PyQt6_WebEngine_Qt6-6.8.1-py3-none-win_amd64.whl", hash = "sha256:0ced2a10433da2571cfa29ed882698e0e164184d54068d17ba73799c45af5f0f", size = 95657750, upload-time = "2024-12-06T13:47:43.048Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyqt6-webengine-qt6"
|
||||||
|
version = "6.9.1"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12'",
|
||||||
|
"python_full_version == '3.11.*'",
|
||||||
|
"python_full_version == '3.10.*'",
|
||||||
|
"python_full_version < '3.10'",
|
||||||
|
]
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/23/68/8eccda2a78d100a95db2131fac82b4ad842bdf0255019dcf86d5db0db3fa/pyqt6_webengine_qt6-6.9.1-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:38a461e21df3e09829ce18cd0ecd052ecff0f9a4001ae000ea6ddac10fae6b0f", size = 120033076, upload-time = "2025-06-03T14:59:49.52Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/d4/8a/a2cf83dd9cb8e944507e7b4070ac537a30d6caef7e498c87f1612507431d/pyqt6_webengine_qt6-6.9.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9351ac6cccfdbf414a2514b58d49765d3f48fb3b690ceeaa8ca804340eb460b4", size = 108530410, upload-time = "2025-06-03T15:00:40.813Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/fb/82/99b189e30641469dda6eb09a5f3cf0c5e12e2b39967e1df5d156f8499c4f/pyqt6_webengine_qt6-6.9.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:37f9d33e3f68681687a7d28b80058c6473813c6c2f9706a44dc7bc07486b9e9a", size = 110750602, upload-time = "2025-06-03T15:01:32.055Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/68/fc/958c7f5e0f9cfe7903a90ed41b435b17de6ca7cf5d1f73e97ad07fe8107c/pyqt6_webengine_qt6-6.9.1-py3-none-manylinux_2_39_aarch64.whl", hash = "sha256:e8440e65b79df167b49bd3c26b8bf7179306df010e8c319a7ad6b8bc2a8ae8d4", size = 106652228, upload-time = "2025-06-03T15:02:18.985Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/4c/82/4a3e2233ca3aa9c3ec77390e570fbcffcc511bc8513461daa1d38cda652a/pyqt6_webengine_qt6-6.9.1-py3-none-win_amd64.whl", hash = "sha256:c7f460226c054a52b7868d3befeed4fe2af03f4f80d2e53ab49fcb238bac2bc7", size = 110244976, upload-time = "2025-06-03T15:03:09.743Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyqt6-webenginesubwheel-qt6"
|
name = "pyqt6-webenginesubwheel-qt6"
|
||||||
version = "6.7.3"
|
version = "6.7.3"
|
||||||
|
|
@ -1381,13 +1487,13 @@ name = "pytest"
|
||||||
version = "8.4.1"
|
version = "8.4.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "exceptiongroup", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "exceptiongroup", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "iniconfig" },
|
{ name = "iniconfig" },
|
||||||
{ name = "packaging" },
|
{ name = "packaging" },
|
||||||
{ name = "pluggy" },
|
{ name = "pluggy" },
|
||||||
{ name = "pygments" },
|
{ name = "pygments" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1475,7 +1581,7 @@ source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "attrs" },
|
{ name = "attrs" },
|
||||||
{ name = "rpds-py" },
|
{ name = "rpds-py" },
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.13' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.13' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1670,24 +1776,24 @@ resolution-markers = [
|
||||||
"python_full_version < '3.10'",
|
"python_full_version < '3.10'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "alabaster", version = "0.7.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "alabaster", version = "0.7.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "babel", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "babel", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "colorama", marker = "(python_full_version < '3.10' and sys_platform == 'win32') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "(python_full_version < '3.10' and sys_platform == 'win32') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (python_full_version >= '3.10' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "docutils", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "docutils", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "imagesize", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "imagesize", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "importlib-metadata", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "jinja2", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "jinja2", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "packaging", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "packaging", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pygments", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pygments", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "requests", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "requests", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "snowballstemmer", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "snowballstemmer", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "tomli", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/5b/be/50e50cb4f2eff47df05673d361095cafd95521d2a22521b920c67a372dcb/sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe", size = 8067911, upload-time = "2024-07-20T14:46:56.059Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/5b/be/50e50cb4f2eff47df05673d361095cafd95521d2a22521b920c67a372dcb/sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe", size = 8067911, upload-time = "2024-07-20T14:46:56.059Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1702,23 +1808,23 @@ resolution-markers = [
|
||||||
"python_full_version == '3.10.*'",
|
"python_full_version == '3.10.*'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "babel", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "babel", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "colorama", marker = "(python_full_version == '3.10.*' and sys_platform == 'win32') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "(python_full_version == '3.10.*' and sys_platform == 'win32') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (python_full_version != '3.10.*' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "docutils", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "docutils", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "imagesize", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "imagesize", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "jinja2", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "jinja2", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "packaging", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "packaging", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pygments", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pygments", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "requests", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "requests", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "snowballstemmer", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "snowballstemmer", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "tomli", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "tomli", marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1734,23 +1840,23 @@ resolution-markers = [
|
||||||
"python_full_version == '3.11.*'",
|
"python_full_version == '3.11.*'",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "alabaster", version = "1.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "babel", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "babel", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "colorama", marker = "(python_full_version >= '3.11' and sys_platform == 'win32') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "colorama", marker = "(python_full_version >= '3.11' and sys_platform == 'win32') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (python_full_version < '3.11' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (sys_platform != 'win32' and extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "docutils", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "docutils", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "imagesize", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "imagesize", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "jinja2", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "jinja2", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "packaging", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "packaging", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "pygments", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "pygments", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "requests", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "requests", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "roman-numerals-py", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "roman-numerals-py", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "snowballstemmer", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "snowballstemmer", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", size = 8321876, upload-time = "2025-03-02T22:31:59.658Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", size = 8321876, upload-time = "2025-03-02T22:31:59.658Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1765,10 +1871,10 @@ dependencies = [
|
||||||
{ name = "astroid" },
|
{ name = "astroid" },
|
||||||
{ name = "jinja2" },
|
{ name = "jinja2" },
|
||||||
{ name = "pyyaml" },
|
{ name = "pyyaml" },
|
||||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "stdlib-list", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "stdlib-list", marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/7f/a8/22b379a2a75ccb881217d3d4ae56d7d35f2d1bb4c8c0c51d0253676746a1/sphinx_autoapi-3.6.0.tar.gz", hash = "sha256:c685f274e41d0842ae7e199460c322c4bd7fec816ccc2da8d806094b4f64af06", size = 55417, upload-time = "2025-02-18T01:50:55.241Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/7f/a8/22b379a2a75ccb881217d3d4ae56d7d35f2d1bb4c8c0c51d0253676746a1/sphinx_autoapi-3.6.0.tar.gz", hash = "sha256:c685f274e41d0842ae7e199460c322c4bd7fec816ccc2da8d806094b4f64af06", size = 55417, upload-time = "2025-02-18T01:50:55.241Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
@ -1781,9 +1887,9 @@ version = "3.0.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "docutils" },
|
{ name = "docutils" },
|
||||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinxcontrib-jquery" },
|
{ name = "sphinxcontrib-jquery" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463, upload-time = "2024-11-13T11:06:04.545Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463, upload-time = "2024-11-13T11:06:04.545Z" }
|
||||||
|
|
@ -1823,9 +1929,9 @@ name = "sphinxcontrib-jquery"
|
||||||
version = "4.1"
|
version = "4.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67')" },
|
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt66') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt67') or (extra == 'extra-3-aqt-qt66' and extra == 'extra-3-aqt-qt69') or (extra == 'extra-3-aqt-qt67' and extra == 'extra-3-aqt-qt69')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue